Typography

Font stack

We use native system fonts for all in-product experiences. This keeps the interface fast and legible across every operating system, with no webfont to load.

Verified 2026-09-04: --font-body in tailwind-theme.css resolves to system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, …, so the page's claim holds.

The typefaces on Brand, Source Sans 3, Special Gothic and JetBrains Mono, are for brand and marketing material. The product does not load them, and the previous design system site's class names for them, type-display and font-code, do not exist in the product CSS.

The live page also carries a Default attributes table whose Font-family, Font-size, Font-weight and Line-height rows contain the monospace font names pasted in as values, with the Class and Value columns empty. It is corrupt and has been dropped here rather than repaired, because the values it should hold are derivable.

Constructs

Type is applied through classes, not utilities, so the same contract serves Rails and React.

.c-heading--base ships and is not on the live docs site. Found while verifying the class contract; the predecessor's empty-state example used it. The full variant list is derivable, so the generated half of the page should enumerate it rather than this prose.

The house type scale is not the type scale

--font-size-* in tailwind-theme.css looks like the house scale and mostly isn't: it sits in a Tailwind v3 namespace that generates no v4 utility, and nine of its fourteen steps hold 1.25rem / 1.75rem — the v3 array shorthand, not a valid font-size. Two steps do render, via hand-written utilities.

Nothing above depends on it. It is flagged because the names invite the assumption that they are the system's type steps, and they are not.