← All Foundations

Canon

Typography

Type that works. A modular scale based on φ (1.618) creates natural rhythm. Five weights for hierarchy. Fluid sizing for any screen.

Published January 8, 2026

Type Scale

Built on the golden ratio (φ = 1.618). Each step multiplies by φ for natural visual rhythm.

TokenSizeUse
--text-xs0.75remFine print, labels
--text-sm0.875remCaptions, metadata
--text-base1remBody text
--text-lg1.125remLead paragraphs
--text-xl1.25remSection intros
--text-2xl1.5remH4 headings
--text-3xl1.875remH3 headings
--text-4xl2.25remH2 headings
--text-5xl3remH1 headings
--text-display4remHero text

Font Weights

TokenWeightUse
--font-light300Display text
--font-normal400Body text
--font-medium500Emphasis
--font-semibold600Subheadings
--font-bold700Headings

Line Height

TokenValueUse
--leading-none1Single-line text
--leading-tight1.25Headings
--leading-normal1.5Body text
--leading-relaxed1.75Long-form reading

Letter Spacing

TokenValueUse
--tracking-tight-0.025emLarge headings
--tracking-normal0Body text
--tracking-wide0.025emButtons
--tracking-widest0.1emLabels, caps

Font Stack

--font-sans: Arial, 'Helvetica Neue', Helvetica, system-ui, sans-serif;
--font-display: var(--font-sans);
--font-mono: ui-monospace, 'SFMono-Regular', 'SF Mono', Menlo, Consolas, monospace;
--font-serif: Georgia, 'Times New Roman', serif;

The Performance Lab layer uses the local/system sans stack for interface and body text, the platform mono stack for compact system labels, and Georgia only when an editorial serif voice is useful. No CREATE SOMETHING surface should depend on another company’s font host. CREATE SOMETHING keeps local fallbacks so surfaces remain stable if external font loading fails.

The type rule is operational comprehension first. Headlines name the workflow or offer plainly; supporting copy explains the object, action, policy, owner, receipt, or next step. Use mono for short state labels and identifiers, not long explanatory paragraphs.

Fluid Typography

Display text scales with viewport:

--text-display: clamp(2.5rem, 4vw + 1.5rem, 4.5rem);

Usage Example

.article-title {
  font-size: var(--text-4xl);
  font-weight: var(--font-bold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
}

.article-body {
  font-size: var(--text-base);
  font-weight: var(--font-normal);
  line-height: var(--leading-relaxed);
}

.article-meta {
  font-size: var(--text-sm);
  color: var(--color-fg-muted);
  letter-spacing: var(--tracking-wide);
}