v0.1 · 2026-04-23
Typeface
The typographic system — two humanist faces at a fixed scale of seven sizes, with fixed weights, features, and measures.
What typeface is
Typeface is the typographic system of every Vaquum surface, and every other face parameter builds against the tonal ground it sets. IBM Plex Sans carries body and interface; IBM Plex Mono carries code and numerals. The system declares no serif face, no display face, and no script face. Hierarchy comes from size, weight, and letter-spacing — never from contrast between faces.
Scale
The scale is closed. Seven roles span the whole system:
- title · lead · body · code
- h-label · small · micro
Each role declares six attributes in @vaquum/face/scale as a typed record. The first three attributes govern the shape of every glyph: size, weight, and line-height. The last three attributes govern the spacing and composition of glyphs: letter-spacing, case, and measure. The exhibit below renders each role at its actual metrics, read from the same typed source the modules consume.
Numerals
Numerals follow a discipline that is separate from the rhythm of running text. The tnum feature enables tabular numerals wherever numbers align in a column — tables, figure axes, code. The zero feature enables the slashed zero to disambiguate 0 from O in monospaced contexts. Both features are applied via font-feature-settings on the mono family by default, and sans carries tnum wherever its numerals appear in aligned contexts.
What is not loaded
The 700 bold weight is not loaded and not used anywhere in the system. Italic is not loaded and not used anywhere on a standard surface. Other Plex variants — Serif, Condensed, Devanagari, Arabic — are not loaded either. These three deliberate absences hold the typographic system closed and coherent across every surface. The single exception is inside equation atoms where mathematical convention requires italic variables, and a rendered italic glyph anywhere else on a Vaquum surface is a failure.
Fallback and hosting
When Plex does not load, the surface falls back to a humanist stack that preserves tonal compatibility. The full stack for both families is declared in @vaquum/face/parameters/typeface. Plex itself is self-hosted at fonts.vaquum.fi — never loaded from Google Fonts or a third-party CDN. Every @font-face declaration carries font-display: swap, so the fallback appears mid-load without blocking the render.
| role | specimen | px | weight | line | tracking | family | measure |
|---|---|---|---|---|---|---|---|
| title | Vaquum | 44 | 600 | 1.10 | -0.015em | sans | 28 ch |
| lead | An ontology names what can exist on a surface and the forms it can take. | 19 | 400 | 1.50 | 0 | sans | 52 ch |
| body | Every element on every surface is an instance of exactly one modality. | 17 | 400 | 1.55 | 0 | sans | 66 ch |
| code | const palette = [...greys, ...accents]; | 14.5 | 400 | 1.65 | 0 | mono | 80 ch equivalent |
| h-label | The seven-size scale | 13 | 600 | 1.20 | 0.08em | sans | no wrap |
| small | Fig. 1. Slippage rises non-linearly above 50 BTC trade size. | 13 | 400 | 1.55 | 0 | sans | 60 ch |
| micro | v0.1 · 2026-04-23 | 11 | 500 | 1.20 | 0.14em | mono | no wrap |