Token reference

Generated at build time from fds.tokens.json — the same registry the package exports. This page cannot drift from the source.

Contrast matrix (WCAG 2.2 AA)

The pairs the design system guarantees, with actual ratios in both schemes. CI fails if any cell drops below its minimum.

ForegroundBackgroundMinLightDark
color.textcolor.bg4.5:117.85:119.28:1
color.textcolor.surface4.5:117.85:117.06:1
color.text-mutedcolor.bg4.5:17.58:113.59:1
color.text-mutedcolor.surface4.5:17.58:112.02:1
color.on-primarycolor.primary4.5:15.17:17.93:1
color.on-secondarycolor.secondary4.5:17.58:17.87:1
color.on-successcolor.success4.5:15.02:16.12:1
color.on-warningcolor.warning4.5:15.02:16.33:1
color.on-dangercolor.danger4.5:16.47:14.83:1
color.on-infocolor.info4.5:15.36:15.48:1

Semantic tokens

border.* 5 tokens
TokenCSS variableValue
border.0--fx-border-0 {ref.border-width.0} → 0px
border.1--fx-border-1 {ref.border-width.1} → 1px
border.2--fx-border-2 {ref.border-width.2} → 2px
border.4--fx-border-4 {ref.border-width.4} → 4px
border.8--fx-border-8 {ref.border-width.8} → 8px
bp.* 3 tokens
TokenCSS variableValue
bp.desktop--fx-bp-desktop {ref.breakpoint.desktop} → 1280px
bp.tablet--fx-bp-tablet {ref.breakpoint.tablet} → 1024px
bp.wide--fx-bp-wide {ref.breakpoint.wide} → 1536px
color.* 26 tokens
TokenCSS variableValue
color.bg--fx-color-bg {ref.neutral.0} → #ffffff
color.border--fx-color-border {ref.neutral.200} → #e2e8f0
color.border-strong--fx-color-border-strong {ref.neutral.300} → #cbd5e1
color.danger--fx-color-danger {ref.danger.600} → #b91c1c
color.focus-ring--fx-color-focus-ring {ref.brand.500} → #3b82f6
color.info--fx-color-info {ref.info.600} → #0e7490
color.on-danger--fx-color-on-danger {ref.neutral.0} → #ffffff
color.on-info--fx-color-on-info {ref.neutral.0} → #ffffff
color.on-primary--fx-color-on-primary {ref.neutral.0} → #ffffff
color.on-secondary--fx-color-on-secondary {ref.neutral.0} → #ffffff
color.on-success--fx-color-on-success {ref.neutral.0} → #ffffff
color.on-warning--fx-color-on-warning {ref.neutral.0} → #ffffff
color.primary--fx-color-primary {ref.brand.600} → #2563eb
color.primary-active--fx-color-primary-active {ref.brand.800} → #1e40af
color.primary-hover--fx-color-primary-hover {ref.brand.700} → #1d4ed8
color.scrim--fx-color-scrim rgba(0,0,0,0.4)
color.secondary--fx-color-secondary {ref.neutral.600} → #475569
color.secondary-active--fx-color-secondary-active {ref.neutral.800} → #1e293b
color.secondary-hover--fx-color-secondary-hover {ref.neutral.700} → #334155
color.success--fx-color-success {ref.success.600} → #15803d
color.surface--fx-color-surface {ref.neutral.0} → #ffffff
color.surface-alt--fx-color-surface-alt {ref.neutral.50} → #f8fafc
color.text--fx-color-text {ref.neutral.900} → #0f172a
color.text-muted--fx-color-text-muted {ref.neutral.600} → #475569
color.text-subtle--fx-color-text-subtle {ref.neutral.400} → #94a3b8
color.warning--fx-color-warning {ref.warning.600} → #b45309
font.* 2 tokens
TokenCSS variableValue
font.family-base--fx-font-family-base system-ui, -apple-system, Segoe UI, Roboto, sans-serif
font.family-heading--fx-font-family-heading system-ui, -apple-system, Segoe UI, Roboto, sans-serif
motion.* 7 tokens
TokenCSS variableValue
motion.duration-fast--fx-motion-duration-fast {ref.duration.fast} → 120ms
motion.duration-normal--fx-motion-duration-normal {ref.duration.normal} → 240ms
motion.duration-slow--fx-motion-duration-slow {ref.duration.slow} → 400ms
motion.easing-in--fx-motion-easing-in {ref.easing.in} → 0.4, 0, 1, 1
motion.easing-in-out--fx-motion-easing-in-out {ref.easing.in-out} → 0.4, 0, 0.2, 1
motion.easing-out--fx-motion-easing-out {ref.easing.out} → 0, 0, 0.2, 1
motion.easing-standard--fx-motion-easing-standard {ref.easing.standard} → 0.2, 0, 0, 1
opacity.* 2 tokens
TokenCSS variableValue
opacity.disabled--fx-opacity-disabled {ref.opacity.50} → 0.5
opacity.muted--fx-opacity-muted {ref.opacity.75} → 0.75
radius.* 7 tokens
TokenCSS variableValue
radius.2xl--fx-radius-2xl {ref.radius.2xl} → 1rem
radius.full--fx-radius-full {ref.radius.full} → 9999px
radius.lg--fx-radius-lg {ref.radius.lg} → 0.5rem
radius.md--fx-radius-md {ref.radius.md} → 0.375rem
radius.none--fx-radius-none {ref.radius.none} → 0rem
radius.sm--fx-radius-sm {ref.radius.sm} → 0.125rem
radius.xl--fx-radius-xl {ref.radius.xl} → 0.75rem
shadow.* 4 tokens
TokenCSS variableValue
shadow.lg--fx-shadow-lg {ref.shadow.lg} → color: rgba(15,23,42,0.12) · offsetX: 0 · offsetY: 12px · blur: 20px · spread: -4px
shadow.md--fx-shadow-md {ref.shadow.md} → color: rgba(15,23,42,0.10) · offsetX: 0 · offsetY: 4px · blur: 8px · spread: -2px
shadow.sm--fx-shadow-sm {ref.shadow.sm} → color: rgba(15,23,42,0.08) · offsetX: 0 · offsetY: 1px · blur: 2px · spread: 0
shadow.xl--fx-shadow-xl {ref.shadow.xl} → color: rgba(15,23,42,0.16) · offsetX: 0 · offsetY: 24px · blur: 40px · spread: -8px
size.* 5 tokens
TokenCSS variableValue
size.container-full--fx-size-container-full 100%
size.container-lg--fx-size-container-lg 1024px
size.container-md--fx-size-container-md 768px
size.container-sm--fx-size-container-sm 640px
size.container-xl--fx-size-container-xl 1280px
space.* 13 tokens
TokenCSS variableValue
space.0--fx-space-0 {ref.space.0} → 0rem
space.1--fx-space-1 {ref.space.1} → 0.25rem
space.10--fx-space-10 {ref.space.10} → 2.5rem
space.12--fx-space-12 {ref.space.12} → 3rem
space.16--fx-space-16 {ref.space.16} → 4rem
space.2--fx-space-2 {ref.space.2} → 0.5rem
space.20--fx-space-20 {ref.space.20} → 5rem
space.24--fx-space-24 {ref.space.24} → 6rem
space.3--fx-space-3 {ref.space.3} → 0.75rem
space.4--fx-space-4 {ref.space.4} → 1rem
space.5--fx-space-5 {ref.space.5} → 1.25rem
space.6--fx-space-6 {ref.space.6} → 1.5rem
space.8--fx-space-8 {ref.space.8} → 2rem
text.* 6 tokens
TokenCSS variableValue
text.body--fx-text-body fontFamily: {font.family-base} · fontSize: {ref.font-size.base} · fontWeight: {ref.font-weight.regular} · lineHeight: {ref.line-height.normal}
text.body-sm--fx-text-body-sm fontFamily: {font.family-base} · fontSize: {ref.font-size.sm} · fontWeight: {ref.font-weight.regular} · lineHeight: {ref.line-height.normal}
text.heading-lg--fx-text-heading-lg fontFamily: {font.family-heading} · fontSize: {ref.font-size.3xl} · fontWeight: {ref.font-weight.bold} · lineHeight: {ref.line-height.tight}
text.heading-md--fx-text-heading-md fontFamily: {font.family-heading} · fontSize: {ref.font-size.2xl} · fontWeight: {ref.font-weight.semibold} · lineHeight: {ref.line-height.tight}
text.heading-xl--fx-text-heading-xl fontFamily: {font.family-heading} · fontSize: {ref.font-size.4xl} · fontWeight: {ref.font-weight.bold} · lineHeight: {ref.line-height.tight}
text.label--fx-text-label fontFamily: {font.family-base} · fontSize: {ref.font-size.sm} · fontWeight: {ref.font-weight.medium} · lineHeight: {ref.line-height.normal}
z.* 7 tokens
TokenCSS variableValue
z.base--fx-z-base {ref.z.base} → 0
z.dropdown--fx-z-dropdown {ref.z.dropdown} → 1000
z.fixed--fx-z-fixed {ref.z.fixed} → 1200
z.modal--fx-z-modal {ref.z.modal} → 1300
z.popover--fx-z-popover {ref.z.popover} → 1400
z.sticky--fx-z-sticky {ref.z.sticky} → 1100
z.tooltip--fx-z-tooltip {ref.z.tooltip} → 1500

Component tokens

c.button.* 3 tokens
TokenCSS variableValue
c.button.padding-x--fx-c-button-padding-x {space.4} → 1rem
c.button.padding-y--fx-c-button-padding-y {space.2} → 0.5rem
c.button.radius--fx-c-button-radius {radius.md} → 0.375rem

Primitive tokens (ref)

ref.border-width.* 5 tokens
TokenCSS variableValue
ref.border-width.0--fx-ref-border-width-0 0px
ref.border-width.1--fx-ref-border-width-1 1px
ref.border-width.2--fx-ref-border-width-2 2px
ref.border-width.4--fx-ref-border-width-4 4px
ref.border-width.8--fx-ref-border-width-8 8px
ref.brand.* 10 tokens
TokenCSS variableValue
ref.brand.100--fx-ref-brand-100 #dbeafe
ref.brand.200--fx-ref-brand-200 #bfdbfe
ref.brand.300--fx-ref-brand-300 #93c5fd
ref.brand.400--fx-ref-brand-400 #60a5fa
ref.brand.50--fx-ref-brand-50 #eff6ff
ref.brand.500--fx-ref-brand-500 #3b82f6
ref.brand.600--fx-ref-brand-600 #2563eb
ref.brand.700--fx-ref-brand-700 #1d4ed8
ref.brand.800--fx-ref-brand-800 #1e40af
ref.brand.900--fx-ref-brand-900 #1e3a8a
ref.breakpoint.* 3 tokens
TokenCSS variableValue
ref.breakpoint.desktop--fx-ref-breakpoint-desktop 1280px
ref.breakpoint.tablet--fx-ref-breakpoint-tablet 1024px
ref.breakpoint.wide--fx-ref-breakpoint-wide 1536px
ref.danger.* 2 tokens
TokenCSS variableValue
ref.danger.500--fx-ref-danger-500 #dc2626
ref.danger.600--fx-ref-danger-600 #b91c1c
ref.duration.* 3 tokens
TokenCSS variableValue
ref.duration.fast--fx-ref-duration-fast 120ms
ref.duration.normal--fx-ref-duration-normal 240ms
ref.duration.slow--fx-ref-duration-slow 400ms
ref.easing.* 4 tokens
TokenCSS variableValue
ref.easing.in--fx-ref-easing-in 0.4, 0, 1, 1
ref.easing.in-out--fx-ref-easing-in-out 0.4, 0, 0.2, 1
ref.easing.out--fx-ref-easing-out 0, 0, 0.2, 1
ref.easing.standard--fx-ref-easing-standard 0.2, 0, 0, 1
ref.font-size.* 9 tokens
TokenCSS variableValue
ref.font-size.2xl--fx-ref-font-size-2xl 1.5rem
ref.font-size.3xl--fx-ref-font-size-3xl 1.875rem
ref.font-size.4xl--fx-ref-font-size-4xl 2.25rem
ref.font-size.5xl--fx-ref-font-size-5xl 3rem
ref.font-size.base--fx-ref-font-size-base 1rem
ref.font-size.lg--fx-ref-font-size-lg 1.125rem
ref.font-size.sm--fx-ref-font-size-sm 0.875rem
ref.font-size.xl--fx-ref-font-size-xl 1.25rem
ref.font-size.xs--fx-ref-font-size-xs 0.75rem
ref.font-weight.* 4 tokens
TokenCSS variableValue
ref.font-weight.bold--fx-ref-font-weight-bold 700
ref.font-weight.medium--fx-ref-font-weight-medium 500
ref.font-weight.regular--fx-ref-font-weight-regular 400
ref.font-weight.semibold--fx-ref-font-weight-semibold 600
ref.info.* 2 tokens
TokenCSS variableValue
ref.info.500--fx-ref-info-500 #0891b2
ref.info.600--fx-ref-info-600 #0e7490
ref.line-height.* 3 tokens
TokenCSS variableValue
ref.line-height.normal--fx-ref-line-height-normal 1.5
ref.line-height.relaxed--fx-ref-line-height-relaxed 1.75
ref.line-height.tight--fx-ref-line-height-tight 1.2
ref.neutral.* 12 tokens
TokenCSS variableValue
ref.neutral.0--fx-ref-neutral-0 #ffffff
ref.neutral.100--fx-ref-neutral-100 #f1f5f9
ref.neutral.200--fx-ref-neutral-200 #e2e8f0
ref.neutral.300--fx-ref-neutral-300 #cbd5e1
ref.neutral.400--fx-ref-neutral-400 #94a3b8
ref.neutral.50--fx-ref-neutral-50 #f8fafc
ref.neutral.500--fx-ref-neutral-500 #64748b
ref.neutral.600--fx-ref-neutral-600 #475569
ref.neutral.700--fx-ref-neutral-700 #334155
ref.neutral.800--fx-ref-neutral-800 #1e293b
ref.neutral.900--fx-ref-neutral-900 #0f172a
ref.neutral.950--fx-ref-neutral-950 #020617
ref.opacity.* 7 tokens
TokenCSS variableValue
ref.opacity.0--fx-ref-opacity-0 0
ref.opacity.10--fx-ref-opacity-10 0.1
ref.opacity.100--fx-ref-opacity-100 1
ref.opacity.25--fx-ref-opacity-25 0.25
ref.opacity.5--fx-ref-opacity-5 0.05
ref.opacity.50--fx-ref-opacity-50 0.5
ref.opacity.75--fx-ref-opacity-75 0.75
ref.radius.* 7 tokens
TokenCSS variableValue
ref.radius.2xl--fx-ref-radius-2xl 1rem
ref.radius.full--fx-ref-radius-full 9999px
ref.radius.lg--fx-ref-radius-lg 0.5rem
ref.radius.md--fx-ref-radius-md 0.375rem
ref.radius.none--fx-ref-radius-none 0rem
ref.radius.sm--fx-ref-radius-sm 0.125rem
ref.radius.xl--fx-ref-radius-xl 0.75rem
ref.shadow.* 4 tokens
TokenCSS variableValue
ref.shadow.lg--fx-ref-shadow-lg color: rgba(15,23,42,0.12) · offsetX: 0 · offsetY: 12px · blur: 20px · spread: -4px
ref.shadow.md--fx-ref-shadow-md color: rgba(15,23,42,0.10) · offsetX: 0 · offsetY: 4px · blur: 8px · spread: -2px
ref.shadow.sm--fx-ref-shadow-sm color: rgba(15,23,42,0.08) · offsetX: 0 · offsetY: 1px · blur: 2px · spread: 0
ref.shadow.xl--fx-ref-shadow-xl color: rgba(15,23,42,0.16) · offsetX: 0 · offsetY: 24px · blur: 40px · spread: -8px
ref.space.* 13 tokens
TokenCSS variableValue
ref.space.0--fx-ref-space-0 0rem
ref.space.1--fx-ref-space-1 0.25rem
ref.space.10--fx-ref-space-10 2.5rem
ref.space.12--fx-ref-space-12 3rem
ref.space.16--fx-ref-space-16 4rem
ref.space.2--fx-ref-space-2 0.5rem
ref.space.20--fx-ref-space-20 5rem
ref.space.24--fx-ref-space-24 6rem
ref.space.3--fx-ref-space-3 0.75rem
ref.space.4--fx-ref-space-4 1rem
ref.space.5--fx-ref-space-5 1.25rem
ref.space.6--fx-ref-space-6 1.5rem
ref.space.8--fx-ref-space-8 2rem
ref.success.* 2 tokens
TokenCSS variableValue
ref.success.500--fx-ref-success-500 #16a34a
ref.success.600--fx-ref-success-600 #15803d
ref.warning.* 2 tokens
TokenCSS variableValue
ref.warning.500--fx-ref-warning-500 #d97706
ref.warning.600--fx-ref-warning-600 #b45309
ref.z.* 7 tokens
TokenCSS variableValue
ref.z.base--fx-ref-z-base 0
ref.z.dropdown--fx-ref-z-dropdown 1000
ref.z.fixed--fx-ref-z-fixed 1200
ref.z.modal--fx-ref-z-modal 1300
ref.z.popover--fx-ref-z-popover 1400
ref.z.sticky--fx-ref-z-sticky 1100
ref.z.tooltip--fx-ref-z-tooltip 1500