- ds
- Foundations
- Typography
Typography
Mona Sans with its width axis, IBM Plex Mono for metadata.
Families
Sans · Mona Sans Variable
Aa
Weight 200 to 900 and width 75 to 125%. Headlines use 600 to 640 at 105 to 115% width. Body is 400.
Mono · IBM Plex Mono
Aa
400 and 500. Dates, counts, code, kickers and table heads. Slashed zero on.
Scale
Systems that stay fast
Systems that stay fast
Systems that stay fast
Rewrote the ingestion path in Rust and cut memory by 70 percent.
Systems that stay fast
Rewrote the ingestion path in Rust and cut memory by 70 percent.
Rewrote the ingestion path in Rust and cut memory by 70 percent.
Rewrote the ingestion path in Rust and cut memory by 70 percent.
Rewrote the ingestion path in Rust and cut memory by 70 percent.
12 Aug 2026 · 8 min
Section kicker
Width axis
Throughput 100%
Throughput 108%
Throughput 115%
Code
<p style="font-size:2rem;font-weight:620;font-stretch:100%">Throughput 100%</p>
<p style="font-size:2rem;font-weight:620;font-stretch:108%">Throughput 108%</p>
<p style="font-size:2rem;font-weight:620;font-stretch:115%">Throughput 115%</p>Classes
| Class | On | What it does |
|---|---|---|
.label | any | Small uppercase mono. Kickers, table heads, figure numbers. |
.label.kicker | p | The accent kicker above a title. |
.mono | any | Plex Mono with slashed zero. |
.num | any | Tabular figures, for columns of numbers. |
.muted / .faint | any | Secondary and tertiary text colour. |
.accent / .warm | span | The accent or amber text colour. |
.grad-text | span | The one gradient phrase. See Backdrops. |
.prose | article | Long-form writing: measure, rhythm, lists, quotes, code, tables. |
Prose
Why the sort key matters
ClickHouse reads granules, not rows. A good sort key lets it skip most of them. Here is the query plan.
- Put low-cardinality filters first.
- Keep time last, unless every query filters on it.
The fastest data is the data you never read.
Run EXPLAIN indexes = 1 to check.
Code
<div class="prose">
<h2>Why the sort key matters</h2>
<p>ClickHouse reads <strong>granules</strong>, not rows. A good sort key lets it skip most of them. <a href="#">Here is the query plan</a>.</p>
<ul><li>Put low-cardinality filters first.</li><li>Keep time last, unless every query filters on it.</li></ul>
<blockquote>The fastest data is the data you never read.</blockquote>
<p>Run <code>EXPLAIN indexes = 1</code> to check.</p>
</div>- One headline size per page head; let width and weight do the rest.
- Mono for anything a machine produced.
- Sentence case everywhere.
- Mono for paragraphs.
- Bold in body text for emphasis; the accent
strongin prose is enough. - Uppercase outside
.label.