TaskStyle three text elements: h1 with letter-spacing -0.02em (tighten), .eyebrow with letter-spacing 0.08em + text-transform uppercase (loosen all-caps), p with normal default.
letter-spacing & word-spacing (tracking)
60 XP5 min
Theory
When to add it, when to remove it
h1 { letter-spacing: -0.02em; } /* TIGHTEN large headings */
.eyebrow { letter-spacing: 0.08em; text-transform: uppercase; } /* loosen ALL CAPS */Two rules:
- Tighten large headings (negative letter-spacing). Display fonts space-out at large sizes;
-0.02emto-0.04emsnaps them back. - Loosen ALL CAPS labels (positive letter-spacing). Uppercase characters are spaced for readability at body size; for an "EYEBROW" label or button text in caps,
0.05emto0.10emreads better.
Use em, not px
h1 { letter-spacing: -0.02em; } /* scales with font-size */If you set -1px, a 16px heading gets the same tightening as a 64px heading β way too aggressive at the small size. em is proportional, always correct.
word-spacing
.relaxed { word-spacing: 0.2em; }Less commonly useful. Justified text occasionally needs it. Body paragraphs almost never do.
When NOT to touch them
Default letter-spacing in modern fonts is already tuned by the type designer. For body text at 16px, leave letter-spacing: normal. Only adjust for displays (big) or ALL CAPS labels (loosen).
π
Sign up to start coding
Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β card required, cancel anytime.
Sign up β free trial βFirst 10 lessons in each track are free. No card needed for those.