Skip to content
FoundationsTokens

All tokens

The 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.

Colors

144 of 144
#0D0D0D
matter
#5A5A5A
matter
#8C8C8C
matter
#707070
matter
#FFFFFF
matter
#F7F6F3
matter
#FFFFFF
matter
#F5F3EE
matter
#EEEDEA
matter
#DDDCD8
matter
#0D0D0D
matter
#2A2A2A
matter
#000000
matter
#FFEFE0
matter
#FFD9BC
matter
#FFB587
matter
#F89866
matter
#FBF4DE
matter
#F4E0B0
matter
#E8C078
matter
#D8A24A
matter
#F0EEF8
matter
#DEDAF0
matter
#BFB7E2
matter
#A89DD4
matter
#ECF3E5
matter
#D2E1C5
matter
#ADC796
matter
#8FB078
matter
#3FBF6E
matter
#1b7a47
matter
#E8A845
matter
#8a5e1c
matter
#8C8C8C
matter
#5A5A5A
matter
#6E8AD8
matter
#3a5cb8
matter
#2A6FDB
matter
#1F8A5B
matter
#7A4FB8
matter
#B45A1A
matter
#B0322B
matter
#14110D
matter
#C04C20
matter
#2F7A6E
matter
#6E5BBF
matter
rgba(248, 152, 102, 0.55)
matter
#F0A074
matter
#fafaf9
matter
#f5f5f4
matter
#F0EFED
matter
#e7e5e4
matter
#d6d3d1
matter
#A8A29E
matter
#78716c
matter
#57534E
matter
#44403c
matter
#292524
matter
#1c1917
matter
#e85112
matter
#fdeee7
matter
#627e68
matter
#e5ece6
matter
#2c2854
matter
#eae9ee
matter
#f5f5f5
brand
#e85112
brand
#d04610
brand
#fff0eb
brand
rgba(232, 81, 18, 0.16)
brand
#fdeee7
brand
#5affff
brand
#fafaf9
brand
#f5f5f4
brand
#f0efed
brand
#e7e5e4
brand
#d6d3d1
brand
#a8a29e
brand
#78716c
brand
#57534e
brand
#44403c
brand
#292524
brand
#1c1917
brand
rgba(255, 178, 138, 0.1)
brand
rgba(255, 178, 138, 0.25)
brand
#7b9e82
brand
#627e68
brand
#e5ece6
brand
#f2f5f2
brand
#2c2854
brand
#eae9ee
brand
#b56c6b
brand
#f8f0f0
brand
#fafaf9
brand
#ffffff
brand
#f5f5f4
brand
#e7e5e4
brand
#0a0a0a
brand
#18181b
brand
#f5f3ee
brand
#0d0d0d
brand
#57534e
brand
#78716c
brand
#a8a29e
brand
#ffffff
brand
#ffffff
brand
rgba(0, 0, 0, 0.06)
brand
#e7e5e4
brand
#d6d3d1
brand
rgba(229, 229, 229, 0.64)
brand
#10b981
brand
#e5ece6
brand
#627e68
brand
#f59e0b
brand
#dc2626
brand
#2563eb
brand
#2a6fdb
brand
rgba(42, 111, 219, 0.1)
brand
#1f8a5b
brand
rgba(31, 138, 91, 0.1)
brand
#b45a1a
brand
rgba(180, 90, 26, 0.1)
brand
#b45a1a
brand
rgba(180, 90, 26, 0.1)
brand
#b0322b
brand
rgba(176, 50, 43, 0.1)
brand
#1f8a5b
brand
rgba(31, 138, 91, 0.08)
brand
#2a6fdb
brand
rgba(42, 111, 219, 0.08)
brand
#b0322b
brand
rgba(176, 50, 43, 0.08)
brand
#1f8a5b
brand
rgba(31, 138, 91, 0.1)
brand
rgba(31, 138, 91, 0.35)
brand
#6b7280
brand
rgba(107, 114, 128, 0.1)
brand
rgba(107, 114, 128, 0.3)
brand
#b0322b
brand
rgba(176, 50, 43, 0.1)
brand
rgba(176, 50, 43, 0.35)
brand
#5fa86b
brand
rgba(95, 168, 107, 0.18)
brand
#fdeee7
brand

Radii

15 of 15
10
matter
16
matter
24
matter
32
matter
72
matter
999
matter
6
brand
10
brand
12
brand
16
brand
20
brand
24
brand
32
brand
72
brand
9999
brand

Shadows

14 of 14
0 1px 2px rgba(20, 17, 13, 0.04), 0 0 0 1px #EEEDEA
matter
0 12px 30px -10px rgba(20, 17, 13, 0.08), 0 1px 3px rgba(20, 17, 13, 0.04)
matter
0 30px 80px -30px rgba(20, 17, 13, 0.18), 0 2px 6px rgba(20, 17, 13, 0.05)
matter
0 24px 60px -20px rgba(20, 17, 13, 0.22), 0 4px 12px rgba(20, 17, 13, 0.06)
matter
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
0 1px 2px 0 rgba(0, 0, 0, 0.04)
brand
0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.04)
brand
0 4px 12px -2px rgba(0, 0, 0, 0.06), 0 2px 4px -2px rgba(0, 0, 0, 0.04)
brand
0 10px 32px 0 rgba(0, 0, 0, 0.06)
brand
0 16px 48px 0 rgba(0, 0, 0, 0.08)
brand
0 16px 24px 0 rgba(0, 0, 0, 0.08)
brand
0 16px 32px 0 rgba(0, 0, 0, 0.16)
brand
0 24px 60px -20px rgba(20, 17, 13, 0.22), 0 4px 12px rgba(20, 17, 13, 0.06)
brand
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

37 of 37
0ms
matter
120ms
matter
220ms
matter
320ms
matter
480ms
matter
cubic-bezier(.2, .7, .2, 1)
matter
cubic-bezier(0, 0, .2, 1)
matter
cubic-bezier(.4, 0, 1, 1)
matter
cubic-bezier(.4, 0, .2, 1)
matter
linear
matter
cubic-bezier(.65, 0, .35, 1)
matter
cubic-bezier(.34, 1.2, .64, 1)
matter
cubic-bezier(.5, -.5, .25, 1.5)
matter
cubic-bezier(.4, -.4, .25, 1)
matter
0
brand
180
brand
240
brand
220
brand
320
brand
420
brand
480
brand
520
brand
720
brand
2500
brand
cubic-bezier(0.2, 0.7, 0.2, 1)
brand
cubic-bezier(0, 0, 0.2, 1)
brand
cubic-bezier(0.4, 0, 1, 1)
brand
cubic-bezier(0.4, 0, 0.2, 1)
brand
linear
brand
cubic-bezier(0.65, 0, 0.35, 1)
brand
cubic-bezier(0.34, 1.2, 0.64, 1)
brand
cubic-bezier(0.5, -0.5, 0.25, 1.5)
brand
cubic-bezier(0.4, -0.4, 0.25, 1)
brand
cubic-bezier(0.22, 1, 0.36, 1)
brand
cubic-bezier(0.4, 0, 0.2, 1)
brand
80
brand
70
brand

Layout

5 of 5
1240
matter
clamp(20px, 5vw, 96px)
matter
clamp(100px, 12vw, 180px)
matter
clamp(72px, 8vw, 120px)
matter
clamp(40px, 5vw, 80px)
matter

Spacing

13 of 13
4
brand
8
brand
12
brand
16
brand
20
brand
24
brand
32
brand
40
brand
48
brand
64
brand
80
brand
100
brand
124
brand

Typography

91 of 91
Geist, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif
matter
"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace
matter
"Instrument Serif", "Iowan Old Style", "Apple Garamond", Georgia, serif
matter
var(--font-funnel-display), "Funnel Display", "Arial Black", "Helvetica Neue", sans-serif
matter
clamp(44px, 6.4vw, 92px)
matter
450
matter
-0.038em
matter
1
matter
clamp(34px, 4vw, 54px)
matter
450
matter
-0.03em
matter
1.05
matter
clamp(26px, 2.6vw, 36px)
matter
450
matter
-0.022em
matter
1.12
matter
clamp(20px, 1.8vw, 24px)
matter
500
matter
-0.015em
matter
1.2
matter
12px
matter
1.4
matter
13px
matter
1.45
matter
14px
matter
1.5
matter
18px
matter
1.45
matter
22px
matter
1.3
matter
16px
matter
400
matter
1.5
matter
-0.005em
matter
11px
matter
500
matter
0.18em
matter
uppercase
matter
96px
brand
64px
brand
54px
brand
48px
brand
40px
brand
20px
brand
18px
brand
16px
brand
14px
brand
13px
brand
11px
brand
15px
brand
13px
brand
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif
brand
"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace
brand
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
400
brand
96px
brand
100%
brand
-0.026em
brand
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
400
brand
64px
brand
100%
brand
-0.015em
brand
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
400
brand
54px
brand
100%
brand
-0.01em
brand
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
400
brand
48px
brand
100%
brand
-0.005em
brand
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, sans-serif
brand
400
brand
40px
brand
1.15
brand
"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif
brand
500
brand
14px
brand
1.2
brand
0.06em
brand
"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif
brand
400
brand
20px
brand
1.5
brand
"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif
brand
400
brand
16px
brand
1.6
brand

Density

8 of 8
42
matter
44
matter
32
matter
14
matter
32
matter
36
matter
24
matter
10
matter

How to consume tokens

Three canonical ways to read a token, in order of preference:

  1. CSS variablecolor: var(--fg-muted);. Always-correct, theme-aware, zero JS cost. Reach for this first.
  2. Tailwind preset utilityclass="text-fg-muted". Composes the same CSS variable via the @matter/presets-tailwind preset. Use inside Tailwind-driven surfaces.
  3. TypeScript token exportimport { 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.

What's in each kind

KindCountWhat it does
Colors~125Foreground / surface / lines / status / brand / OKLCH ramps. Theme-aware.
Typography~91Font families, sizes, line heights, letter spacing — display, body, mono.
Motion~20Durations + easing curves. Used by @matter/tokens/css/motion-recipes.
Radii~15sm, md, lg, xl, hero, pill — the canonical radius scale.
Spacing~13Density-aware. Comfortable and compact variants where applicable.
Shadows~12sm, md, lg, modal, glass — surface-elevation scale.
Layout~5contentMaxWidth, padX, sectionY, sectionYTight, gridGap.
Density~8Control heights, input heights, pill heights, row spacing.

Adding a new token

The token catalogue is the canonical surface — adding a token here is a brand-level decision, not a per-feature one.

  1. Add the value to packages/tokens/src/index.ts (or packages/brand/src/tokens/*.ts for brand-specific tokens).
  2. Add the matching CSS variable to packages/brand/src/styles/tokens.css. The drift-guard test fails CI if these disagree.
  3. Run bun run --filter @repo/brand test and bun run --filter design generate:tokens locally to verify.
  4. The token surfaces here on the next build.

For agents

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.

On this page