One scale, and the faces are yours: the base theme sets it in Nunito Sans
Mega and Display styles are for hero moments and landing pages. Headings structure sections. Title is for bold labels. Paragraph Em is the default for buttons and interactive controls. Paragraph is body copy. The SM variants scale each of those down for compact components and secondary text. Overline is the uppercase label face, always paired with an uppercase transform at the use site. Caption is the floor, for footnotes and disclaimers only. The faces are theme decisions: the scale chains through heading and body family roles, and the shipped themes mix serif, sans, grotesk, rounded and mono pairings over this same scale.
Every style chains its family through one of two role tokens: the display and heading styles read --font-family-heading, the body styles read --font-family-body, and both resolve to --font-family-primary by default. The base theme keeps the roles on one face; several presets split them, and consumers of the package can point them at different faces to pair a heading font with a body font, previewing pairings in the playground. The printed specs are the base theme's values: a preset sets its own tier weights and tracking, and Forest sets its display tier to semibold. Colour works the same way: display text reads --color-text-display and headings read --color-text-heading, both aliasing the primary text, so a theme can give a tier its own colour.
Mega
Display
Heading
Body
Code
Scale ladders
The raw sizes and line heights every style above resolves through. Retune a step and every style that reads it follows. The display tiers set their leading as a ratio of the size, so they never read a line-height step.
| Token | Value | Used by |
|---|---|---|
--font-size-300 | 12px | Caption |
--font-size-350 | 14px | Paragraph sm, Paragraph sm emphasis, Overline |
--font-size-400 | 16px | Title body, Paragraph emphasis, Paragraph |
--font-size-550 | 22px | Heading 3 |
--font-size-600 | 24px | Sub display below 768px |
--font-size-650 | 26px | Heading 2 |
--font-size-750 | 30px | Sub display, Heading 1 |
--font-size-1000 | 40px | Display 2 below 768px |
--font-size-1200 | 48px | Display 1 below 768px |
--font-size-1400 | 56px | Mega 2 below 768px |
--font-size-1600 | 64px | Display 2; Mega 1 below 768px |
--font-size-2400 | 96px | Display 1 |
--font-size-2900 | 116px | Mega 2 |
--font-size-3300 | 132px | Mega 1 |
--font-line-height-400 | 16px | Caption |
--font-line-height-500 | 20px | Paragraph sm, Paragraph sm emphasis, Overline |
--font-line-height-600 | 24px | Title body, Paragraph emphasis, Paragraph |
--font-line-height-700 | 28px | Heading 3 |
--font-line-height-800 | 32px | Heading 2 |
--font-line-height-900 | 36px | Sub display below 768px |
--font-line-height-1100 | 44px | Sub display, Heading 1 |