Typography
Google Sans Flex everywhere for UI and marketing chrome. Visual size does not determine heading level — pick the semantic element, then apply the type role.
Scale
Display and large headings are fluid. Body and control text use rem-based steps so they scale with user preferences.
Display — growth that compounds
Heading — clear client outcomes
Title — section label
XL — lead paragraph support
Large — comfortable reading size
Body text keeps a comfortable measure and a steady rhythm.
Supporting text uses a readable, theme-aware navy tint.
Nav — dense chrome links
Caption / meta
Eyebrow / overline
Monospace for code, tokens, and IDs: --ru-navy
Family: --font-family-sans → "Google Sans Flex", system-ui, sans-serif. Do not invent a second typeface.
Token reference
| Token | Value |
|---|---|
--font-family-sans | "Google Sans Flex", system-ui, sans-serif |
--font-family-mono | ui-monospace, SFMono-Regular, Menlo, Consolas, monospace |
--font-weight-normal | 400 |
--font-weight-book | 450 |
--font-weight-medium | 500 |
--font-weight-semibold | 600 |
--font-weight-bold | 700 |
--text-xxs | 0.6875rem |
--text-xs | 0.75rem |
--text-nav | 0.8125rem |
--text-sm | 0.875rem |
--text-base | 1rem |
--text-lg | 1.125rem |
--text-xl | 1.25rem |
--text-2xl | 1.5rem |
--text-3xl | 1.875rem |
--text-4xl | 2.25rem |
--text-display-size | clamp(2.25rem, 1.25rem + 3vw, 3.75rem) |