Typography
The Cheetah type system. Three voices — a humanist sans for display, a clean mono for content, a bitmap mono for instrument readouts.
Typography
The Cheetah type system has three voices, each doing exactly one thing.
- Monda — display headings (humanist geometric sans, two weights)
- JetBrains Mono — body + code (everything you read sits on the same grid)
- Departure Mono — HUD chrome (instrument-readout voice, bitmap-pixel character)
Sans for display + mono for content is a deliberate split. The display sans carries editorial confidence at hero scale; the mono body keeps the reading experience tied to the code samples it's full of. Departure Mono lives only in the chrome.
The three voices
Monda — display
Used for all display headings: hero, H1, H2, H3. Two weights available — Regular (400) and Bold (700).
Why Monda. Humanist geometric sans by Vernon Adams. Open apertures, geometric construction, mild stroke modulation. Not as architectural as Söhne or Science Gothic — slightly warmer — but the warmth keeps headings from feeling clinical against the all-mono body. The two-weight limit forces restraint: there's no headline weight to abuse, no light weight to drift into.
Display headings get slight negative tracking (-0.015em to -0.02em) at Bold. Bold at large sizes carries enough weight without needing an extrabold.
JetBrains Mono — body and code
Used for body text, navigation, button labels, code blocks, and inline code. Variable weight axis 100–800.
Why everything-mono for content. Cheetah is a precision-instrument platform. Reading the docs should feel like reading system output — every character on a grid, no proportional flourish. The visual cohesion between prose and code samples (both JetBrains Mono) erases the boundary between narrative and example. When a paragraph mentions an SDK function and that function appears in the next code block, they read as one continuous thing.
Why JetBrains Mono specifically. Most architectural free mono available — designed for code reading without visual noise. No humanist terminals on l, t, r, or m. Straight stems, geometric construction, clean shoulders. Also already the convention in cheetah-ui's design tokens, so the docs and product share a mono voice.
This sans-display + mono-body split is the strong choice. It tilts the docs toward "developer console" rather than "magazine editorial." If a page leans marketing-adjacent and the mono body feels wrong, fix the page voice — not the typography.
Departure Mono — HUD chrome
The "old-school space age" voice. Bitmap-pixel monospace that reads as instrument-panel telemetry. Used only for HUD chrome: applies-to banners, status strips, build stamps, numbered indicators, the alpha banner. Never for body text, never for code.
When JetBrains Mono and Departure Mono share a surface, Departure Mono should always feel like the chrome wrapping the JetBrains Mono content — like CRT phosphor readouts on the edges of a mainframe terminal. The contrast is the point.
Scale
The display scale uses clamp() for fluid sizing — type grows from a comfortable mobile size to a confident desktop hero without breakpoint jumps. Monospace at fixed-width: tracking sits at zero or slightly negative — never aggressive — because manual tracking fights the natural rhythm of the grid.
| Role | Family | Size | Weight | Tracking |
|---|---|---|---|---|
| Homepage hero | Monda | clamp(2.5rem, 7vw, 5rem) |
700 | -0.02em |
| Page H1 | Monda | clamp(1.875rem, 4.5vw, 3rem) |
700 | -0.015em |
| Section H2 | Monda | 1.625rem | 700 | -0.01em |
| Subsection H3 | Monda | 1.25rem | 400 | -0.005em |
| Subsubsection H4 | Departure Mono (hud) | 0.75rem | 600 | 0.08em |
| Body | JetBrains Mono | 0.9375rem | 400 | 0 |
| Description (page lede) | JetBrains Mono | 1.125rem (text-lg) |
400 | 0 |
| Inline code | JetBrains Mono (color-shifted) | 0.875em | 400 | 0 |
| HUD strip | Departure Mono (hud) | 0.6875rem | 600 | 0.08em |
Examples
H1 — page title
Body + inline code
cheetah-service release and share a version number.
Note how inline code distinguishes from body via color and surface, not via family — both are JetBrains Mono. This is correct.
HUD strip
Rules
- Two voices, no others. JetBrains Mono for everything you read, Departure Mono for instrument readouts. There is no third family. If a design feels like it needs one, the answer is almost always color, weight, or background — not a new typeface.
- Never use Departure Mono for body text or code. When it shows up, it means "the system is talking about itself" — a banner, a stamp, a status. Using it for prose breaks the metaphor.
- Inline code differentiates by color + background, not family. Both body and code are JetBrains Mono. The teal color and code-surface background do the distinguishing.
- Tracking sits at zero. Monospace already establishes its rhythm with fixed character widths. Manual tracking fights it. Display can go very slightly negative if needed but never more than
-0.005em. - HUD type is always uppercase, always letter-spaced. Departure Mono in lowercase looks wrong. The
hudutility class enforces this (text-transform: uppercase; letter-spacing: 0.08em). - Don't enable too many OpenType features. JetBrains Mono ships with sensible defaults. Subtle alternates like
ss03are fine; stacking many stylistic sets dilutes the consistency.