v145 · CSS · Typography
CSS letter-spacing and word-spacing: percentage values
Chrome 145 adds support for percentage values in the letter-spacing and word-spacing CSS properties. Percentages are calculated relative to the advance width of the space character (U+0020). This makes typographic spacing responsive to the current font size — a single percentage rule scales consistently across headings, body text, and small print.
concepts
-
Percentage Spacing Demo
Interactive sliders for
letter-spacingandword-spacingas percentages. See the values applied live, the computed pixel equivalent shown alongside, and compare against equivalent pixel-based values. -
Font Size Scaling
Side-by-side view at multiple font sizes: percentage-based spacing stays proportional to each size, while fixed
pxoremspacing shifts the visual rhythm. Shows why%is the natural unit for typography-aware spacing. -
Headline Tuner
Drag two sliders to set
letter-spacingandword-spacingas percentages, then cycle through display, headline, subhead, and body sizes. The same percentage stays visually proportional at every size. -
Type Specimen
A full type specimen (display → caption, six sizes) with two percentage sliders. Each row shows the live computed pixel equivalent for that font size — demonstrating how one percentage value gives perfect proportional rhythm across the whole type scale.
-
Branding Playground
Edit a brand headline and tagline; adjust
letter-spacingandword-spacingas percentages with colour and transform controls. A scale ladder shows the same percentage value rendering proportionally from display to caption — one rule for the whole type hierarchy.
why it shipped
Before Chrome 145, letter-spacing and word-spacing only accepted lengths (px, em, rem, etc.). Using em was the closest approximation to proportional spacing, but 1em is the cap height of the font — not the space character width. The CSS Text Module Level 4 spec defines percentage values as relative to the advance width of U+0020, which tracks the actual space glyph. On proportional fonts this gives designers a much more natural control: letter-spacing: 5% means "5% of a space", not "5% of something else". The feature also reduces the need to re-override spacing rules at every breakpoint because the spacing grows or shrinks automatically with the font size.
the new syntax
/* Before Chrome 145 — only lengths accepted */
h1 { letter-spacing: 2px; }
p { word-spacing: 0.1em; }
/* Chrome 145+ — percentage relative to U+0020 advance width */
h1 { letter-spacing: 5%; }
p { word-spacing: 20%; }
/* Works in all contexts: large and small type alike */
.hero { font-size: 4rem; letter-spacing: 3%; }
.caption { font-size: 0.75rem; letter-spacing: 3%; } /* same %, right visual weight */
/* Negative values tighten spacing */
.condensed { letter-spacing: -2%; }