Typography
One typeface, Geist, for everything. Display is the same family with more weight and tighter tracking.
Geist — the workhorse
Hire the engineers who already build what you need.
Geist carries the full range: the same family renders the 45px marketing headline and the 10px
table label. It is loaded here as a self-hosted variable file spanning weights 100 to 900. The
token stack is plain 'Geist';
the variable axis is the confirmed asset and an upgrade note for the stack name.
Display type
There is no second typeface. Display headings are Geist, doing more work through weight and
tracking. The binding idiom is font-semibold tracking-tight at the size the moment calls for. Reach for it on h1 through h4, stat values, and the sidebar
brand, nowhere in body copy. Everything below sets Geist at semibold with tight tracking; only
the size changes.
The pixel scale
A dense product scale, tuned for data-heavy screens with tight leading. These are the real recruiter-bot sizes, not the browser or Tailwind defaults.
| Token | Size | Leading | Specimen |
|---|---|---|---|
| text-2xs | 10px | 14px | The quick brown fox |
| text-xs | 11px | 16px | The quick brown fox |
| text-sm | 12px | 16px | The quick brown fox |
| text-md | 13px | 18px | The quick brown fox |
| text-base | 14px | 20px | The quick brown fox |
| text-lg | 16px | 22px | The quick brown fox |
| text-xl | 20px | 26px | The quick brown fox |
Display
The honest artifacts
The Figma export specifies "Suisse Intl", but that face is never served. What ships is the system sans fallback. Both specimens below set the same string; the top asks for Suisse and gets the system font, the bottom is Geist.
As specified: Suisse Intl
As shipped: Geist
No monospace face is loaded. The reserved stack is the platform UI mono, so code and numeric columns stay legible without shipping a font. Do not assume a bespoke mono exists.
const scarce = 'one accent';
ui-monospace, SFMono-Regular, Menlo, monospace