Two voices, one page
Veldris speaks in two registers: the mythic and the technical. Newsreader carries the myth, headlines and pull-quotes only. IBM Plex Sans carries the engineering, everything you operate. IBM Plex Mono carries the proof, code, identifiers, and provenance.
The three faces
Weight 500, optical size auto, tracking −1.5%. Headlines, heroes, pull-quotes. Never below 25 px, never for UI.
400 body · 500 controls · 600 headings. 14 px base, sentence case everywhere.
Code, ids, hashes, table headers, and the uppercase provenance label (11 px, +8% tracking).
Scale & rhythm
| Token | Size | Face / weight | Role |
|---|---|---|---|
| --text-5xl / -4xl | 74 / 56 | Newsreader 500 | Marketing heroes |
| --text-3xl | 42 | Newsreader 500 | Page titles |
| --text-2xl | 32 | Newsreader 500 · Plex 600 in-product | Section titles, stat values |
| --text-xl / -lg | 25 / 20 | Plex Sans 600 | Headings |
| --text-md | 16 | Plex Sans 500 | Subheads, leads |
| --text-base / -sm | 14 / 13 | Plex Sans 400–500 | Body, controls, secondary |
| --text-xs / -2xs | 12 / 11 | Plex Mono 400–500 | Meta, provenance labels |
Leading: 1.04 display · 1.15 headings · 1.55 body · 1.35 controls. Numerals in data contexts are always font-variant-numeric: tabular-nums.
The signature motif
Sections open with a hairline rule and a mono provenance label, the document heritage of the SAD carried into every surface. Use it on section starts, cards (via the Card label prop), and dialogs.
Pair one mythic headline with technical body copy.
Keep line length ≤ 66ch; balance headlines with text-wrap.
Set UI in Newsreader, or paragraphs in italic serif.
Use all-caps outside the 11 px mono label. Never letterspace the wordmark.
Type tester
Type a line, pick a voice, drag the size. Everything below is live.