This page has no content!
Open the page in Sanity Studio to add content.
foundations
Typography Tokens
Designed as a scalable typography foundation, this system applies fluid clamp() scale above 40rem to Display, Headline, and Title, while keeping Body, Detail, Label, and Code fixed for stable reading sizes. The foundation is supported by default font-axis settings, primitive size tokens, and W3C DTCG-compliant token files.
Shared axis values applied via font-variation-settings. font-optical-sizing: none required for manual opsz control.
wdth100Normal widthslnt0Upright (no slant)opsz (display)30Display scaleopsz (headline)28Headline scaleopsz (title)22Title scaleFluid clamp() scale above 40rem · static base below · Display/Headline/Title: --font-display · Body/Detail/Label: --font-sans · Code: --font-mono
note: wght 425 via font-variation-settings
note: alias of label-sm
note: uppercase · +0.06em optical tracking at CSS layer
Primitive font sizes (--text-*) — fixed, non-fluid
--text-xs12pxThe quick brown fox0.75rem--text-sm13pxThe quick brown fox0.8125rem--text-md16pxThe quick brown fox1rem--text-lg18pxThe quick brown fox1.125rem--text-xl20pxThe quick brown fox1.25rem--text-2xl24pxThe quick brown fox1.5rem--text-3xl30pxThe quick brown fox1.875rem--text-4xl36pxThe quick brown fox2.25remprimitives/typography.jsonFont families, weights, primitive sizes{
"$metadata": {
"tokenSetOrder": [
"primitives/typography"
]
},
"typography": {
"font-family": {
"sans": {
"$type": "fontFamily",
"$value": [
"Inter",
"system-ui",
"sans-serif"
],
"$description": "var(--font-sans) — injected by next/font"
},
"display": {
"$type": "fontFamily",
"$value": [
"Inter",
"system-ui",
"sans-serif"
],
"$description": "var(--font-display) — same family, distinct opsz/wdth axis settings"
},
"mono": {
"$type": "fontFamily",
"$value": [
"IBM Plex Mono",
"monospace"
],
"$description": "var(--font-mono) — injected by next/font"
}
},
"font-weight": {
"regular": {
"$type": "fontWeight",
"$value": 400
},
"book": {
"$type": "fontWeight",
"$value": 425,
"$description": "Intermediate weight — requires font-variation-settings"
},
"medium": {
"$type": "fontWeight",
"$value": 500
},
"bold": {
"$type": "fontWeight",
"$value": 700
}
},
"font-size": {
"xs": {
"$type": "fontSize",
"$value": "0.75rem",
"$description": "12px"
},
"sm": {
"$type": "fontSize",
"$value": "0.8125rem",
"$description": "13px"
},
"md": {
"$type": "fontSize",
"$value": "1rem",
"$description": "16px"
},
"lg": {
"$type": "fontSize",
"$value": "1.125rem",
"$description": "18px"
},
"xl": {
"$type": "fontSize",
"$value": "1.25rem",
"$description": "20px"
},
"2xl": {
"$type": "fontSize",
"$value": "1.5rem",
"$description": "24px"
},
"3xl": {
"$type": "fontSize",
"$value": "1.875rem",
"$description": "30px"
},
"4xl": {
"$type": "fontSize",
"$value": "2.25rem",
"$description": "36px"
}
}
}
}semantic/typography.jsonFluid + fixed scale · Display → Code · font axis defaults{
"$metadata": {
"tokenSetOrder": [
"tokens/typography"
]
},
"$description": "Fluid + fixed type scale. Fluid categories (Display, Headline, Title) use base/min/fluid/max sub-tokens for CSS clamp(); fluid sizing activates above 40rem. Fixed categories use a single font-size.",
"type": {
"font": {
"$description": "Global variable font axis defaults.",
"axis": {
"wdth": {
"$type": "number",
"$value": 100,
"$description": "Normal width"
},
"slnt": {
"$type": "number",
"$value": 0,
"$description": "Upright"
},
"opsz": {
"display": {
"$type": "number",
"$value": 30
},
"headline": {
"$type": "number",
"$value": 28
},
"title": {
"$type": "number",
"$value": 22
}
}
}
},
"display": {
"$description": "Fluid. --font-display. text-box: trim-both cap alphabetic.",
"2xl": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "4.5rem",
"min": "5.5625rem",
"fluid": "calc(4.7169rem + 2.114vw)",
"max": "7rem"
},
"lineHeight": 0.92,
"letterSpacing": "-0.04em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.display}"
}
},
"xl": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "3.5625rem",
"min": "4.5rem",
"fluid": "calc(3.875rem + 1.5625vw)",
"max": "5.5625rem"
},
"lineHeight": 0.95,
"letterSpacing": "-0.04em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.display}"
}
},
"lg": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "2.875rem",
"min": "3.5625rem",
"fluid": "calc(3.011rem + 1.3787vw)",
"max": "4.5rem"
},
"lineHeight": 0.98,
"letterSpacing": "-0.04em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.display}"
}
},
"md": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "2.3125rem",
"min": "2.875rem",
"fluid": "calc(2.4706rem + 1.011vw)",
"max": "3.5625rem"
},
"lineHeight": 1,
"letterSpacing": "-0.04em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.display}"
}
},
"sm": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "1.875rem",
"min": "2.3125rem",
"fluid": "calc(1.9816rem + 0.8272vw)",
"max": "2.875rem"
},
"lineHeight": 1.02,
"letterSpacing": "-0.04em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.display}"
}
}
},
"headline": {
"$description": "Fluid. --font-display. text-box: trim-both cap alphabetic.",
"2xl": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "2.8125rem",
"min": "3.375rem",
"fluid": "calc(2.9706rem + 1.011vw)",
"max": "4.0625rem"
},
"lineHeight": 1.02,
"letterSpacing": "-0.035em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.headline}"
}
},
"xl": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "2.3125rem",
"min": "2.8125rem",
"fluid": "calc(2.4816rem + 0.8272vw)",
"max": "3.375rem"
},
"lineHeight": 1.05,
"letterSpacing": "-0.03em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.headline}"
}
},
"lg": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "1.9375rem",
"min": "2.3125rem",
"fluid": "calc(2.0184rem + 0.7353vw)",
"max": "2.8125rem"
},
"lineHeight": 1.08,
"letterSpacing": "-0.03em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.headline}"
}
},
"md": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "1.625rem",
"min": "1.9375rem",
"fluid": "calc(1.7169rem + 0.5515vw)",
"max": "2.3125rem"
},
"lineHeight": 1.12,
"letterSpacing": "-0.025em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.headline}"
}
},
"sm": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "1.375rem",
"min": "1.625rem",
"fluid": "calc(1.4412rem + 0.4596vw)",
"max": "1.9375rem"
},
"lineHeight": 1.15,
"letterSpacing": "-0.02em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.headline}"
}
}
},
"title": {
"$description": "Fluid. --font-display. text-box: trim-both cap alphabetic.",
"lg": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "1.5rem",
"min": "1.6875rem",
"fluid": "calc(1.5772rem + 0.2757vw)",
"max": "1.875rem"
},
"lineHeight": 1.12,
"letterSpacing": "-0.015em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.title}"
}
},
"md": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "1.3125rem",
"min": "1.5rem",
"fluid": "calc(1.3897rem + 0.2757vw)",
"max": "1.6875rem"
},
"lineHeight": 1.16,
"letterSpacing": "-0.01em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.title}"
}
},
"sm": {
"$type": "typography",
"$value": {
"fontSize": {
"base": "1.1875rem",
"min": "1.3125rem",
"fluid": "calc(1.2022rem + 0.2757vw)",
"max": "1.5rem"
},
"lineHeight": 1.2,
"letterSpacing": "-0.01em",
"fontWeight": 400,
"textBox": "trim-both cap alphabetic",
"opsz": "{type.font.axis.opsz.title}"
}
}
},
"statement": {
"$description": "Fixed. --font-sans. text-box: trim-both cap alphabetic.",
"md": {
"$type": "typography",
"$value": {
"fontSize": "1.5rem",
"lineHeight": 1.24,
"letterSpacing": "-0.01em",
"fontWeight": "425 — intermediate, requires font-variation-settings",
"textBox": "trim-both cap alphabetic"
}
}
},
"body": {
"$description": "Fixed. --font-sans. text-box: normal.",
"md": {
"$type": "typography",
"$value": {
"fontSize": "1.125rem",
"lineHeight": 1.5,
"letterSpacing": "-0.01em",
"fontWeight": 400,
"textBox": "normal"
}
},
"sm": {
"$type": "typography",
"$value": {
"fontSize": "1rem",
"lineHeight": 1.5,
"letterSpacing": "0",
"fontWeight": 400,
"textBox": "normal"
}
}
},
"detail": {
"$description": "Fixed. --font-sans. text-box: trim-both ex alphabetic.",
"md": {
"$type": "typography",
"$value": {
"fontSize": "0.8125rem",
"lineHeight": 1.5,
"letterSpacing": "0",
"fontWeight": 400,
"textBox": "trim-both ex alphabetic"
}
},
"sm": {
"$type": "typography",
"$value": {
"fontSize": "0.75rem",
"lineHeight": 1.5,
"letterSpacing": "0",
"fontWeight": 400,
"textBox": "trim-both ex alphabetic"
}
}
},
"label": {
"$description": "Fixed. --font-sans. text-box: trim-both ex alphabetic.",
"md": {
"$type": "typography",
"$value": {
"fontSize": "0.8125rem",
"lineHeight": 1.3,
"letterSpacing": "0",
"fontWeight": 400,
"textBox": "trim-both ex alphabetic"
}
},
"sm": {
"$type": "typography",
"$value": {
"fontSize": "0.625rem",
"lineHeight": 1.3,
"letterSpacing": "0",
"fontWeight": 400,
"textBox": "trim-both ex alphabetic"
}
}
},
"caption": {
"$type": "typography",
"$description": "Alias of label-sm. --font-sans. text-box: trim-both ex alphabetic.",
"$value": {
"fontSize": "{type.label.sm.font-size}",
"lineHeight": "{type.label.sm.line-height}",
"letterSpacing": "{type.label.sm.letter-spacing}",
"fontWeight": "{type.label.sm.font-weight}",
"textBox": "trim-both ex alphabetic"
}
},
"overline": {
"$type": "typography",
"$description": "Alias of label-sm, uppercase. --font-sans. text-box: trim-both cap alphabetic. +0.06em optical tracking at CSS layer.",
"$value": {
"fontSize": "{type.label.sm.font-size}",
"lineHeight": "{type.label.sm.line-height}",
"letterSpacing": "0",
"letterSpacingOpticalCorrection": "0.06em",
"fontWeight": "{type.label.sm.font-weight}",
"textBox": "trim-both cap alphabetic",
"textTransform": "uppercase"
}
},
"code": {
"$description": "Fixed. --font-mono. text-box: normal.",
"sm": {
"$type": "typography",
"$value": {
"fontSize": "0.8125rem",
"lineHeight": 1.5,
"letterSpacing": "0",
"fontWeight": 400,
"textBox": "normal"
}
},
"md": {
"$type": "typography",
"$value": {
"fontSize": "0.9375rem",
"lineHeight": 1.5,
"letterSpacing": "0",
"fontWeight": 400,
"textBox": "normal"
}
}
}
}
}token-showcase / colorColor Tokens
Every color variable and semantic alias in the system. Resolution chain shows how each semantic token resolves in both themes.
Tier 1OKLCH primitives
oklch(L C H)oklch(0.6927 0.2519 38.64)oklch(98.5% 0 0)oklch(55.2% 0.016 285.938)Tier 2Primitive scale tokens
--color-{scale}-{step}--color-brand-500--color-zinc-900--color-cyan-400Tier 3Semantic aliases
--color-{role}-{variant}--color-surface-default--color-text-brand--color-border-focusTier 4Tailwind utilities
bg-* / text-* / border-*bg-surface-defaulttext-text-brandborder-border-focusEach primitive token and which semantic tokens reference it in ☀ light and ◑ dark mode.
white
--color-whitezinc
--color-zinc-50--color-zinc-100--color-zinc-200--color-zinc-300--color-zinc-400--color-zinc-500--color-zinc-600--color-zinc-700--color-zinc-800--color-zinc-900--color-zinc-950brand
--color-brand-50--color-brand-300--color-brand-400--color-brand-500--color-brand-600--color-brand-700--color-brand-950info
--color-info-400--color-info-500success
--color-success-400--color-success-500warning
--color-warning-400--color-warning-500danger
--color-danger-400--color-danger-500☀ Light
data-theme="light"Surfaces
surface-default
--color-surface-default
surface-subtle
--color-surface-subtle
surface-muted
--color-surface-muted
surface-raised
--color-surface-raised
surface-overlay
--color-surface-overlay
surface-brand
--color-surface-brand
surface-brand-subtle
--color-surface-brand-subtle
surface-inverse
--color-surface-inverse
Text
--color-text-defaulttext-defaultAa — The quick brown fox--color-text-mutedtext-mutedAa — The quick brown fox--color-text-subtletext-subtleAa — The quick brown fox--color-text-brandtext-brandAa — The quick brown fox--color-text-on-brandtext-on-brandAa — The quick brown fox--color-text-on-inversetext-on-inverseAa — The quick brown fox--color-text-linktext-linkAa — The quick brown fox--color-text-link-hovertext-link-hoverAa — The quick brown fox--color-text-headingtext-headingAa — The quick brown fox--color-text-infotext-infoAa — The quick brown fox--color-text-successtext-successAa — The quick brown fox--color-text-warningtext-warningAa — The quick brown fox--color-text-dangertext-dangerAa — The quick brown foxBorders
--color-border-defaultborder-default--color-border-mutedborder-muted--color-border-strongborder-strong--color-border-brandborder-brand--color-border-focusborder-focus--color-border-dangerborder-dangerIcons
icon-default
--color-icon-default
icon-muted
--color-icon-muted
icon-brand
--color-icon-brand
icon-on-brand
--color-icon-on-brand
Media frame
media-surface
--color-media-surface
media-border
--color-media-border
media-surface-inverse
--color-media-surface-inverse
media-border-inverse
--color-media-border-inverse
◑ Dark
data-theme="dark"Surfaces
surface-default
--color-surface-default
surface-subtle
--color-surface-subtle
surface-muted
--color-surface-muted
surface-raised
--color-surface-raised
surface-overlay
--color-surface-overlay
surface-brand
--color-surface-brand
surface-brand-subtle
--color-surface-brand-subtle
surface-inverse
--color-surface-inverse
Text
--color-text-defaulttext-defaultAa — The quick brown fox--color-text-mutedtext-mutedAa — The quick brown fox--color-text-subtletext-subtleAa — The quick brown fox--color-text-brandtext-brandAa — The quick brown fox--color-text-on-brandtext-on-brandAa — The quick brown fox--color-text-on-inversetext-on-inverseAa — The quick brown fox--color-text-linktext-linkAa — The quick brown fox--color-text-link-hovertext-link-hoverAa — The quick brown fox--color-text-headingtext-headingAa — The quick brown fox--color-text-infotext-infoAa — The quick brown fox--color-text-successtext-successAa — The quick brown fox--color-text-warningtext-warningAa — The quick brown fox--color-text-dangertext-dangerAa — The quick brown foxBorders
--color-border-defaultborder-default--color-border-mutedborder-muted--color-border-strongborder-strong--color-border-brandborder-brand--color-border-focusborder-focus--color-border-dangerborder-dangerIcons
icon-default
--color-icon-default
icon-muted
--color-icon-muted
icon-brand
--color-icon-brand
icon-on-brand
--color-icon-on-brand
Media frame
media-surface
--color-media-surface
media-border
--color-media-border
media-surface-inverse
--color-media-surface-inverse
media-border-inverse
--color-media-border-inverse
How each semantic token resolves: semantic → primitive (light) / primitive (dark) → oklch(L C H)
Surface
| Cat | Semantic variable | Light → primitive | Dark → primitive |
|---|---|---|---|
| Surface | --color-surface-default | → var(--color-white) | → var(--color-zinc-950) |
| Surface | --color-surface-subtle | → var(--color-zinc-50) | → var(--color-zinc-900) |
| Surface | --color-surface-muted | → var(--color-zinc-100) | → var(--color-zinc-800) |
| Surface | --color-surface-raised | → var(--color-white) | → var(--color-zinc-900) |
| Surface | --color-surface-overlay | → var(--color-white) | → var(--color-zinc-800) |
| Surface | --color-surface-brand | → var(--color-brand-500) | → var(--color-brand-500) |
| Surface | --color-surface-brand-subtle | → var(--color-brand-50) | → var(--color-brand-950) |
| Surface | --color-surface-inverse | → var(--color-zinc-900) | → var(--color-zinc-100) |
Text
| Cat | Semantic variable | Light → primitive | Dark → primitive |
|---|---|---|---|
| Text | --color-text-default | → var(--color-zinc-900) | → var(--color-zinc-50) |
| Text | --color-text-muted | → var(--color-zinc-500) | → var(--color-zinc-400) |
| Text | --color-text-subtle | → var(--color-zinc-400) | → var(--color-zinc-500) |
| Text | --color-text-brand | → var(--color-brand-600) | → var(--color-brand-400) |
| Text | --color-text-on-brand | → var(--color-white) | → var(--color-white) |
| Text | --color-text-on-inverse | → var(--color-zinc-50) | → var(--color-zinc-900) |
| Text | --color-text-link | → var(--color-brand-500) | → var(--color-brand-400) |
| Text | --color-text-link-hover | → var(--color-brand-700) | → var(--color-brand-300) |
| Text | --color-text-heading | → (--color-text-default) | → (--color-text-default) |
| Text | --color-text-info | → var(--color-info-500) | → var(--color-info-400) |
| Text | --color-text-success | → var(--color-success-500) | → var(--color-success-400) |
| Text | --color-text-warning | → var(--color-warning-500) | → var(--color-warning-400) |
| Text | --color-text-danger | → var(--color-danger-500) | → var(--color-danger-400) |
Border
| Cat | Semantic variable | Light → primitive | Dark → primitive |
|---|---|---|---|
| Border | --color-border-default | → var(--color-zinc-200) | → var(--color-zinc-700) |
| Border | --color-border-muted | → var(--color-zinc-100) | → var(--color-zinc-800) |
| Border | --color-border-strong | → var(--color-zinc-300) | → var(--color-zinc-600) |
| Border | --color-border-brand | → var(--color-brand-500) | → var(--color-brand-500) |
| Border | --color-border-focus | → var(--color-brand-500) | → var(--color-brand-400) |
| Border | --color-border-danger | → var(--color-danger-500) | → var(--color-danger-400) |
Icon
| Cat | Semantic variable | Light → primitive | Dark → primitive |
|---|---|---|---|
| Icon | --color-icon-default | → var(--color-zinc-600) | → var(--color-zinc-400) |
| Icon | --color-icon-muted | → var(--color-zinc-400) | → var(--color-zinc-500) |
| Icon | --color-icon-brand | → var(--color-brand-500) | → var(--color-brand-400) |
| Icon | --color-icon-on-brand | → var(--color-white) | → var(--color-white) |
Flat / single-stop tokens
framework
--color-framework
black
--color-black
white
--color-white
brand
--color-brand
blue
--color-blue
yellow
--color-yellow
off-brand
--color-off-brand
50100200300400500600700800900950primitives/color.jsonFlat tokens, brand scale, zinc, status aliases{
"$metadata": {
"tokenSetOrder": [
"primitives/color"
]
},
"color": {
"framework": {
"$type": "color",
"$value": "oklch(0 0 0)",
"$description": "True black — framework/overlay use only"
},
"black": {
"$type": "color",
"$value": "oklch(0.1697 0 0)",
"$description": "Near-black default ink"
},
"white": {
"$type": "color",
"$value": "oklch(1 0 0)",
"$description": "Pure white"
},
"brand": {
"$type": "color",
"$value": "oklch(0.6927 0.2519 38.64)",
"$description": "Single-stop brand accent (hue 38.64)"
},
"blue": {
"$type": "color",
"$value": "oklch(0.531 0.2498 263.11)"
},
"yellow": {
"$type": "color",
"$value": "oklch(0.8868 0.1883 116.45)"
},
"off-brand": {
"$type": "color",
"$value": "oklch(0.8896 0.1984 180)"
},
"brand-scale": {
"50": {
"$type": "color",
"$value": "oklch(0.98 0.016 38.64)"
},
"100": {
"$type": "color",
"$value": "oklch(0.95 0.038 38.64)"
},
"200": {
"$type": "color",
"$value": "oklch(0.88 0.08 38.64)"
},
"300": {
"$type": "color",
"$value": "oklch(0.8 0.14 38.64)"
},
"400": {
"$type": "color",
"$value": "oklch(0.74 0.19 38.64)"
},
"500": {
"$type": "color",
"$value": "oklch(0.6927 0.2519 38.64)"
},
"600": {
"$type": "color",
"$value": "oklch(0.58 0.2 38.64)"
},
"700": {
"$type": "color",
"$value": "oklch(0.48 0.16 38.64)"
},
"800": {
"$type": "color",
"$value": "oklch(0.38 0.12 38.64)"
},
"900": {
"$type": "color",
"$value": "oklch(0.28 0.08 38.64)"
},
"950": {
"$type": "color",
"$value": "oklch(0.2 0.05 38.64)"
}
},
"zinc": {
"50": {
"$type": "color",
"$value": "oklch(98.5% 0 0)"
},
"100": {
"$type": "color",
"$value": "oklch(96.7% 0.001 286.375)"
},
"200": {
"$type": "color",
"$value": "oklch(92% 0.004 286.32)"
},
"300": {
"$type": "color",
"$value": "oklch(87.1% 0.006 286.286)"
},
"400": {
"$type": "color",
"$value": "oklch(70.5% 0.015 286.067)"
},
"500": {
"$type": "color",
"$value": "oklch(55.2% 0.016 285.938)"
},
"600": {
"$type": "color",
"$value": "oklch(44.2% 0.017 285.786)"
},
"700": {
"$type": "color",
"$value": "oklch(37% 0.013 285.805)"
},
"800": {
"$type": "color",
"$value": "oklch(27.4% 0.006 286.033)"
},
"900": {
"$type": "color",
"$value": "oklch(21% 0.006 285.885)"
},
"950": {
"$type": "color",
"$value": "oklch(14.1% 0.005 285.823)"
}
},
"info": {
"50": {
"$type": "color",
"$value": "{color.cyan.50}"
},
"100": {
"$type": "color",
"$value": "{color.cyan.100}"
},
"200": {
"$type": "color",
"$value": "{color.cyan.200}"
},
"300": {
"$type": "color",
"$value": "{color.cyan.300}"
},
"400": {
"$type": "color",
"$value": "{color.cyan.400}"
},
"500": {
"$type": "color",
"$value": "{color.cyan.500}"
},
"600": {
"$type": "color",
"$value": "{color.cyan.600}"
},
"700": {
"$type": "color",
"$value": "{color.cyan.700}"
},
"800": {
"$type": "color",
"$value": "{color.cyan.800}"
},
"900": {
"$type": "color",
"$value": "{color.cyan.900}"
},
"950": {
"$type": "color",
"$value": "{color.cyan.950}"
},
"$description": "Aliased → cyan scale"
},
"success": {
"50": {
"$type": "color",
"$value": "{color.green.50}"
},
"100": {
"$type": "color",
"$value": "{color.green.100}"
},
"200": {
"$type": "color",
"$value": "{color.green.200}"
},
"300": {
"$type": "color",
"$value": "{color.green.300}"
},
"400": {
"$type": "color",
"$value": "{color.green.400}"
},
"500": {
"$type": "color",
"$value": "{color.green.500}"
},
"600": {
"$type": "color",
"$value": "{color.green.600}"
},
"700": {
"$type": "color",
"$value": "{color.green.700}"
},
"800": {
"$type": "color",
"$value": "{color.green.800}"
},
"900": {
"$type": "color",
"$value": "{color.green.900}"
},
"950": {
"$type": "color",
"$value": "{color.green.950}"
},
"$description": "Aliased → green scale"
},
"warning": {
"50": {
"$type": "color",
"$value": "{color.yellow.50}"
},
"100": {
"$type": "color",
"$value": "{color.yellow.100}"
},
"200": {
"$type": "color",
"$value": "{color.yellow.200}"
},
"300": {
"$type": "color",
"$value": "{color.yellow.300}"
},
"400": {
"$type": "color",
"$value": "{color.yellow.400}"
},
"500": {
"$type": "color",
"$value": "{color.yellow.500}"
},
"600": {
"$type": "color",
"$value": "{color.yellow.600}"
},
"700": {
"$type": "color",
"$value": "{color.yellow.700}"
},
"800": {
"$type": "color",
"$value": "{color.yellow.800}"
},
"900": {
"$type": "color",
"$value": "{color.yellow.900}"
},
"950": {
"$type": "color",
"$value": "{color.yellow.950}"
},
"$description": "Aliased → yellow scale"
},
"danger": {
"50": {
"$type": "color",
"$value": "{color.red.50}"
},
"100": {
"$type": "color",
"$value": "{color.red.100}"
},
"200": {
"$type": "color",
"$value": "{color.red.200}"
},
"300": {
"$type": "color",
"$value": "{color.red.300}"
},
"400": {
"$type": "color",
"$value": "{color.red.400}"
},
"500": {
"$type": "color",
"$value": "{color.red.500}"
},
"600": {
"$type": "color",
"$value": "{color.red.600}"
},
"700": {
"$type": "color",
"$value": "{color.red.700}"
},
"800": {
"$type": "color",
"$value": "{color.red.800}"
},
"900": {
"$type": "color",
"$value": "{color.red.900}"
},
"950": {
"$type": "color",
"$value": "{color.red.950}"
},
"$description": "Aliased → red scale"
}
}
}semantic/color.jsonSurface / text / border / icon · light + dark overrides{
"$metadata": {
"tokenSetOrder": [
"semantic/color"
]
},
"$description": "Semantic tokens. Base $value = light mode. $extensions.mode.dark = dark mode override.",
"color": {
"surface": {
"default": {
"$type": "color",
"$value": "{color.white}",
"$extensions": {
"mode": {
"dark": "{color.zinc.950}"
}
}
},
"subtle": {
"$type": "color",
"$value": "{color.zinc.50}",
"$extensions": {
"mode": {
"dark": "{color.zinc.900}"
}
}
},
"muted": {
"$type": "color",
"$value": "{color.zinc.100}",
"$extensions": {
"mode": {
"dark": "{color.zinc.800}"
}
}
},
"raised": {
"$type": "color",
"$value": "{color.white}",
"$extensions": {
"mode": {
"dark": "{color.zinc.900}"
}
}
},
"overlay": {
"$type": "color",
"$value": "{color.white}",
"$extensions": {
"mode": {
"dark": "{color.zinc.800}"
}
}
},
"brand": {
"$type": "color",
"$value": "{color.brand-scale.500}",
"$extensions": {
"mode": {
"dark": "{color.brand-scale.500}"
}
}
},
"brand-subtle": {
"$type": "color",
"$value": "{color.brand-scale.50}",
"$extensions": {
"mode": {
"dark": "{color.brand-scale.950}"
}
}
},
"inverse": {
"$type": "color",
"$value": "{color.zinc.900}",
"$extensions": {
"mode": {
"dark": "{color.zinc.100}"
}
}
}
},
"text": {
"default": {
"$type": "color",
"$value": "{color.zinc.900}",
"$extensions": {
"mode": {
"dark": "{color.zinc.50}"
}
}
},
"muted": {
"$type": "color",
"$value": "{color.zinc.500}",
"$extensions": {
"mode": {
"dark": "{color.zinc.400}"
}
}
},
"subtle": {
"$type": "color",
"$value": "{color.zinc.400}",
"$extensions": {
"mode": {
"dark": "{color.zinc.500}"
}
}
},
"brand": {
"$type": "color",
"$value": "{color.brand-scale.600}",
"$extensions": {
"mode": {
"dark": "{color.brand-scale.400}"
}
}
},
"on-brand": {
"$type": "color",
"$value": "{color.white}",
"$extensions": {
"mode": {
"dark": "{color.white}"
}
}
},
"on-inverse": {
"$type": "color",
"$value": "{color.zinc.50}",
"$extensions": {
"mode": {
"dark": "{color.zinc.900}"
}
}
},
"link": {
"$type": "color",
"$value": "{color.brand-scale.500}",
"$extensions": {
"mode": {
"dark": "{color.brand-scale.400}"
}
}
},
"link-hover": {
"$type": "color",
"$value": "{color.brand-scale.700}",
"$extensions": {
"mode": {
"dark": "{color.brand-scale.300}"
}
}
},
"heading": {
"$type": "color",
"$value": "{color.text.default}",
"$description": "Inherits text.default; overridden per-mode via cascade"
},
"info": {
"$type": "color",
"$value": "{color.info.500}",
"$extensions": {
"mode": {
"dark": "{color.info.400}"
}
}
},
"success": {
"$type": "color",
"$value": "{color.success.500}",
"$extensions": {
"mode": {
"dark": "{color.success.400}"
}
}
},
"warning": {
"$type": "color",
"$value": "{color.warning.500}",
"$extensions": {
"mode": {
"dark": "{color.warning.400}"
}
}
},
"danger": {
"$type": "color",
"$value": "{color.danger.500}",
"$extensions": {
"mode": {
"dark": "{color.danger.400}"
}
}
}
},
"border": {
"default": {
"$type": "color",
"$value": "{color.zinc.200}",
"$extensions": {
"mode": {
"dark": "{color.zinc.700}"
}
}
},
"muted": {
"$type": "color",
"$value": "{color.zinc.100}",
"$extensions": {
"mode": {
"dark": "{color.zinc.800}"
}
}
},
"strong": {
"$type": "color",
"$value": "{color.zinc.300}",
"$extensions": {
"mode": {
"dark": "{color.zinc.600}"
}
}
},
"brand": {
"$type": "color",
"$value": "{color.brand-scale.500}",
"$extensions": {
"mode": {
"dark": "{color.brand-scale.500}"
}
}
},
"focus": {
"$type": "color",
"$value": "{color.brand-scale.500}",
"$extensions": {
"mode": {
"dark": "{color.brand-scale.400}"
}
}
},
"danger": {
"$type": "color",
"$value": "{color.danger.500}",
"$extensions": {
"mode": {
"dark": "{color.danger.400}"
}
}
}
},
"icon": {
"default": {
"$type": "color",
"$value": "{color.zinc.600}",
"$extensions": {
"mode": {
"dark": "{color.zinc.400}"
}
}
},
"muted": {
"$type": "color",
"$value": "{color.zinc.400}",
"$extensions": {
"mode": {
"dark": "{color.zinc.500}"
}
}
},
"brand": {
"$type": "color",
"$value": "{color.brand-scale.500}",
"$extensions": {
"mode": {
"dark": "{color.brand-scale.400}"
}
}
},
"on-brand": {
"$type": "color",
"$value": "{color.white}",
"$extensions": {
"mode": {
"dark": "{color.white}"
}
}
}
},
"media": {
"surface": {
"$type": "color",
"$value": "oklch(0 0 0 / 0.05)"
},
"border": {
"$type": "color",
"$value": "oklch(0 0 0 / 0.1)"
},
"surface-inverse": {
"$type": "color",
"$value": "oklch(1 0 0 / 0.05)"
},
"border-inverse": {
"$type": "color",
"$value": "oklch(1 0 0 / 0.1)"
}
}
}
}