Typography

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.

displayvar(--text-display-size)

Display — growth that compounds

headingvar(--text-3xl)

Heading — clear client outcomes

titlevar(--text-2xl)

Title — section label

xlvar(--text-xl)

XL — lead paragraph support

lgvar(--text-lg)

Large — comfortable reading size

basevar(--text-base)

Body text keeps a comfortable measure and a steady rhythm.

smvar(--text-sm)

Supporting text uses a readable, theme-aware navy tint.

navvar(--text-nav)

Nav — dense chrome links

xsvar(--text-xs)

Caption / meta

xxsvar(--text-xxs)

Eyebrow / overline

monovar(--font-family-mono)

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

TokenValue
--font-family-sans"Google Sans Flex", system-ui, sans-serif
--font-family-monoui-monospace, SFMono-Regular, Menlo, Consolas, monospace
--font-weight-normal400
--font-weight-book450
--font-weight-medium500
--font-weight-semibold600
--font-weight-bold700
--text-xxs0.6875rem
--text-xs0.75rem
--text-nav0.8125rem
--text-sm0.875rem
--text-base1rem
--text-lg1.125rem
--text-xl1.25rem
--text-2xl1.5rem
--text-3xl1.875rem
--text-4xl2.25rem
--text-display-sizeclamp(2.25rem, 1.25rem + 3vw, 3.75rem)