Typography System
Poppins (heading) · Inter (body) · Apple HIG
Table of Contents
Apple HIGDynamic Type with accessibility scaling. Default size: Large.
Custom Design System
iOS / iPadOS
System Font: SF Pro
Display
#ios---ipados-displayLarge editorial headings for hero sections
| Style | Size | |
|---|---|---|
Large TitleEmphasized: Bold | 34pt |
Live Preview
Title
#ios---ipados-titleSection and content headings
| Style | Size | |
|---|---|---|
Title 1Emphasized: Bold | 28pt | |
Title 2Emphasized: Bold | 22pt | |
Title 3Emphasized: Semibold | 20pt |
Live Preview
Body
#ios---ipados-bodyReading and content text
| Style | Size | |
|---|---|---|
HeadlineEmphasized: Semibold | 17pt | |
BodyEmphasized: Semibold | 17pt | |
CalloutEmphasized: Semibold | 16pt | |
SubheadEmphasized: Semibold | 15pt | |
FootnoteEmphasized: Semibold | 13pt | |
Caption 1Emphasized: Semibold | 12pt | |
Caption 2Emphasized: Semibold | 11pt |
Live Preview
Typography Philosophy
Design Principles
- •Fluid Typography — Scales smoothly between viewport sizes using CSS clamp()
- •Visual Hierarchy — Clear distinction between heading levels and body text
- •Readability First — Optimized line heights for comfortable reading
- •Consistent Rhythm — Spacing follows a mathematical scale
Accessibility Standards
- •Minimum 16px — Base body text for optimal readability
- •1.5× Line Height — Minimum for body text blocks
- •4.5:1 Contrast — WCAG AA standard for normal text
- •3:1 Contrast — Minimum for large text (18px+ bold)
Font Selection
#font-selectionChoose Google Fonts for headings and body text to preview with your brand colors.
Text Hierarchy
#text-hierarchyHow text colors work together to create visual hierarchy.
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over the lazy dog. This is secondary text used for supporting information.
The quick brown fox jumps over the lazy dog. This text appears disabled or inactive.
Heading Scale
#heading-scaleFluid typography tokens for headings. Sizes interpolate between min (mobile) and max (desktop) using CSS clamp().
| Token | Size (min→max) | Line Height | Weight | |
|---|---|---|---|---|
| font-maximum-bold | 28px → 40px | 1.15 | 700 | |
| font-heading-1 | 20px → 28px | 1.2 | 700 | |
| font-heading-2 | 18px → 24px | 1.25 | 700 | |
| font-heading-3 | 16px → 22px | 1.3 | 700 | |
| font-heading-4 | 14px → 20px | 1.35 | 700 |
Body Scale
#body-scaleTypography tokens for body text, captions, and UI labels. Optimized for readability.
| Token | Size (min→max) | Line Height | Weight | |
|---|---|---|---|---|
| font-large | 16px → 18px | 1.6 | 500 | |
| font-large-bold | 16px → 18px | 1.6 | 700 | |
| font-medium | 14px → 16px | 1.6 | 500 | |
| font-medium-bold | 14px → 16px | 1.6 | 700 | |
| font-small | 12px → 14px | 1.5 | 500 | |
| font-small-bold | 12px → 14px | 1.5 | 700 | |
| font-caption | 12px | 1.4 | 500 | |
| font-caption-bold | 12px | 1.4 | 700 | |
| font-minimum | 10px | 1.3 | 500 | |
| font-minimum-bold | 10px | 1.3 | 700 |
Font Weights
#font-weightsStandard font weights used throughout the design system.
Rarely used, fallback only
Default body text, descriptions
Subheadings, emphasis
Headings, strong emphasis
Typography Spacing Rules
#spacing-rulesVertical rhythm and spacing guidelines for consistent typography.
| Element | Margin Top | Margin Bottom |
|---|---|---|
| H1 | 2rem | 1rem |
| H2 | 1.75rem | 0.875rem |
| H3 | 1.5rem | 0.75rem |
| H4 | 1.25rem | 0.625rem |
| Paragraph | 0 | 1rem |
| List | 0.5rem | 1rem |
Visual Rhythm Example
Body paragraph with default spacing. Text should have comfortable breathing room.
Text on Surfaces
#text-surfacesHow text colors perform on different surface backgrounds.
Primary heading text
Secondary body text for descriptions and supporting content.
Disabled text examplePrimary heading text
Secondary body text for descriptions and supporting content.
Disabled text exampleText on brand color
Supporting text on brand primary background.
Inverse text colors
Text designed for inverse/dark backgrounds.
Links & Interactive Text
#interactive-textThis is a paragraph with a primary link and a secondary link inline with the text.
You can also use info-colored links for navigation or reference links.
Contrast Ratios
#contrast-ratiosWCAG contrast ratios for text on surfaces.