X-height

The height of a lowercase 'x'. It drives how big lowercase text looks at a given font size, which is why 16px varies so much by typeface.

why does this font look bigger at same sizetall lowercasewhy does Futura look so small at 16pxx-hieghtsize of the lowercase letterstwo fonts at 16px look different sizesfont looks tiny even at 16pxbig lowercase small capitals feel

See it

Live demo coming soon

What it is

X-height is the height of a lowercase letter with no ascender or descender, measured from the baseline to the top of the 'x'. Since most of what you read is lowercase, x-height does more than any other metric to set how big text looks at a given font size, though cap height, width, weight, and stroke contrast all get a vote. Two typefaces set at the same 16px can differ by a third in apparent size: Helvetica, Verdana, and Inter run tall, while Futura, Garamond, and Bodoni run short and delicate.

Reach for a large x-height when text has to survive rough conditions: small UI labels, dense tables, mobile screens, signage, low light. Reach for a small x-height when you want the elegant editorial voice and the type is big enough to carry it, like a magazine feature opener. The tradeoff is that a tall x-height leaves ascenders and descenders less prominent relative to the lowercase body, which flattens word shapes and often wants extra leading to stay readable.

The trap shows up on font swaps. Change the body typeface and keep the same font-size and your whole layout shifts in apparent weight and size, which is also why a fallback font flashing in before your webfont loads causes a visible jump. CSS gives you tools for this: the ex unit measures one x-height, and font-size-adjust normalizes x-height across a font stack so the fallback matches.

Ask AI for it

Pick a body typeface for a dense data-heavy interface and justify it on x-height. Compare these supplied typefaces: [A], [B], and [C]. Read 'sxHeight' and 'sCapHeight' from each font's OS/2 metadata, or measure the rendered glyphs if those fields are missing, and report the x-height to cap-height ratio you actually found rather than a number from memory. Show each candidate at 13px, 15px, and 16px side by side so the apparent sizes can be compared directly, and recommend one based on observed legibility at those sizes, not a universal cutoff. Then give me the CSS: the font stack, the font-size-adjust value tuned so the system fallback matches the webfont's x-height, and a line-height chosen from how the specimen actually reads.

You might have meant

cap heightascender descenderbaselinefont stackserif vs sans serif

Go deeper