ToollyX
no sign-up Β· instant Β· free

Typography Unit Converter

Convert between px, pt, pc, rem, em, %, ch, ex and twips instantly β€” with an em-compounding simulator that shows exactly why the same em value doesn't render the same size twice.

Units12 Units
ExtrasEm Compounding Simulator
Based OnCSS Reference Pixel
CostFree, No Signup
728 Γ— 90 β€” Leaderboard Ad
16 Pixels (px)
Jump to a Common Size
Link Parent to Root
On: em and rem use the same base. Off: set a different parent font size for nested elements.
16 px
px
16 px
px
β†Ί Reset to 16px, root 16px
16 px converts to
16 px
pt
12
pc
1
rem
1
em
1
%
100.0
in
0.1667
cm
0.4233
mm
4.233
Why This Result
CSS fixes 1px at 1/96 inch and 1pt at 1/72 inch, so 1pt always equals 1.333px β€” a screen's actual physical DPI never enters the calculation. rem is measured against the root font size (16px); em, %, ch and ex are measured against the parent font size (16px).
px β†’ ptΓ— 0.75
px β†’ remΓ· 16
px β†’ emΓ· 16
pt β†’ twipΓ— 20
In Pixels
16px
In Rem
1rem
Em Compounding Simulator

Unlike rem, em multiplies at every nested level. See how a small em value shrinks β€” or grows β€” once it's nested a few elements deep.

3 levels
0.9em
em
Level
Calculation
Effective Size
Level 1
16px Γ— 0.9
14.4px
Level 2
14.4px Γ— 0.9
12.96px
Level 3
12.96px Γ— 0.9
11.664px

rem always resolves against the root (16px) no matter how deeply it's nested β€” this compounding only happens with em.

Common Type Scale Reference
Scale Step
rem
px
xs
0.75rem
12px
sm
0.875rem
14px
base
1rem
16px
lg
1.125rem
18px
xl
1.25rem
20px
2xl
1.5rem
24px
3xl
1.875rem
30px
4xl
2.25rem
36px
5xl
3rem
48px
6xl
3.75rem
60px

Based on a common 1.125 type-scale ratio used by several popular CSS frameworks. Click any row to load that size.

728 Γ— 90 β€” Leaderboard Ad

How to Convert a Typography Unit

1Enter a value and pick its unit from the dropdown β€” px, pt, rem, em, and 8 others are supported.
2Set your root and parent font size if they differ from the 16px default, so rem and em results match your actual project.
3Read every converted unit at once β€” no need to convert one pair at a time.
4Try the Em Compounding Simulator below to see how nested em values shrink or grow across several levels.

Features

12 units at once
px, pt, pc, rem, em, %, ch, ex, twip, in, cm and mm all converted from a single input.
Fixed CSS reference pixel
Uses the spec-defined 96/72 DPI ratio, not a guessed or user-entered screen DPI.
Adjustable root and parent size
rem and em results reflect your actual project settings, not just a 16px assumption.
Em Compounding Simulator
Shows exactly how em values shrink or grow across several levels of nesting.
Common type scale reference
A clickable reference table of standard design-system font sizes.
Clear formula breakdown
Shows the exact multiplier used for every conversion, not just the final number.
One-click copy
Copy any converted value straight to the clipboard.
No signup, runs in your browser
Every calculation happens locally β€” nothing you enter is sent anywhere.

One Pixel, Twelve Different Names

Type a font size into a design tool, a print layout, and a stylesheet on the same day, and you'll hand-type three completely different-looking numbers for what might be the exact same visual size β€” a Figma frame in px, a print brief in pt or pica, a component library in rem. Typography units split into two families that behave nothing alike: absolute units like px, pt, pc, in, cm and mm never change no matter what surrounds them, while relative units like em, rem, %, ch and ex are always measured against something else β€” the root font size, the parent font size, or the current font's own metrics. Mix the two families without understanding which is which, and a design that looked correct in isolation can render at a subtly wrong size the moment it's dropped into a real page with its own font-size cascade already in motion. This tool converts across all twelve at once from a single input, and goes a step further than a typical lookup table by simulating the one behavior that catches even experienced developers off guard: how em values compound when they're nested. The point itself is older than any of this digital tooling β€” a French clergyman named SΓ©bastien Truchet first proposed a rational typographic point in the early 1700s, the punch-cutter Pierre-Simon Fournier refined it into a 72-points-to-the-inch scale in 1737, and FranΓ§ois-Ambroise Didot standardised it further in 1783, a lineage that eventually split into separate French and Anglo-American versions of β€œa point” that never quite agreed on the exact same length.

The DPI Myth That Refuses to Die

A surprising number of typography converters ask for your screen's DPI before converting px to pt, which sounds reasonable and is actually based on a misunderstanding. CSS defines the pixel as a fixed reference unit equal to exactly 1/96 of an inch, and the point as a fixed 1/72 of an inch β€” both are anchored to a physical inch by specification, not to how many real pixels your specific monitor packs into that inch. That's why 1pt equals exactly 1.333px in every browser, on every screen, at every resolution, whether it's a budget laptop panel or a high-density retina display: the operating system and browser handle real physical scaling separately, entirely underneath this fixed ratio, and it never leaks into the conversion itself. This is also exactly why the tool doesn't ask for your screen's DPI at all β€” doing so wouldn't make the number more accurate, it would just be asking for information the conversion never actually needed in the first place. The exact 1/72-inch definition is itself a relatively recent convenience: the traditional Anglo-American printer's point that typesetters used for most of the 20th century was officially 0.013837 inch β€” roughly 1/72.27 of an inch, not a clean 1/72 β€” until Adobe's PostScript system rounded it to an exact 1/72 inch in the 1980s specifically because that matched the 72-dpi resolution of the original Macintosh screen. CSS inherited that same rounded PostScript definition, which is part of why a pt value measured on an old metal-type specimen sheet won't translate to a pixel-perfect match on a modern screen.

A Developer, a Print Designer, and Someone Debugging a Word Export

A front-end developer handed a Figma file full of px values needs rem equivalents for a component library that respects a user's browser accessibility settings, and getting that translation wrong across dozens of components is a slow, error-prone way to spend an afternoon compared to converting each value once and moving on. A print designer adapting a magazine layout built in picas and points for a companion web page needs to know that a single pica becomes a clean 16px on screen, without doing the 12-points-per-pica arithmetic by hand for every heading and caption size in the brief. And someone debugging why text pasted out of a generated Word document renders at an unexpected size in a web-preview tool eventually lands on twips β€” the twentieth-of-a-point unit RTF and Office Open XML documents actually store font sizes in β€” and needs a fast way to turn that number back into something a browser understands. Font size is only half the layout question, of course; actual physical spacing still comes down to length, which the Length Converter handles directly for anyone converting a print bleed or margin measurement alongside the type itself. A design-system maintainer auditing an inherited codebase for accessibility runs into a quieter version of the same problem: a scatter of hard-coded px font sizes that never respond to a user's browser zoom or font preference, each one needing a clean rem conversion before an accessibility audit will pass, ideally checked against the project's actual root font size rather than an assumed 16px default.

Built to Catch the Compounding Problem Before Production Does

Most typography converters stop at a flat lookup table, which is genuinely useful but misses the behavior that causes the most real-world confusion: em doesn't just scale against one font size, it scales against whatever its immediate parent happens to be, and that parent was very possibly scaled against its own parent too. Set font-size: 0.9em on a reusable component, nest that component inside another element that also uses 0.9em, and the effective result compounds to roughly 81% of the base size rather than 90% β€” a gap that grows fast with every additional level and rarely shows up until a component gets reused somewhere its author never tested. The Em Compounding Simulator above walks through exactly that scenario, level by level, so the multiplication is visible instead of theoretical, right next to the explanation of why rem was introduced specifically to sidestep the problem by always resolving against the root element instead of a chain of nested parents. A root and parent font-size setting sit alongside the main converter too, so rem and em results reflect a real project's actual base size rather than assuming everyone uses the common 16px browser default.

Choosing the Right Unit for the Job

Reaching for px out of habit is the single most common typography mistake in a modern stylesheet, since it's rarely the unit that actually serves the situation best. Font sizes on the web generally belong in rem, specifically because it's the one unit that keeps working correctly when a visitor adjusts their browser's default text size for readability β€” a real accessibility need, not an edge case. Padding, margin, and letter-spacing tied to a specific piece of text often belong in em instead, precisely because compounding is a feature there: a button's internal padding growing along with its own label text is usually the intended behaviour, not a bug to avoid. Absolute units β€” pt, pc, in, cm, and mm β€” belong to print output almost exclusively; reaching for them in a web stylesheet is a strong signal that a value was copied from a print brief without being converted first. And ch, despite looking like a natural fit for anything measured in characters, is worth reaching for only when an approximate width is genuinely good enough, such as a search box sized to roughly fit its placeholder text, rather than anywhere a precise pixel width actually matters.

728 Γ— 90 β€” Leaderboard Ad

What This Converter Can't Decide for You

A few of these units resist a perfectly exact conversion by nature, and it's worth being upfront about where that happens rather than presenting false precision. Ch and ex are genuine font-metric measurements β€” the width of a β€œ0” character and a font's x-height respectively β€” and they vary from typeface to typeface; this tool uses the common half-of-font-size approximation, which holds up reasonably well for many text fonts but shifts for a condensed or display typeface. A browser user who has raised their default font size for accessibility will see every rem-based size on a well-built page scale up accordingly, which is a feature rather than a bug, but it does mean a rem-to-px conversion calculated here reflects one specific base size rather than every visitor's actual rendered result. And print output ultimately depends on the specific printer, paper, and PDF renderer involved, so a pt or pica value converted here is a strong starting figure for a print layout rather than a guarantee of the final physical measurement once it leaves a specific print shop's equipment. None of that makes the underlying math any less exact β€” px, pt, pc, in, cm and mm convert between each other with zero rounding loss, since they're all fixed multiples of the same physical inch β€” it just means the handful of units that were always defined in terms of a specific font or a specific rendering environment carry that same real-world variability into any tool that converts them, this one included.

Frequently Asked Questions

728 Γ— 90 β€” Leaderboard Ad