Letter Spacing
Tracking should tighten as type gets bigger.
Fonts are drawn to be read at body sizes. When you scale text up for a headline, the space between letters scales up with it — and suddenly the headline feels loose and airy in a way the designer never intended.
The fix is simple: large text gets negative tracking, small text gets a little extra. Try it below.
Headline
Body text stays readable at small sizes.
letter-spacing: 0.000em
A practical scale
- Display / headlines (32px+):
-0.02emto-0.04em - Titles (20–28px):
-0.01emto-0.02em - Body (14–18px):
0 - Captions and all-caps labels (≤12px):
+0.02emto+0.08em
All-caps text is the big exception in the other direction: capital letters were never designed to sit next to each other, so uppercase labels almost always want generous positive tracking.
In CSS
h1 {
font-size: 3rem;
letter-spacing: -0.03em; /* em scales with the font size */
}
Always use em units so the tracking stays proportional if the font size
changes. Tailwind's tracking-tight (-0.025em) and tracking-tighter
(-0.05em) cover most headline cases.
Resources
letter-spacing CSS property - CSS | MDN — The letter-spacing CSS property sets the spacing between text characters. This value is added to the natural spacing between characters while rendering the text. Positive values of letter-spacing spread characters further apart, while negative values of letter-spacing bring characters closer together.
letter-spacing | CSS-Tricks — The letter-spacing property controls the amount of space between each letter in a given element or block of text. Values supported by letter-spacing include