Typography
One ramp, two families, applied with restraint.
A small set of type tokens covers everything from marketing displays to dense interface text.
Scale
Six tokens, one ramp.
Type ramp
Display and page anchor marketing surfaces. Section, lead, base, and sm carry interface copy and supporting prose.
- text-display56px · 600 · -0.055emShared parts.
- text-page40px · 600 · -0.04emOne ramp.
- text-section24px · 500 · -0.02emTokens grouped by role.
- text-lead18px · 400 · 1.55A small set of parts, shared across our products.
- text-base16px · 400 · 1.5A small set of parts, shared across our products.
- text-sm14px · 400 · 1.43A small set of parts, shared across our products.
Family
Two faces, full range.
Geist
A single typeface in two grades — sans for interface and prose, mono for code and tabular metadata. Variable axes cover the full weight range.
Sans--font-sans
Aa
Geist Variable
The quick brown fox jumps over the lazy dog. 0123456789
Aa
300 · Light
Aa
500 · Medium
Aa
700 · Bold
Mono--font-mono
Aa
Geist Mono Variable
const radius = "0.75rem" // 0123456789
Aa
300 · Light
Aa
500 · Medium
Aa
700 · Bold
Numerals
Figures that line up.
Tabular vs proportional
Apply tabular-nums to columns of figures so digits land on a fixed grid. Use proportional for prose, where natural rhythm reads better.
Tabular
Proportional
Revenue
$1,204.50
$1,204.50
Refunds
$232.40
$232.40
Payouts
$23,108.00
$23,108.00
Pending
$77.99
$77.99
Decimal points line up in the tabular column. In proportional they drift, because each digit takes its natural width.