Typography
Inter for sans (internal), Söhne for sans (external), Georgia for serif, JetBrains Mono for code. Two scales: Internal (compact, default for internal apps and ML tools) and External (larger, for marketing sites, landing pages, and public-facing docs). Switch a subtree to external by adding .typography-external to a parent.
Families
font-sansInterfont-serifGeorgiafont-monoJetBrains Mono
Sizes
Internal (default)
- Aa
text-xs · 11px - Aa
text-sm · 12px - Aa
text-base · 13px - Aa
text-lg · 17px - Aa
text-xl · 20px - Aa
text-2xl · 24px - Aa
text-3xl · 28px - Aa
text-4xl · 36px - Aa
text-5xl · 48px - Aa
text-6xl · 60px - Aa
text-7xl · 72px - Aa
text-8xl · 96px - Aa
text-9xl · 128px
External
- Aa
text-xs · 11px - Aa
text-sm · 12px - Aa
text-base · 14px - Aa
text-lg · 17px - Aa
text-xl · 20px - Aa
text-2xl · 24px - Aa
text-3xl · 28px - Aa
text-4xl · 36px - Aa
text-5xl · 48px - Aa
text-6xl · 60px - Aa
text-7xl · 72px - Aa
text-8xl · 96px - Aa
text-9xl · 128px
Weights
Weight tokens are mode-aware. Internal dials each step down by 100 so dense UI reads quieter; External keeps standard weights.
- The quick brown fox
font-normal · int 400 · ext 400 - The quick brown fox
font-medium · int 500 · ext 500 - The quick brown fox
font-semibold · int 600 · ext 600
Text styles
Canonical pairings of size × leading × weight × font. Use these together — don't pair text-base with a different leading-* ad-hoc; if a use case needs a different combo, propose a new style here.
| Use | Class | Size (int / ext) | Font | When to use | Sample |
|---|---|---|---|---|---|
| Body (default) | text-base font-normal | 13 / 18 / 14 / 24 | sans | Default for paragraphs, list items, prose. Uses the auto line-height from the fontSize token — no explicit leading-* needed. | The quick brown fox |
| Emphasis paragraph | text-base font-medium | 13 / 18 / 14 / 24 | sans | Bump a single paragraph or sentence that needs to stand out within prose. Don't use for titles. | The quick brown fox |
| Description / secondary | text-base font-normal text-muted-foreground | 13 / 18 / 14 / 24 | sans | Field descriptions, captions under content, muted metadata. Same size as body, tonally quieter. | The quick brown fox |
| Caption / metadata | text-xs leading-4 font-normal | 11 / 16 / 12 / 16 | sans | Tiny labels, timestamps, badge text. | The quick brown fox |
| Subhead | text-lg leading-7 font-medium | 16 / 24 / 18 / 24 | sans | Subsection headers within a card or section. | The quick brown fox |
| Section heading | text-xl leading-7 font-medium tracking-tight | 18 / 24 / 20 / 24 | sans | Top of a page section. | The quick brown fox |
| Page heading | text-3xl leading-9 font-semibold tracking-tight | 28 / 36 / 30 / 36 | sans · serif (ext) | Page title (PageHeader). Uses serif (Georgia) in External mode. | The quick brown fox |
| Display | text-5xl leading-none font-semibold tracking-tight | 48 / 48 / 48 / 48 | sans · serif (ext) | Marketing hero copy. Uses serif (Georgia) in External mode. Sparingly. | The quick brown fox |
| Code | text-sm leading-5 font-mono | 12 / 18 / 14 / 18 | mono | Inline code references, prop names, file paths. | The quick brown fox |
Sizes shown as Internal / External in pixels. Internal is the default. Switch a subtree to External with .typography-external.
Line heights
leading-312pxleading-416pxleading-518pxleading-620pxleading-724pxleading-828pxleading-936pxleading-1040px