Skip to content

Typography

Human uses a dual-typeface system: Avenir for interface text and Geist Mono for code. The type scale follows a modular progression optimized for readability at every size.

Avenir Next is the primary typeface across all surfaces — web, iOS, Android, and documentation. It provides clean, geometric letterforms with excellent readability at small sizes.

Font stack: 'Avenir Next', 'Avenir', system-ui, -apple-system, sans-serif

Geist Mono is used for code blocks, terminal output, and monospaced content. It features programming ligatures and clear distinction between similar characters (0/O, 1/l/I).

Font stack: 'Geist Mono', 'SF Mono', 'Fira Code', 'Cascadia Code', monospace

TokenSizeLine HeightWeightUsage
text.xs12px (0.75rem)1.5400Captions, badges, metadata
text.sm14px (0.875rem)1.5400Secondary text, table cells
text.base16px (1rem)1.6400Body text, form inputs
text.lg18px (1.125rem)1.5500Subtitles, emphasized body
text.xl20px (1.25rem)1.4600Card titles, section headers
text.2xl24px (1.5rem)1.3600Page section titles
text.3xl30px (1.875rem)1.25700Page titles
text.4xl36px (2.25rem)1.2700Hero subtitles
text.5xl48px (3rem)1.1700Hero headlines
TokenValueUsage
weight.regular400Body text, descriptions
weight.medium500Emphasized body, labels
weight.semibold600Titles, buttons, nav items
weight.bold700Headlines, strong emphasis
TokenValueUsage
tracking.tight-0.025emHeadlines, display text
tracking.normal0emBody text
tracking.wide0.05emAll-caps labels, badges
h1 {
font-size: var(--hu-text-3xl);
font-weight: var(--hu-weight-bold);
letter-spacing: var(--hu-tracking-tight);
}
h2 {
font-size: var(--hu-text-2xl);
font-weight: var(--hu-weight-semibold);
}
h3 {
font-size: var(--hu-text-xl);
font-weight: var(--hu-weight-semibold);
}
p {
font-size: var(--hu-text-base);
line-height: 1.6;
color: var(--hu-text);
}
.secondary {
font-size: var(--hu-text-sm);
color: var(--hu-text-muted);
}
code {
font-family: var(--hu-font-mono);
font-size: var(--hu-text-sm);
}
pre code {
font-size: var(--hu-text-xs);
line-height: 1.6;
}
CSS VariableSwiftKotlinC
--hu-text-baseHUTokens.textBaseHUTokens.textBaseN/A (terminal)
--hu-weight-semibold.semiboldFontWeight.SemiBoldHU_COLOR_BOLD
--hu-font-monoFont.custom("GeistMono", ...)FontFamily.MonospaceN/A
  • Minimum body text size is 16px (1rem) for comfortable reading
  • Line heights are tuned per size — larger text uses tighter leading
  • letter-spacing: var(--hu-tracking-wide) is applied to all-caps text for legibility
  • Font weight never drops below 400 for body text