Typography System
Our typography system uses a mathematical scale (1.25 ratio) combined with a 6-level hierarchy to create clear visual distinction without relying solely on size.
The 6-Level Hierarchy
Each level combines size + color + weight for proper visual distinction:
--typography-display-size 3.052rem (48.83px)--typography-display-color neutral-100--typography-display-weight 400Impact
--typography-heading-size 1.953rem (31.25px)--typography-heading-color neutral-200--typography-heading-weight 400Primary Titles
--typography-subheading-size 1.563rem (25px)--typography-subheading-color neutral-400--typography-subheading-weight 500Section Headers
--typography-body-size 1rem (16px)--typography-body-color neutral-700--typography-body-weight 400Default reading text for content
--typography-caption-size 0.8rem (12.8px)--typography-caption-color neutral-600--typography-caption-weight 400Supporting information and labels
--typography-muted-size 0.625rem (10px)--typography-muted-color neutral-800--typography-muted-weight 400Minimal emphasis for metadata
Core Principles
1. Mathematical Scale
Using a 1.25 ratio (Major Third) ensures each size has at least 25% difference from its neighbors.
2. Three Dimensions of Hierarchy
- Size: From 10px to 61px
- Color: From darkest (display) to lightest (muted)
- Weight: Limited to 400, 500, and 600
3. Constrained Choices
Only 9 sizes and 3 weights prevent decision paralysis and ensure consistency.
Usage Guidelines
/* Display - Hero headlines, maximum impact */
--typography-display-size: 3.052rem;
--typography-display-color: var(--neutral-100);
--typography-display-weight: 400;
/* Body - Default reading text */
--typography-body-size: 1rem;
--typography-body-color: var(--neutral-700);
--typography-body-weight: 400; Font Stack
- Primary: Satoshi - A modern geometric sans-serif
- Monospace: Fira Code - For code and technical content
Accessibility
All text maintains WCAG AA contrast ratios, with one intentional exception for tertiary text in dark mode (used only for non-critical decorative elements).