Design tokens

Everything the Gavi Meet surfaces are built from. Values below are the hex equivalents of the oklch tokens in src/styles.css.

Palette — light

Oat--background#F5F1E8
Ink--foreground#2B2622
Bone--card#FCFAF5
Sand--secondary#E7E1D4
Stone--muted-foreground#6B6459
Moss--primary#43663A
Clay--clay#A2795A
Leave red--destructive#9A3B26
Stage--stage#211D19
Tile--tile#332E28

Palette — dark

Deep bark--background#1D1A16
Bone--foreground#F2EEE7
Bark--card#282420
Char--secondary#302B26
Ash--muted-foreground#B4ADA2
Bright moss--primary#8FBE72
Warm clay--clay#C79A73
Leave red--destructive#C6553A
Stage--stage#1A1713
Tile--tile#282420

Typography

Bricolage Grotesque

Display — headings, room names. Weights 500 / 600 / 700, tracking -0.02em.

Instrument Sans

UI and body. Weights 400 / 500 / 600.

  • 12pxMeta, chips, timers
  • 14pxSecondary text, labels
  • 16pxBody, buttons
  • 20pxCard titles, room names
  • 28pxSection headings
  • 40pxPage titles
  • 56pxHero (tablet+)
  • 72pxHero (wide)

Corners

8px

rounded-sm

16px

Cards

24px

Video tiles

999px

CTAs, toolbar

Shadow steps

Step 1

0 1px 2px / 6%

Step 2

0 4px 12px -2px / 10%

Step 3

0 12px 32px -8px / 16%

Step 4

0 28px 64px -16px / 28%

Motion

  • Button hover / press — 150ms ease-out
  • Speaker ring fade — 250ms ease-out
  • Recording dot pulse — 2s, infinite
  • Reactions float — 1200ms, up 140px, fade out
  • Lobby ambient gradient drift — 18s alternate
  • All muted under prefers-reduced-motion