Design System

Typography

Inter across the interface, Material Symbols Rounded for icons. Set size and weight from the scale below โ€” never ad hoc.

Type scale

Nine steps cover every interface need; if a design needs a tenth, question the design first.

HealthMetrics โ€” the quick brown fox

Display / H1

30px ยท weight 700 ยท text-3xl font-bold

Page titles

HealthMetrics โ€” the quick brown fox

Heading / H2

24px ยท weight 600 ยท text-2xl font-semibold

Section headings

HealthMetrics โ€” the quick brown fox

Heading / H3

20px ยท weight 600 ยท text-xl font-semibold

Sub-sections, card group titles

HealthMetrics โ€” the quick brown fox

Title

18px ยท weight 600 ยท text-lg font-semibold

Card titles, dialog titles

HealthMetrics โ€” the quick brown fox

Body / Base

16px ยท weight 500 ยท text-base font-medium

Long-form reading content

HealthMetrics โ€” the quick brown fox

Body / Base Semibold

16px ยท weight 600 ยท text-base font-semibold

Emphasis within body copy

HealthMetrics โ€” the quick brown fox

Body / Small

14px ยท weight 500 ยท text-sm font-medium

Default UI text โ€” tables, descriptions

HealthMetrics โ€” the quick brown fox

Label

14px ยท weight 600 ยท text-sm font-semibold

Form labels, buttons

HealthMetrics โ€” the quick brown fox

Caption

12px ยท weight 500 ยท text-xs font-medium

Timestamps, helper text, badges

StepSizeWeightUtilityUse
Display / H130px700text-3xl font-boldPage titles
Heading / H224px600text-2xl font-semiboldSection headings
Heading / H320px600text-xl font-semiboldSub-sections, card group titles
Title18px600text-lg font-semiboldCard titles, dialog titles
Body / Base16px500text-base font-mediumLong-form reading content
Body / Base Semibold16px600text-base font-semiboldEmphasis within body copy
Body / Small14px500text-sm font-mediumDefault UI text โ€” tables, descriptions
Label14px600text-sm font-semiboldForm labels, buttons
Caption12px500text-xs font-mediumTimestamps, helper text, badges

Rules of thumb

  • UI chrome defaults to Body / Small (14px); reading content to Body / Base (16px).
  • One H1 per page. Heading levels step down without skipping.
  • Colour for hierarchy comes from tokens (text-foreground vs text-muted-foreground) โ€” never opacity on top of a token.

On this page