design language · 02

type.

one family. Fira Sans carries the display line and the smallest label, and a second sans would read as indecision, not range. the personality comes from the weight extremes and from tracking that gets tighter as the type gets bigger.

the mono is the only permitted second voice, and it has exactly one job: structural annotation. indices, tags, metadata, code. never prose. the moment a paragraph is set in mono it stops being a document and starts being terminal cosplay.

displaysans 800

beauty that stays usable

800, tracking pulled to -0.03em. the only place the family is allowed to shout.

headingsans 700

one grammar, three registers

700. still tight, no longer loud.

bodysans 400

the distance between 400 and 800 is where the personality lives. a second family would only dilute it.

400, normal tracking, relaxed leading. most of the site is this.

smallsans 400

secondary copy, captions, the line under a heading.

400 at a smaller size, in muted. secondary, still AA.

labelmono 500

region · boundary

the mono, and the only job it has: indices, tags, metadata, code. never prose.