Skip to content

Type to search the docs, API, and blog.

↑↓ navigate↵ openesc close
Zazz 0.7 alpha
API navigation

API

Tokens

The design tokens on :root, with their resolved light and dark values.

Tokens are custom properties on :root in base/_variables.css. Primitives read them through var(), utilities take them as values, and you theme by redefining them: on :root for the whole page, on a subtree for a region. Color roles are light-dark() pairs, so data-ui="theme-dark" flips every one of them without a second stylesheet.

Three places to change how something looks, narrowest last:

  1. A token on :root: --radius-multiplier: 0 squares every scaled radius (--radius-full and --radius-none stay fixed); --color-primary: light-dark(…, …) recolors every primary surface.
  2. A hook on a subtree: <nav style="--ui-button-px: 2"> retunes every button inside. Hooks are listed on each primitive's page.
  3. A utility on one element: --bg: var(--color-muted), which also flattens the element's states.

Color roles

Paired surface and text roles. Use these in utilities and CSS so light and dark swap for free. --color-ring is the focus ring; --color-shadow tints every shadow.

Color roles
TokenLightDark
--color-backgroundoklch(1 0 0)oklch(0.241 0.009 285.7)
--color-borderoklch(0.949 0.001 287.28)oklch(0.336 0.014 285.66)
--color-border-foregroundoklch(from oklch(1 0 0) l c h / 0.96)oklch(from oklch(0.198 0.008 285.68) l c h / 0.5)
--color-cardoklch(1 0 0)oklch(0.198 0.008 285.68)
--color-card-foregroundoklch(0.241 0.009 285.7)oklch(1 0 0)
--color-destructiveoklch(0.5771 0.2152 27.33)oklch(0.5054 0.1905 27.52)
--color-destructive-foregroundoklch(1 0 0)oklch(1 0 0)
--color-fadedoklch(from oklch(1 0 0) l c h / 0.4)oklch(from oklch(0.198 0.008 285.68) l c h / 0.1)
--color-faded-foregroundoklch(from oklch(1 0 0) l c h / 0.6)oklch(from oklch(0.198 0.008 285.68) l c h / 0.6)
--color-foregroundoklch(0.241 0.009 285.7)oklch(1 0 0)
--color-infooklch(0.5876 0.1389 241.97)oklch(0.5 0.1193 242.75)
--color-info-foregroundoklch(1 0 0)oklch(1 0 0)
--color-inputoklch(0.973 0.001 287.31)oklch(from oklch(1 0 0) l c h / 0.1)
--color-input-foregroundoklch(0.241 0.009 285.7)oklch(1 0 0)
--color-mutedoklch(from oklch(0.198 0.008 285.68) l c h / 0.04)oklch(from oklch(1 0 0) l c h / 0.1)
--color-muted-foregroundoklch(from oklch(0.198 0.008 285.68) l c h / 0.6)oklch(from oklch(1 0 0) l c h / 0.6)
--color-popoveroklch(1 0 0)oklch(0.198 0.008 285.68)
--color-popover-foregroundoklch(0.241 0.009 285.7)oklch(1 0 0)
--color-primaryoklch(0.145 0 0)oklch(0.985 0 0)
--color-primary-foregroundoklch(1 0 0)oklch(0.145 0 0)
--color-ringoklch(0.145 0 0)oklch(0.985 0 0)
--color-secondaryoklch(13% 0.028 261.692)oklch(98.5% 0.002 247.839)
--color-secondary-foregroundoklch(1 0 0)oklch(13% 0.028 261.692)
--color-selectionoklch(0.145 0 0)oklch(0.985 0 0)
--color-selection-foregroundoklch(1 0 0)oklch(0.145 0 0)
--color-shadowoklch(0 0 0)oklch(0 0 0)
--color-successoklch(0.596 0.1274 163.23)oklch(0.5081 0.1049 165.61)
--color-success-foregroundoklch(1 0 0)oklch(1 0 0)
--color-tertiaryoklch(0.147 0.004 49.3)oklch(0.986 0.002 67.8)
--color-tertiary-foregroundoklch(1 0 0)oklch(0.147 0.004 49.3)
--color-warningoklch(0.6658 0.1574 58.32)oklch(0.5553 0.1455 49)
--color-warning-foregroundoklch(1 0 0)oklch(1 0 0)

Color scales

Fixed shades, 50 to 950, for when a role is not enough. The light theme binds the brand roles at 950 and the dark theme at 50.

Color scales
TokenLightDark
--color-blackoklch(0 0 0)oklch(0 0 0)
--color-neutral-50oklch(0.973 0.001 287.31)oklch(0.973 0.001 287.31)
--color-neutral-100oklch(0.949 0.001 287.28)oklch(0.949 0.001 287.28)
--color-neutral-200oklch(0.871 0.004 286.58)oklch(0.871 0.004 286.58)
--color-neutral-300oklch(0.784 0.007 286.38)oklch(0.784 0.007 286.38)
--color-neutral-400oklch(0.708 0.009 286.28)oklch(0.708 0.009 286.28)
--color-neutral-500oklch(0.629 0.012 286.12)oklch(0.629 0.012 286.12)
--color-neutral-600oklch(0.535 0.015 285.91)oklch(0.535 0.015 285.91)
--color-neutral-700oklch(0.442 0.015 285.82)oklch(0.442 0.015 285.82)
--color-neutral-800oklch(0.336 0.014 285.66)oklch(0.336 0.014 285.66)
--color-neutral-900oklch(0.241 0.009 285.7)oklch(0.241 0.009 285.7)
--color-neutral-950oklch(0.198 0.008 285.68)oklch(0.198 0.008 285.68)
--color-primary-50oklch(0.985 0 0)oklch(0.985 0 0)
--color-primary-100oklch(0.967 0.001 0)oklch(0.967 0.001 0)
--color-primary-200oklch(0.92 0.004 0)oklch(0.92 0.004 0)
--color-primary-300oklch(0.87 0 0)oklch(0.87 0 0)
--color-primary-400oklch(0.708 0 0)oklch(0.708 0 0)
--color-primary-500oklch(0.556 0 0)oklch(0.556 0 0)
--color-primary-600oklch(0.439 0 0)oklch(0.439 0 0)
--color-primary-700oklch(0.371 0 0)oklch(0.371 0 0)
--color-primary-800oklch(0.269 0 0)oklch(0.269 0 0)
--color-primary-900oklch(0.205 0 0)oklch(0.205 0 0)
--color-primary-950oklch(0.145 0 0)oklch(0.145 0 0)
--color-secondary-50oklch(98.5% 0.002 247.839)oklch(98.5% 0.002 247.839)
--color-secondary-100oklch(96.7% 0.003 264.542)oklch(96.7% 0.003 264.542)
--color-secondary-200oklch(92.8% 0.006 264.531)oklch(92.8% 0.006 264.531)
--color-secondary-300oklch(87.2% 0.01 258.338)oklch(87.2% 0.01 258.338)
--color-secondary-400oklch(70.7% 0.022 261.325)oklch(70.7% 0.022 261.325)
--color-secondary-500oklch(55.1% 0.027 264.364)oklch(55.1% 0.027 264.364)
--color-secondary-600oklch(44.6% 0.03 256.802)oklch(44.6% 0.03 256.802)
--color-secondary-700oklch(37.3% 0.034 259.733)oklch(37.3% 0.034 259.733)
--color-secondary-800oklch(27.8% 0.033 256.848)oklch(27.8% 0.033 256.848)
--color-secondary-900oklch(21% 0.034 264.665)oklch(21% 0.034 264.665)
--color-secondary-950oklch(13% 0.028 261.692)oklch(13% 0.028 261.692)
--color-tertiary-50oklch(0.986 0.002 67.8)oklch(0.986 0.002 67.8)
--color-tertiary-100oklch(0.96 0.002 17.2)oklch(0.96 0.002 17.2)
--color-tertiary-200oklch(0.922 0.005 34.3)oklch(0.922 0.005 34.3)
--color-tertiary-300oklch(0.868 0.007 39.5)oklch(0.868 0.007 39.5)
--color-tertiary-400oklch(0.714 0.014 41.2)oklch(0.714 0.014 41.2)
--color-tertiary-500oklch(0.547 0.021 43.1)oklch(0.547 0.021 43.1)
--color-tertiary-600oklch(0.438 0.017 39.3)oklch(0.438 0.017 39.3)
--color-tertiary-700oklch(0.367 0.016 35.7)oklch(0.367 0.016 35.7)
--color-tertiary-800oklch(0.268 0.011 36.5)oklch(0.268 0.011 36.5)
--color-tertiary-900oklch(0.214 0.009 43.1)oklch(0.214 0.009 43.1)
--color-tertiary-950oklch(0.147 0.004 49.3)oklch(0.147 0.004 49.3)
--color-whiteoklch(1 0 0)oklch(1 0 0)

Overlays

Translucent black (shade) and white (tint) for scrims and backdrops; --color-shade-900 is the dialog backdrop.

Overlays
TokenLightDark
--color-shade-50oklch(from oklch(0.198 0.008 285.68) l c h / 0.04)oklch(from oklch(0.198 0.008 285.68) l c h / 0.04)
--color-shade-100oklch(from oklch(0.198 0.008 285.68) l c h / 0.1)oklch(from oklch(0.198 0.008 285.68) l c h / 0.1)
--color-shade-200oklch(from oklch(0.198 0.008 285.68) l c h / 0.2)oklch(from oklch(0.198 0.008 285.68) l c h / 0.2)
--color-shade-300oklch(from oklch(0.198 0.008 285.68) l c h / 0.3)oklch(from oklch(0.198 0.008 285.68) l c h / 0.3)
--color-shade-400oklch(from oklch(0.198 0.008 285.68) l c h / 0.4)oklch(from oklch(0.198 0.008 285.68) l c h / 0.4)
--color-shade-500oklch(from oklch(0.198 0.008 285.68) l c h / 0.5)oklch(from oklch(0.198 0.008 285.68) l c h / 0.5)
--color-shade-600oklch(from oklch(0.198 0.008 285.68) l c h / 0.6)oklch(from oklch(0.198 0.008 285.68) l c h / 0.6)
--color-shade-700oklch(from oklch(0.198 0.008 285.68) l c h / 0.7)oklch(from oklch(0.198 0.008 285.68) l c h / 0.7)
--color-shade-800oklch(from oklch(0.198 0.008 285.68) l c h / 0.8)oklch(from oklch(0.198 0.008 285.68) l c h / 0.8)
--color-shade-900oklch(from oklch(0.198 0.008 285.68) l c h / 0.9)oklch(from oklch(0.198 0.008 285.68) l c h / 0.9)
--color-shade-950oklch(from oklch(0.198 0.008 285.68) l c h / 0.96)oklch(from oklch(0.198 0.008 285.68) l c h / 0.96)
--color-shade-fulloklch(from oklch(0.198 0.008 285.68) l c h / 1)oklch(from oklch(0.198 0.008 285.68) l c h / 1)
--color-shade-noneoklch(from oklch(0.198 0.008 285.68) l c h / 0)oklch(from oklch(0.198 0.008 285.68) l c h / 0)
--color-tint-50oklch(from oklch(1 0 0) l c h / 0.04)oklch(from oklch(1 0 0) l c h / 0.04)
--color-tint-100oklch(from oklch(1 0 0) l c h / 0.1)oklch(from oklch(1 0 0) l c h / 0.1)
--color-tint-200oklch(from oklch(1 0 0) l c h / 0.2)oklch(from oklch(1 0 0) l c h / 0.2)
--color-tint-300oklch(from oklch(1 0 0) l c h / 0.3)oklch(from oklch(1 0 0) l c h / 0.3)
--color-tint-400oklch(from oklch(1 0 0) l c h / 0.4)oklch(from oklch(1 0 0) l c h / 0.4)
--color-tint-500oklch(from oklch(1 0 0) l c h / 0.5)oklch(from oklch(1 0 0) l c h / 0.5)
--color-tint-600oklch(from oklch(1 0 0) l c h / 0.6)oklch(from oklch(1 0 0) l c h / 0.6)
--color-tint-700oklch(from oklch(1 0 0) l c h / 0.7)oklch(from oklch(1 0 0) l c h / 0.7)
--color-tint-800oklch(from oklch(1 0 0) l c h / 0.8)oklch(from oklch(1 0 0) l c h / 0.8)
--color-tint-900oklch(from oklch(1 0 0) l c h / 0.9)oklch(from oklch(1 0 0) l c h / 0.9)
--color-tint-950oklch(from oklch(1 0 0) l c h / 0.96)oklch(from oklch(1 0 0) l c h / 0.96)
--color-tint-fulloklch(from oklch(1 0 0) l c h / 1)oklch(from oklch(1 0 0) l c h / 1)
--color-tint-noneoklch(from oklch(1 0 0) l c h / 0)oklch(from oklch(1 0 0) l c h / 0)

Spacing

--spacing is the unit behind every scale number; the --space-* tokens are steps on it. All of them are fluid, so the table shows the range.

Spacing
TokenValue
--space-2xl9rem – 10rem
--space-2xs0.225rem – 0.25rem
--space-lg2.475rem – 2.75rem
--space-md1.35rem – 1.5rem
--space-sm0.9rem – 1rem
--space-xl5.4rem – 6rem
--space-xs0.45rem – 0.5rem
--spacing0.225rem – 0.25rem

Radius

xs to xl scale with --radius-multiplier; none and full are fixed. Conventions: md for buttons and inputs, lg for cards and dialogs, sm for badges, full for pills.

Radius
TokenValue
--radius-2xl2.25rem – 2.5rem
--radius-2xs0.1125rem – 0.125rem
--radius-full9999rem
--radius-lg1.0125rem – 1.125rem
--radius-md0.5625rem – 0.625rem
--radius-multiplier1
--radius-none0rem
--radius-sm0.3375rem – 0.375rem
--radius-xl1.575rem – 1.75rem
--radius-xs0.225rem – 0.25rem

Shadows and ring

Soft, multi-layer shadows and the focus ring's geometry.

Shadows, ring, and outline
TokenValue
--outline-offsetvar(--ring-offset-width)
--outline-stylesolid
--outline-widthvar(--ring-width)
--ring-offset-shadow0 0 0 var(--ring-offset-width) var(--ring-offset-shadow-color)
--ring-offset-shadow-colorvar(--color-background)
--ring-offset-width0px
--ring-opacity20%
--ring-shadow0 0 0 calc(var(--ring-offset-width) + var(--ring-width)) var(--ring-shadow-color)
--ring-shadow-colorcolor-mix(in oklch, var(--color-ring) var(--ring-opacity), transparent)
--ring-width3px
--shadow-2xlcalc(555 * var(--_shadow-x)) calc(555 * var(--_shadow-y)) 156px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0), calc(356 * var(--_shadow-x)) calc(356 * var(--_shadow-y)) 143px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.01), calc(200 * var(--_shadow-x)) calc(200 * var(--_shadow-y)) 120px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.04), calc(89 * var(--_shadow-x)) calc(89 * var(--_shadow-y)) 89px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.06), calc(23 * var(--_shadow-x)) calc(23 * var(--_shadow-y)) 50px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.08)
--shadow-2xscalc(1 * var(--_shadow-x)) calc(1 * var(--_shadow-y)) 1px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.04), 0 0 1px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.05)
--shadow-lgcalc(247 * var(--_shadow-x)) calc(247 * var(--_shadow-y)) 69px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0), calc(158 * var(--_shadow-x)) calc(158 * var(--_shadow-y)) 63px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.01), calc(89 * var(--_shadow-x)) calc(89 * var(--_shadow-y)) 53px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.03), calc(39 * var(--_shadow-x)) calc(39 * var(--_shadow-y)) 39px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.05), calc(10 * var(--_shadow-x)) calc(10 * var(--_shadow-y)) 22px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.06)
--shadow-mdcalc(66 * var(--_shadow-x)) calc(66 * var(--_shadow-y)) 18px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0), calc(42 * var(--_shadow-x)) calc(42 * var(--_shadow-y)) 17px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.01), calc(24 * var(--_shadow-x)) calc(24 * var(--_shadow-y)) 14px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.03), calc(11 * var(--_shadow-x)) calc(11 * var(--_shadow-y)) 11px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.04), calc(3 * var(--_shadow-x)) calc(3 * var(--_shadow-y)) 6px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.05)
--shadow-ringvar(--ring-offset-shadow), var(--ring-shadow)
--shadow-smcalc(25 * var(--_shadow-x)) calc(25 * var(--_shadow-y)) 7px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0), calc(16 * var(--_shadow-x)) calc(16 * var(--_shadow-y)) 6px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.01), calc(9 * var(--_shadow-x)) calc(9 * var(--_shadow-y)) 5px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.03), calc(4 * var(--_shadow-x)) calc(4 * var(--_shadow-y)) 4px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.04), calc(1 * var(--_shadow-x)) calc(1 * var(--_shadow-y)) 2px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.05)
--shadow-xlcalc(370 * var(--_shadow-x)) calc(370 * var(--_shadow-y)) 104px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0), calc(237 * var(--_shadow-x)) calc(237 * var(--_shadow-y)) 95px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.01), calc(133 * var(--_shadow-x)) calc(133 * var(--_shadow-y)) 80px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.04), calc(59 * var(--_shadow-x)) calc(59 * var(--_shadow-y)) 59px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.06), calc(15 * var(--_shadow-x)) calc(15 * var(--_shadow-y)) 33px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.07)
--shadow-xscalc(8 * var(--_shadow-x)) calc(8 * var(--_shadow-y)) 2px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0), calc(5 * var(--_shadow-x)) calc(5 * var(--_shadow-y)) 2px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.01), calc(3 * var(--_shadow-x)) calc(3 * var(--_shadow-y)) 2px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.03), calc(1 * var(--_shadow-x)) calc(1 * var(--_shadow-y)) 1px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.04), 0 0 1px 0 oklch(from var(--shadow-hue, var(--color-shadow)) l c h / 0.05)

Type: families, sizes, weights

Fluid sizes. The family tokens are system stacks by default; to use your own font, load it and set --font-family-body: "Inter", var(--font-sans-fallback).

Type: families, sizes, weights
TokenValue
--font-alternates-bodynormal
--font-alternates-headingnormal
--font-caps-bodynormal
--font-caps-headingnormal
--font-east-asian-bodynormal
--font-east-asian-headingnormal
--font-emoji-bodynormal
--font-emoji-headingnormal
--font-family-bodyvar(--font-sans-fallback)
--font-family-headingvar(--font-sans-fallback)
--font-family-monovar(--font-mono-fallback)
--font-feature-bodynormal
--font-feature-headingnormal
--font-kerning-bodyauto
--font-kerning-headingauto
--font-language-bodynormal
--font-language-headingnormal
--font-ligatures-bodynormal
--font-ligatures-headingnormal
--font-mono-fallbackui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace
--font-numeric-bodynormal
--font-numeric-headingnormal
--font-optical-sizing-bodyauto
--font-optical-sizing-headingauto
--font-position-bodynormal
--font-position-headingnormal
--font-sans-fallback-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"
--font-serif-fallbackui-serif, Georgia, Cambria, "Times New Roman", Times, serif
--font-settings-bodynormal
--font-settings-headingnormal
--font-size-2xl1.4238rem – 1.9531rem
--font-size-2xs0.512rem – 0.5787rem
--font-size-adjust-bodynone
--font-size-adjust-headingnone
--font-size-display2.5658rem – 5.9605rem
--font-size-eyebrow0.512rem – 0.5787rem
--font-size-h12.2807rem – 4.7684rem
--font-size-h22.0273rem – 3.8147rem
--font-size-h31.802rem – 3.0518rem
--font-size-h41.6018rem – 2.4414rem
--font-size-h51.4238rem – 1.9531rem
--font-size-h61.2656rem – 1.5625rem
--font-size-lg1.125rem – 1.25rem
--font-size-mdclamp(1rem, 1rem + 0vi, 1rem)
--font-size-sm0.7901rem – 0.8rem
--font-size-xl1.2656rem – 1.5625rem
--font-size-xs0.5787rem – 0.64rem
--font-weight-body400
--font-weight-eyebrow600
--font-weight-heading600
--font-weight-strong500

Type: leading, tracking, rhythm

Type: leading, tracking, rhythm, decoration
TokenValue
--decoration-colorcurrentColor
--decoration-lineunderline
--decoration-offset1px
--decoration-stylesolid
--decoration-thickness1px
--leading-2xl1.25
--leading-2xs1.5
--leading-display0.95
--leading-eyebrow1.2
--leading-h10.95
--leading-h20.95
--leading-h31
--leading-h41
--leading-h51
--leading-h61
--leading-lg1.5
--leading-md1.6
--leading-sm1.5
--leading-xl1.5
--leading-xs1.5
--paragraph-spacing-2xlcalc(1rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-2xscalc(0.5rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-displaycalc(3.5rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-eyebrowcalc(1rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-h1calc(3.5rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-h2calc(3rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-h3calc(3rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-h4calc(2rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-h5calc(2rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-h6calc(2rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-lgcalc(0.75rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-mdcalc(0.75rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-smcalc(0.5rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-xlcalc(0.75rlh * var(--_paragraph-spacing-multiplier))
--paragraph-spacing-xscalc(0.5rlh * var(--_paragraph-spacing-multiplier))
--tracking-2xl-0.01em
--tracking-2xs0em
--tracking-display-0.05em
--tracking-eyebrow0.05em
--tracking-h1-0.05em
--tracking-h2-0.025em
--tracking-h3-0.025em
--tracking-h4-0.015em
--tracking-h5-0.01em
--tracking-h6-0.005em
--tracking-lg0em
--tracking-md0em
--tracking-sm0em
--tracking-xl0em
--tracking-xs0em

Layout widths

Band and component widths in rem, and the article reading measures in ch.

Layout widths
TokenValue
--article-2xl90ch
--article-2xs30ch
--article-lg70ch
--article-md65ch
--article-sm50ch
--article-xl75ch
--article-xs45ch
--gutters1.35rem – 1.5rem
--layout-2xl96rem
--layout-lg64rem
--layout-md48rem
--layout-sm40rem
--layout-xl80rem

Motion

The spring easing, its duration, and the default transition bundle. prefers-reduced-motion: reduce zeroes the duration globally.

Motion
TokenValue
--bezier-easingcubic-bezier(0.17, 0.84, 0.44, 1)
--default-transitionvar(--default-transition-colors), var(--default-transition-transforms), var(--default-transition-effects), var(--default-transition-content)
--default-transition-colorstext-decoration-color var(--default-transition-duration) var(--default-transition-timing-function), background-color var(--default-transition-duration) var(--default-transition-timing-function), border-color var(--default-transition-duration) var(--default-transition-timing-function), color var(--default-transition-duration) var(--default-transition-timing-function), fill var(--default-transition-duration) var(--default-transition-timing-function), stroke var(--default-transition-duration) var(--default-transition-timing-function)
--default-transition-contentdisplay var(--default-transition-duration) var(--default-transition-timing-function) allow-discrete, content-visibility var(--default-transition-duration) var(--default-transition-timing-function) allow-discrete, overlay var(--default-transition-duration) var(--default-transition-timing-function) allow-discrete, pointer-events var(--default-transition-duration) var(--default-transition-timing-function) allow-discrete
--default-transition-durationvar(--spring-duration, 0.333s)
--default-transition-effectsopacity var(--default-transition-duration) var(--default-transition-timing-function), filter var(--default-transition-duration) var(--default-transition-timing-function), -webkit-backdrop-filter var(--default-transition-duration) var(--default-transition-timing-function), backdrop-filter var(--default-transition-duration) var(--default-transition-timing-function), box-shadow var(--default-transition-duration) var(--default-transition-timing-function)
--default-transition-propertyvar(--default-transition-property-colors), var(--default-transition-property-transforms), var(--default-transition-property-effects), var(--default-transition-property-discrete)
--default-transition-property-colorstext-decoration-color, background-color, border-color, color, fill, stroke
--default-transition-property-discretedisplay, content-visibility, overlay, pointer-events
--default-transition-property-effectsopacity, filter, -webkit-backdrop-filter, backdrop-filter, box-shadow
--default-transition-property-transformstransform, translate, scale, rotate
--default-transition-timing-functionvar(--spring-easing, var(--bezier-easing))
--default-transition-transformstransform var(--default-transition-duration) var(--default-transition-timing-function), translate var(--default-transition-duration) var(--default-transition-timing-function), scale var(--default-transition-duration) var(--default-transition-timing-function), rotate var(--default-transition-duration) var(--default-transition-timing-function)
--spring-duration0.333s
--spring-easinglinear( 0, 0.012 0.9%, 0.049 2%, 0.409 9.3%, 0.513 11.9%, 0.606 14.7%, 0.691 17.9%, 0.762 21.3%, 0.82 25%, 0.868 29.1%, 0.907 33.6%, 0.937 38.7%, 0.976 51.3%, 0.994 68.8%, 1 )