Skip to content

Brand tokens

The system, materialized

hero · 96matter
print · 40matter
nav · 26matter
app · 18matter

Every preset above resolves from a single --logo-size-* token. Edit the token, every consuming surface follows.

Voice · copy

TokenValue
--brand-name"matter"
--brand-name-cap"Matter"
--brand-tagline"Complete your mission"
--brand-tagline-caps"COMPLETE YOUR MISSION"
--brand-tagline-mono"COMPLETE · YOUR · MISSION"
--brand-domain"matter.com"

Wordmark · type

TokenValue
--logo-fontvar(--font-funnel-display), 'Funnel Display', Arial Black, Helvetica Neue, sans-serif
--logo-weight800
--logo-tracking−0.045em
--logo-leading0.78

Lockup · geometry (em ratios)

TokenRatioRole
--logo-asc-ratio0.78mark / em
--logo-gap-ratio0.20gap / em
--logo-tag-italic-ratio0.20title-case tag / em
--logo-tag-caps-ratio0.105all-caps tag / em

Surface presets (px)

TokenValueUse
--logo-size-app18pxapp shell top
--logo-size-nav26pxmarketing nav
--logo-size-hero96pxbrand splash
--logo-size-print40pxprint & PDF

Production usage

Drop the canonical class hooks anywhere:

<a href="/" class="matter-lockup matter-lockup--app">…</a>

.matter-tagline--auto-caps renders the all-caps tagline from the token via ::before { content: var(--brand-tagline-caps) } — no hard-coded string in markup. Color is always currentColor.

Edit the token; the wordmark, tagline, and every surface follow.
Don't bypass the tokens. Hard-coding the brand string in JSX is a drift bug waiting to happen.

On this page