ADR-003: Typography & Density
| Field | Value |
|---|---|
| Type | Skill Resource |
| Source | ~/.copilot/skills/adr/references/adr-003-typography-and-density.md |
| Description | Not specified |
Source Content
ADR-003: Typography & Density
Decision
Typography uses the system font stack only — no custom or brand web fonts. Hierarchy comes from the type scale (size and weight) and the spacing tokens, not from a typeface. Text and spacing use the semantic type and density utility classes, never raw combinations.
Key rules
- The only font family is the system UI stack:
-apple-system, "Segoe UI", system-ui, sans-serif. Do not load or apply web fonts — no Fraunces, Source Sans 3, Inter, Roboto, or Arial. Thefont-serif/font-bodytokens resolve to this system stack. - Use the semantic type classes (
ui-type-label,ui-type-body-sm,ui-type-title-lg, …) for size, weight, and letter-spacing — not rawtext-sm font-mediumcombinations. - Hierarchy is expressed through size and weight (titles are larger and
font-semibold), never through a separate display typeface. - Use density classes (
ui-pad-row,ui-pad-card, …) for spacing, not arbitraryp-3/gap-2. - Run
pnpm density:checkto audit non-compliant raw spacing. - Heading hierarchy must be semantically correct; type classes carry the visual, not the semantics.
Why
A system-font-only stack ships zero web fonts: faster first paint, a native feel on every platform, and no font-licensing or self-hosting burden. Hierarchy from the token scale keeps typography consistent and theme-able without depending on a brand typeface.
Applies when
You are applying text styles, choosing a font, or setting spacing on any component or layout.
Related
- ADR-001 — design tokens.
- ADR-002 — radius and shape.