HAVN member app
Design tokens
Source: HAVN Brand Guidelines (2025). Everything on this page is rendered through Tailwind utilities that resolve to src/styles/tokens.css. Items marked proposal are not in the brand guide.
Primitives
PDF p.13 primary, p.14 secondary grayscale
Semantic colors
Components use only these. Primitives are not exposed to Tailwind.
Text on surface
fg (Black) 21:1
fg-muted (Graphite) 4.8:1
fg-subtle (Space) 2.5:1, decorative
accent-fg (Sage 700) 5.0:1
Text on inverse
fg-inverse (White) 21:1
accent (Sage) as text on black
Text on accent
fg-on-accent (Black) 12.6:1
White on sage fails (1.7:1)
Type scale
Söhne. PDF p.17 scale, extended with 14 and 12 for UI.
64px
Marketing only
48px
Screen title, desktop
32px
Screen title, mobile. Section heads
24px
Card titles, class names
18px
Lede, member body
16px
Default body, inputs
14px
Captions, table cells, meta
12px
Eyebrows, badges, table headers
Weights
Söhne cuts, PDF p.16
Spacing
4px base. Only these steps exist as utilities.
Radius
Proposal. Tight, to match the hard-edged wordmark.
Elevation
Proposal. Flat by default. Shadow only on floating layers.
Control sizing
Member surfaces use md/lg. Staff shell uses sm/md (dense).
Motion
Fast 120ms · Base 200ms · Slow 320ms. ease-out primary.
Base duration is used for realtime roster changes: an attendee leaving fades out over 200ms rather than disappearing, so members watching a class see the spot open up.