All tokensThe full token surface in one place. Search by name, CSS variable, value, or group. Filter by kind (colors, radii, shadows, motion, layout, spacing, typography, density) or source (matter / brand). Every CSS variable is a click — copies to your clipboard with the canonical peach-ring affordance.
The token data is generated at build time from packages/tokens/src/index.ts and packages/brand/src/tokens/*.ts. A change in the source propagates to this page on the next build — there's no hand-authored token data anywhere on this site.
All 327 Colors 144 Radii 15 Shadows 14 Motion 37 Layout 5 Spacing 13 Typography 91 Density 8
--status-signed-text #1b7a47
matter
--status-pending-text #8a5e1c
matter
--status-draft-text #5A5A5A
matter
--status-filed-text #3a5cb8
matter
--focus-ring rgba(248, 152, 102, 0.55)
matter
--matter-orange-bg #fdeee7
matter
--matter-indigo-bg #eae9ee
matter
--matter-orange-hover #d04610
brand
--matter-orange-tint #fff0eb
brand
--matter-orange-ring rgba(232, 81, 18, 0.16)
brand
--matter-orange-bg #fdeee7
brand
--peach-bg rgba(255, 178, 138, 0.1)
brand
--peach-border rgba(255, 178, 138, 0.25)
brand
--surface-paper-warm #f5f3ee
brand
--border-hair rgba(0, 0, 0, 0.06)
brand
--border-glass rgba(229, 229, 229, 0.64)
brand
--semantic-success #10b981
brand
--semantic-success-soft #e5ece6
brand
--semantic-success-fg #627e68
brand
--semantic-warning #f59e0b
brand
--method-get-bg rgba(42, 111, 219, 0.1)
brand
--method-post-base #1f8a5b
brand
--method-post-bg rgba(31, 138, 91, 0.1)
brand
--method-put-bg rgba(180, 90, 26, 0.1)
brand
--method-patch-base #b45a1a
brand
--method-patch-bg rgba(180, 90, 26, 0.1)
brand
--method-delete-base #b0322b
brand
--method-delete-bg rgba(176, 50, 43, 0.1)
brand
--lifecycle-create-base #1f8a5b
brand
--lifecycle-create-bg rgba(31, 138, 91, 0.08)
brand
--lifecycle-manage-base #2a6fdb
brand
--lifecycle-manage-bg rgba(42, 111, 219, 0.08)
brand
--lifecycle-exit-base #b0322b
brand
--lifecycle-exit-bg rgba(176, 50, 43, 0.08)
brand
--http-status-ok-base #1f8a5b
brand
--http-status-ok-bg rgba(31, 138, 91, 0.1)
brand
--http-status-ok-ring rgba(31, 138, 91, 0.35)
brand
--http-status-redirect-base #6b7280
brand
--http-status-redirect-bg rgba(107, 114, 128, 0.1)
brand
--http-status-redirect-ring rgba(107, 114, 128, 0.3)
brand
--http-status-error-base #b0322b
brand
--http-status-error-bg rgba(176, 50, 43, 0.1)
brand
--http-status-error-ring rgba(176, 50, 43, 0.35)
brand
--key-set-dot-base #5fa86b
brand
--key-set-dot-ring rgba(95, 168, 107, 0.18)
brand
--shadow-sm 0 1px 2px rgba(20, 17, 13, 0.04), 0 0 0 1px #EEEDEA
matter
--shadow-md 0 12px 30px -10px rgba(20, 17, 13, 0.08), 0 1px 3px rgba(20, 17, 13, 0.04)
matter
--shadow-lg 0 30px 80px -30px rgba(20, 17, 13, 0.18), 0 2px 6px rgba(20, 17, 13, 0.05)
matter
--shadow-modal 0 24px 60px -20px rgba(20, 17, 13, 0.22), 0 4px 12px rgba(20, 17, 13, 0.06)
matter
--shadow-glass 0 1px 0 rgba(255,255,255,0.9) inset, 0 8px 24px -10px rgba(13,13,13,0.14), 0 1px 2px rgba(13,13,13,0.04), 0 0 0 1px rgba(13,13,13,0.04)
matter
--shadow-xs 0 1px 2px 0 rgba(0, 0, 0, 0.04)
brand
--shadow-sm 0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.04)
brand
--shadow-md 0 4px 12px -2px rgba(0, 0, 0, 0.06), 0 2px 4px -2px rgba(0, 0, 0, 0.04)
brand
--shadow-lg 0 10px 32px 0 rgba(0, 0, 0, 0.06)
brand
--shadow-card 0 16px 48px 0 rgba(0, 0, 0, 0.08)
brand
--shadow-soft-lg 0 16px 24px 0 rgba(0, 0, 0, 0.08)
brand
--shadow-hero 0 16px 32px 0 rgba(0, 0, 0, 0.16)
brand
--shadow-modal 0 24px 60px -20px rgba(20, 17, 13, 0.22), 0 4px 12px rgba(20, 17, 13, 0.06)
brand
--shadow-glass 0 1px 0 rgba(255,255,255,0.9) inset, 0 8px 24px -10px rgba(13,13,13,0.14), 0 1px 2px rgba(13,13,13,0.04), 0 0 0 1px rgba(13,13,13,0.04)
brand
--motion-ease-standard cubic-bezier(.2, .7, .2, 1)
matter
--motion-ease-entrance cubic-bezier(0, 0, .2, 1)
matter
--motion-ease-exit cubic-bezier(.4, 0, 1, 1)
matter
--motion-ease-emphasize cubic-bezier(.4, 0, .2, 1)
matter
--motion-ease-linear linear
matter
--motion-ease-cubic cubic-bezier(.65, 0, .35, 1)
matter
--motion-ease-soft-bounce cubic-bezier(.34, 1.2, .64, 1)
matter
--motion-ease-snappy cubic-bezier(.5, -.5, .25, 1.5)
matter
--motion-ease-anticipate cubic-bezier(.4, -.4, .25, 1)
matter
--ease-standard cubic-bezier(0.2, 0.7, 0.2, 1)
brand
--ease-entrance cubic-bezier(0, 0, 0.2, 1)
brand
--ease-exit cubic-bezier(0.4, 0, 1, 1)
brand
--ease-emphasize cubic-bezier(0.4, 0, 0.2, 1)
brand
--ease-cubic cubic-bezier(0.65, 0, 0.35, 1)
brand
--ease-soft-bounce cubic-bezier(0.34, 1.2, 0.64, 1)
brand
--ease-snappy cubic-bezier(0.5, -0.5, 0.25, 1.5)
brand
--ease-anticipate cubic-bezier(0.4, -0.4, 0.25, 1)
brand
--ease-out-soft cubic-bezier(0.22, 1, 0.36, 1)
brand
--ease-in-out cubic-bezier(0.4, 0, 0.2, 1)
brand
--layout-content-max-width 1240
matter
--layout-pad-x clamp(20px, 5vw, 96px)
matter
--layout-section-y clamp(100px, 12vw, 180px)
matter
--layout-section-ytight clamp(72px, 8vw, 120px)
matter
--layout-grid-gap clamp(40px, 5vw, 80px)
matter
family.sans Geist, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif
matter
family.mono "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace
matter
family.serif "Instrument Serif", "Iowan Old Style", "Apple Garamond", Georgia, serif
matter
family.logo var(--font-funnel-display), "Funnel Display", "Arial Black", "Helvetica Neue", sans-serif
matter
display.h_display.size clamp(44px, 6.4vw, 92px)
matter
display.h_display.weight 450
matter
display.h_display.tracking -0.038em
matter
display.h_display.leading 1
matter
display.h_1.size clamp(34px, 4vw, 54px)
matter
display.h_1.tracking -0.03em
matter
display.h_2.size clamp(26px, 2.6vw, 36px)
matter
display.h_2.tracking -0.022em
matter
display.h_3.size clamp(20px, 1.8vw, 24px)
matter
display.h_3.tracking -0.015em
matter
body.body.tracking -0.005em
matter
body.eyebrow.tracking 0.18em
matter
body.eyebrow.transform uppercase
matter
--text-display-section 54px
brand
family.display var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
family.sans "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif
brand
family.mono "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace
brand
style.displayMega.fontFamily var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
style.displayMega.fontWeight 400
brand
style.displayMega.fontSize 96px
brand
style.displayMega.lineHeight 100%
brand
style.displayMega.letterSpacing -0.026em
brand
style.displayHero.fontFamily var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
style.displayHero.fontWeight 400
brand
style.displayHero.fontSize 64px
brand
style.displayHero.lineHeight 100%
brand
style.displayHero.letterSpacing -0.015em
brand
style.displaySection.fontFamily var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
style.displaySection.fontWeight 400
brand
style.displaySection.fontSize 54px
brand
style.displaySection.lineHeight 100%
brand
style.displaySection.letterSpacing -0.01em
brand
style.displayCard.fontFamily var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
style.displayCard.fontWeight 400
brand
style.displayCard.fontSize 48px
brand
style.displayCard.lineHeight 100%
brand
style.displayCard.letterSpacing -0.005em
brand
style.displaySub.fontFamily var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
style.displaySub.fontWeight 400
brand
style.displaySub.fontSize 40px
brand
style.displaySub.lineHeight 1.15
brand
style.eyebrow.fontFamily "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif
brand
style.eyebrow.fontWeight 500
brand
style.eyebrow.fontSize 14px
brand
style.eyebrow.lineHeight 1.2
brand
style.eyebrow.letterSpacing 0.06em
brand
style.lead.fontFamily "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif
brand
style.body.fontFamily "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif
brand
--density-comfortable-control-h 42
matter
--density-comfortable-input-h 44
matter
--density-comfortable-pill-h 32
matter
--density-comfortable-row-y 14
matter
--density-compact-control-h 32
matter
--density-compact-input-h 36
matter
--density-compact-pill-h 24
matter
--density-compact-row-y 10
matter
Three canonical ways to read a token, in order of preference:
CSS variable — color: var(--fg-muted);. Always-correct, theme-aware, zero JS cost. Reach for this first.
Tailwind preset utility — class="text-fg-muted". Composes the same CSS variable via the @matter/presets-tailwind preset. Use inside Tailwind-driven surfaces.
TypeScript token export — import { fgMuted } from "@matter/tokens";. Use only for token computations (color manipulation, animation interpolation) — not for runtime styling, since you lose theme reactivity.
Never inline a raw hex value. The drift gate fails CI on raw color literals in MDX, and the same rule applies in source — every color should reach for the token, not the hex.
Kind Count What it does Colors ~125 Foreground / surface / lines / status / brand / OKLCH ramps. Theme-aware. Typography ~91 Font families, sizes, line heights, letter spacing — display, body, mono. Motion ~20 Durations + easing curves. Used by @matter/tokens/css/motion-recipes. Radii ~15 sm, md, lg, xl, hero, pill — the canonical radius scale. Spacing ~13 Density-aware. Comfortable and compact variants where applicable. Shadows ~12 sm, md, lg, modal, glass — surface-elevation scale. Layout ~5 contentMaxWidth, padX, sectionY, sectionYTight, gridGap. Density ~8 Control heights, input heights, pill heights, row spacing.
The token catalogue is the canonical surface — adding a token here is a brand-level decision, not a per-feature one.
Add the value to packages/tokens/src/index.ts (or packages/brand/src/tokens/*.ts for brand-specific tokens).
Add the matching CSS variable to packages/brand/src/styles/tokens.css. The drift-guard test fails CI if these disagree.
Run bun run --filter @repo/brand test and bun run --filter design generate:tokens locally to verify.
The token surfaces here on the next build.
The full token catalogue is exposed at /design-system.json :
curl -s https://design.mattermode.com/design-system.json | jq '.tokens.colors[] | select(.name | startswith("fg"))'
Schema: /design-system.schema.json . The version field mirrors packages/tokens/package.json#version — pin against it for stable agent behaviour.