Free CSS typography unit converter. Convert pixels to points, em to px, rem to pixels, picas, inches, and more — with an adjustable root font size and a live text preview. Built for web designers, developers, and print layout.
px • pt • em • rem • pica • in
Uses the official CSS reference: 1 inch = 96px, 1pt = 1/72 inch (so 1pt = 1.3333px), and 1 pica = 12pt = 16px.
See real text rendered at the converted size — no more guessing what "1.5rem" actually looks like.
All conversions run in your browser — no server, no account, nothing sent anywhere.
Web and print typography mix absolute units (fixed physical sizes) with relative units (sized in relation to something else). Getting them right is essential for accessible, responsive design. The CSS reference is built on a fixed relationship: 1 inch = 96 CSS pixels, and 1 point = 1/72 inch. That makes 1pt = 96 ÷ 72 = 1.3333px, and 1 pica = 12 points = 16px.
Absolute units — px, pt, pc, in, cm, mm — are fixed multiples of each other. Points and picas come from print; pixels dominate the screen. Relative units — em and rem — are multiples of a font size. rem is always relative to the root element's font size (the <html> default of 16px), while em is relative to the current element's font size. With the standard 16px base: 1rem = 16px, 1.5rem = 24px, 0.875rem = 14px. This is why designers set body text to 1rem and headings to 2rem or 2.5rem — they scale cleanly when the user changes their browser's default size.
Why rem matters for accessibility: when sizes are defined in rem, a user who increases their browser's default font size scales the entire layout proportionally. Sizes locked in px ignore that preference. The common conversions to memorize at a 16px base: 12px = 0.75rem = 9pt, 14px = 0.875rem = 10.5pt, 16px = 1rem = 12pt, 18px = 1.125rem = 13.5pt, 24px = 1.5rem = 18pt, 32px = 2rem = 24pt.
At 16px base: body 16px = 1rem. Small text 14px = 0.875rem. H1 ≈ 32–40px = 2–2.5rem. Buttons 16–18px. Captions 12px = 0.75rem. Always set the body in rem for accessibility.
Body copy: 10–12pt. Headlines: 18–36pt. Captions: 8–9pt. 12pt = 16px = 1 pica. Word and InDesign default body text to 11–12pt. 72pt = 1 inch tall.
1in = 96px = 72pt = 6pc = 2.54cm. 1pt = 1.333px. 1pc = 16px = 12pt. 1cm = 37.8px. These are CSS reference values, independent of your screen's actual physical DPI.
rem = relative to root (html) font size — predictable. em = relative to the parent's font size — compounds when nested. Use rem for font sizes, em for spacing that should scale with its own text.
Typographic units descend from metal type and remain in use because they are convenient at text sizes. The modern PostScript point, adopted with desktop publishing, is exactly 1/72 of an inch, which conveniently makes 72 pt equal one inch. A pica is 12 points. On screen the CSS pixel adds a further layer: it is a reference unit of 1/96 inch rather than a physical device pixel, so 16 px — the browser default text size — is exactly 12 pt. The em is different in kind: it is relative to the current font size rather than absolute, which is what makes it the right choice for scalable, accessible layouts.
1 inch = 72 pt = 6 picas = 96 CSS px = 25.4 mm1 pt = 0.3528 mm · 1 pica = 12 pt · 1 CSS px = 0.75 ptem = multiple of the current font sizewhere:
Assumptions: The historic Didot and American points differed slightly from 1/72 inch; modern software uses the PostScript point throughout. On high-density displays one CSS pixel maps to several physical pixels, which is deliberate.
Convert a standard body text size across print and screen units.
Result12 pt = 4.23 mm = 16 CSS px = 1 pica
The 12 pt / 16 px equivalence is worth remembering because it links print and web conventions exactly. Setting font sizes in px rather than em or rem prevents text from scaling when a user increases their browser's default size, which is a genuine accessibility failure.