Families

Two families: Archivo for headings and display, Switzer for text. Code and token names render through the code role — see Roles below.

--font-display

Headings and display. Archivo, with a live width axis.

--font-body

Reading text and interface labels. Switzer.

The size scale

Nine pt-based steps, fluid in the browser. Text is never sized outside them — a role pairs a step with weight, line and family.

--text-size-48

--text-size-40

--text-size-32

--text-size-24

--text-size-20

--text-size-16

--text-size-14

--text-size-12

--text-size-10

Text roles

The consumption vocabulary. Every text on every surface consumes exactly one role — weight, size, line height and family travel together.

--text-role-display

Hero statements — one per page at most.

--text-role-watermark

Giant backdrop text behind hero content — absolute-positioned scenery, always in the watermark tone, never primary ink.

--text-role-title-1

The page's own title, in the surface band.

--text-role-title-2

One heading per section of a page.

--text-role-title-3

Titles inside cards and tiles.

--text-role-lede

Intro paragraph under a page title.

--text-role-body

Default reading text.

--text-role-label

Controls, table heads, tabs — semibold small.

--text-role-status

State text inside pills and chips.

--text-role-footnote

Helper text under fields and rows.

--text-role-caption

Captions and quiet metadata.

--text-role-overline

Small caps eyebrow above a title.

--text-role-code

Code and token names.

The width axis

The display face carries a wdth axis. Heading roles pair with a width companion token — the same text, read wider, marking hierarchy at a glance.

--text-role-display-width — the plain width beside the companion width (150). The fainter sample is what the axis adds.

--text-role-title1-width — the plain width beside the companion width (125). The fainter sample is what the axis adds.

--text-role-title2-width — the plain width beside the companion width (112). The fainter sample is what the axis adds.

--text-role-title3-width — the plain width beside the companion width (100). The fainter sample is what the axis adds.