PT to PX: What Points Mean in Web Design

Open a CSS file and you'll see px, rem, % everywhere โ€” but rarely pt. That's not an accident. Points come from an entirely different medium than the one CSS was built for.

Where Points Come From

A point is a print-industry unit dating back to traditional typesetting: 1 point = 1/72 of an inch. It's the unit word processors still default to for font sizes (that "12pt" in Microsoft Word), and it's baked into PDF generation and print stylesheets.

The PT-to-PX Formula

Since browsers treat 1 inch as 96px by convention: PX = PT ร— (96 รท 72), which simplifies to PX = PT ร— 1.3333. A 12pt heading converts to 16px โ€” which isn't a coincidence, since 16px is also the default browser font size.

The reverse is just as simple: PT = PX ร— 0.75. A 24px heading is 18pt; a 14px caption is 10.5pt. Because 96 รท 72 is exactly 4/3, every multiple of 3pt lands on a whole number of pixels, and every multiple of 4px lands on a whole number of points.

PT to PX Conversion Table

PointsPixelsrem (16px root)Typical use
6pt8px0.5remFine print, legal text
8pt10.67px0.667remFootnotes
9pt12px0.75remCaptions
10pt13.33px0.833remSmall body text
10.5pt14px0.875remSecondary text
11pt14.67px0.917remPrinted body text
12pt16px1remDefault body text
14pt18.67px1.167remSubheadings
18pt24px1.5remHeadings
24pt32px2remLarge headings
36pt48px3remDisplay text
72pt96px6remOne full inch

If you prefer working in rem on screen, combine the two steps: convert pt to px, then divide by 16. The PX to REM converter handles the second step.

Why 72 and 96 Don't Match

The 72-points-per-inch definition comes from desktop publishing, where the PostScript and PDF formats standardised the point at exactly 1/72 inch. Early Macintosh screens were also built around 72 pixels per inch, so on those machines one point and one pixel were the same size. Windows took a different route and assumed 96 pixels per inch, which made on-screen text a little larger and easier to read at typical viewing distances. CSS adopted the 96 figure, which is why points and pixels in a browser are not interchangeable today.

The same history explains a common confusion with design software. In an image editor where the document resolution is set to 72 PPI, a 12pt font and 12px are the same size, because the editor converts points using the document's own resolution. Bring that design into a browser and 12pt suddenly equals 16px. The safest habit is to ask for or export pixel values for anything going to the web. For background on pixel density, see DPI vs PPI.

Worked Example: Turning a Word Document Into a Web Page

Suppose a client sends a styled document with 11pt body text, 14pt subheadings, and 20pt titles, and wants a matching web page. Converting each value:

Rounding to the nearest whole pixel and moving to rem gives a clean, accessible scale:

body { font-size: 0.9375rem; }  /* 15px, rounded up from 14.67px */
h2   { font-size: 1.1875rem; }  /* 19px, from 14pt */
h1   { font-size: 1.6875rem; }  /* 27px, from 20pt */

Many teams also round body text up to 16px on screen, since text that reads comfortably on paper held at arm's length can feel small on a monitor.

Where You'd Actually Use PT

Why Not Just Use PT Everywhere?

Because it's an absolute unit tied to a fixed physical size assumption (96 PPI), the same way px is โ€” it doesn't respond to a user's accessibility font-size preference the way rem does, and it carries no real advantage over px for on-screen work. For anything the user will only ever see on a screen, stick with px or rem; save pt for content headed to paper or a PDF.

There's also an accessibility angle. Browsers let users raise their default font size, and only relative units such as rem and em follow that setting. Text in pt behaves exactly like px here: it stays fixed. Page zoom still scales it, but a user who has simply asked for larger default text won't get it.

Using pt Correctly in a Print Stylesheet

Where pt shines is @media print. Paper has real inches, so a 10pt footnote really is 10/72 of an inch tall when printed at 100% scale:

@media print {
  html   { font-size: 11pt; }   /* rem values now scale from 11pt */
  h1     { font-size: 20pt; }
  small,
  .note  { font-size: 8pt; }
  table  { border: 0.75pt solid #000; }  /* 1px on screen */
}

Setting the root size in pt is a neat trick: any rem-based sizes in your existing styles automatically adapt to a print-appropriate scale. More on this in CSS Units for Print vs. Web.

Common Mistakes

Frequently Asked Questions

Is 12pt the same as 16px?

Yes, in CSS. Because 1pt is 1/72 inch and 1px is 1/96 inch, 12pt ร— 96 รท 72 = 16px exactly. In design software set to 72 PPI, however, 12pt is shown as 12px, which is where the confusion comes from.

Does DPI change the pt to px result?

In the browser, no โ€” CSS always uses 96px per inch. A custom DPI only matters when you're converting for a different context, such as an image editor or a document set to a specific resolution. At 72 DPI, 1pt equals 1px; at 300 DPI, 1pt equals about 4.17 pixels.

Can I use pt for line-height or spacing?

You can, and it converts the same way, but for screen work it offers nothing over px. For line-height, a unitless value like 1.5 is usually best because it scales with the font size automatically.

How do I convert pt to rem?

Multiply by 1.3333 to get pixels, then divide by the root font size (16px by default). 18pt โ†’ 24px โ†’ 1.5rem.

Try it yourself: grab a font size from a print spec or document and drop it into our PT to PX converter (or its PX to PT counterpart) to get exact numbers, including at custom DPI values.