type
Installation
SKILL.md
type
Most interfaces are 90% text. If the text is defaulted, the interface is defaulted, and no amount of colour or motion hides it.
Choosing the family
One sans for the interface. One mono for data, code, shortcuts and labels that should read as system. A display face only on marketing pages, and only if the sans cannot carry it.
Pick for the job:
| Job | Traits | Reach for |
|---|---|---|
| Dense product UI | Neutral, tight apertures, good at 12–14px, tabular figures | Geist, Inter, SF-adjacent grotesks |
| Reading (docs, articles) | Larger x-height, wider spacing, optical sizing if available | Source-style humanists, or the same sans at 16px+ with looser leading |
| Data, code, labels | Mono with clear 0/O and 1/l, ligatures optional | Geist Mono, JetBrains Mono, Berkeley Mono |
| Display | Has an opinion; pairs by contrast with the sans, not similarity | one, chosen against the brand |
If the project already has a family, use it. Changing fonts is a redesign, not a fix.