Typography
Typography
The site makes no font request. Everything below the display face resolves
against what the reader already has, which is why application.html.erb has no
<link> to a font host and why a new stack has to enter through
design/design-tokens.json rather than through application CSS.
Families
| Token | Stack |
|---|---|
font-sans | Inter, ui-sans-serif, system-ui, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', Meiryo, sans-serif |
font-mono | ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace |
font-display | Magistral, Inter, ui-sans-serif, system-ui, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic UI', Meiryo, sans-serif |
Sans — Search 87 engines through one endpoint
Mono — GET /api/v1/search?engine=google
Display — Search 87 engines through one endpoint
Brand headings only; body copy stays sans. Self-hosted from design/assets/fonts and linked, never inlined — the first family of font_display names the @font-face family, the rest is the sans stack so non-Latin/Cyrillic text (CJK included) falls through unchanged. Five uprights, no italics and no 600: a 600 request resolves upward to Bold 700. The vendor's own CSS splits these across three family names (Magistral / Magistral Book / Magistral Extra); we register all five under one family so weight matching works. ExtraBold 800 is the cut the searchapi.io wordmark was drawn from.
Weights
400 — The quick brown fox jumps over the lazy dog
500 — The quick brown fox jumps over the lazy dog
600 — The quick brown fox jumps over the lazy dog
700 — The quick brown fox jumps over the lazy dog
800 — The quick brown fox jumps over the lazy dog
Scale
Sizes and their line heights, as tokens.css emits them into @theme. The
px/line notation is the record's; the rendered line is the size itself.
| Token | Value | Specimen |
|---|---|---|
text-xs |
12px/16 |
Search |
text-sm |
14px/20 |
Search |
text-base |
16px/24 |
Search |
text-lg |
18px/28 |
Search |
text-xl |
20px/28 |
Search |
text-2xl |
24px/32 |
Search |
text-3xl |
30px/36 |
Search |
text-4xl |
36px/40 |
Search |
text-5xl |
48px/1 |
Search |
text-6xl |
60px/1 |
Search |
Observed on the docs surface
- h1 — 24px/700
- h2 — 18px/600
- h3 — 16px/600 (in gray-50 band, pad 4x24)
- body — 14px/400
- code — 14px mono
- copy_btn — 12px/500