Typography
Sixteen steps across five families. Each step is a single font shorthand token, so a component sets type with one declaration and can never half-apply a style.
Families
--font-displayOne weight only (400). Asking for 600 makes the browser fake it and 64px goes mushy.
--font-titleCarries headings and interface labels.
--font-bodyReading text at every size.
--font-dataNumerals only — narrower, and tabular by default.
--font-monoTokens, IDs, snippets.
Scale
t-display-xl--t-display-xl400 · 64/1.02Design and ship
t-display-l--t-display-l400 · 48/1.06Design and ship
t-display-m--t-display-m400 · 36/1.10Design and ship
t-title-l--t-title-l600 · 28/1.22Section heading
t-title-m--t-title-m600 · 22/1.32Section heading
t-title-s--t-title-s600 · 18/1.42Section heading
t-body-l--t-body-l400 · 17/1.65The quick brown fox jumps over the lazy dog.
t-body-m--t-body-m400 · 15/1.60The quick brown fox jumps over the lazy dog.
t-body-s--t-body-s400 · 13.5/1.55The quick brown fox jumps over the lazy dog.
t-label-l--t-label-l500 · 13/1.30Interface label
t-label-s--t-label-s500 · 11/1.30 · .12emOVERLINE LABEL
t-data-xl--t-data-xl600 · 32/1.051,284,406.28
t-data-l--t-data-l600 · 24/1.101,284,406.28
t-data-m--t-data-m500 · 17/1.301,284,406.28
t-data-s--t-data-s500 · 13/1.351,284,406.28
t-code--t-code400 · 13/1.55const ratio = 0.618
Why data has its own family
Numbers in a dashboard are scanned in columns, not read in sentences. Barlow is narrower than Inter at the same size and every t-data-* step sets tabular-nums, so figures line up on the decimal without hand-tuned letter spacing.
Body font
1,284,406.28
99,112.04
7,000,000.00
Data font · tabular
1,284,406.28
99,112.04
7,000,000.00