Font Size Conversion Table

–enter a size to convert it every way
PixelsPointsem (16px root)Typical use
8px6pt0.5emfine print
9px6.75pt0.5625emfine print
10px7.5pt0.625emsmall caption
11px8.25pt0.6875emcaption
12px9pt0.75emsmall text
14px10.5pt0.875emsecondary text
16px12pt1embody default
18px13.5pt1.125emlarge body
21px15.75pt1.3125emh4-size
24px18pt1.5emh3-size
30px22.5pt1.875emh2-size
36px27pt2.25emh1-size
48px36pt3emdisplay
60px45pt3.75emhero
72px54pt4.5emposter
Conversions use the CSS-pinned scale from MDN's <length> reference: 1 inch = 96 px = 72 pt exactly, so 1 px = 0.75 pt always - and pt is a print unit wearing a screen costume, because the mapping is fixed rather than device-aware. em scales against the parent font size, rem against the root; the root defaults to 16 px in every browser until the user changes it, which is exactly why accessibility guidance prefers rem: it respects the visitor's own base size. Bottom line: 18 px is 13.5 pt is 1.125 rem at the default root - three spellings of the same size, and only one of them (rem) tracks the reader's settings. Adjust actual rendering with aspect ratio calculator, plan layout budgets with TV size calculator.

The same font size has four spellings - px, pt, em, rem - and design tools hand you whichever one they like. This table pins the common sizes in all units at once, and the calculator converts any value at any root size using the scale CSS fixes exactly: 1 inch = 96 px = 72 pt.

The part that matters beyond arithmetic: px and pt are absolute, em scales against the parent, and rem scales against the root - which is why rem is the accessibility-safe unit and why the root size box exists.

How to use

  1. Enter a value with its unit and the root size; the chips load the 16px body default, the 12pt print size, and a 1.5em heading.
  2. Read the table for the standard ladder from 8px fine print to 72px poster type at the 16px default root.
  3. Check the second line of the result for the pt and percentage equivalents - handy when a print spec and a screen spec must agree.

Frequently asked questions

Why is 16px the base size?

It is the default root font size of every browser - the value your visitor gets before any stylesheet applies. Because rem divides by it, 1rem = 16px = 12pt at defaults, and the whole px/rem/pt triangle hangs off that single number.

Is a pt the same on screen as in print?

In CSS, pt is pinned to px at exactly 0.75pt per pixel regardless of the device - it is a print unit that renders consistently but tells you nothing about physical size on screen. Use it when a print stylesheet asks for it; stick to rem on screen.

When should I use em instead of rem?

em compounds: 1.2em inside 1.2em is 1.44 times the root - useful for components that should scale with their context, a footgun when nesting runs deep. rem is flat: it always measures against the root, which keeps a design predictable.

Which unit is best for accessibility?

rem. A visitor who raises the browser base font size expects text to follow; rem respects that choice automatically, while px overrides it. The root-size box above shows exactly how the same rem value resolves at a different base.

Related tools