Tokens

Every token the system declares, with its value in each theme. Components read the semantic tier; only chart code reads a primitive, and it says why.

The tier rule is a claim about direction, and the graph is where you check it. Open the visualiser on any row to see what a token resolves through and, more to the point, which roles and components consume it.

dovetail.tokens.json (DTCG source) tokens.json tokens.css styles.css

Colour

428 tokens. A blank cell means the token keeps the value it has in the first theme. These are the values the system ships with; the Configure panel previews an override without changing them.

TokenLightDarkUsage
--dt-color-whiteoklch(1 0 0)—
--dt-color-blackoklch(0 0 0)—
--dt-color-transparentoklch(0 0 0 / 0)—
--dt-color-neutral-050oklch(0.979 0 0)—
--dt-color-neutral-100oklch(0.958 0 0)—
--dt-color-neutral-200oklch(0.928 0 0)—
--dt-color-neutral-300oklch(0.870 0 0)—
--dt-color-neutral-400oklch(0.715 0 0)—
--dt-color-neutral-500oklch(0.556 0 0)—
--dt-color-neutral-600oklch(0.464 0 0)—
--dt-color-neutral-700oklch(0.371 0 0)—
--dt-color-neutral-800oklch(0.285 0 0)—
--dt-color-neutral-900oklch(0.191 0 0)—
--dt-color-neutral-950oklch(0.168 0 0)—
--dt-color-primary-050oklch(0.971 0.016 45)—
--dt-color-primary-100oklch(0.939 0.038 45)—
--dt-color-primary-200oklch(0.892 0.070 45)—
--dt-color-primary-300oklch(0.820 0.112 45)—
--dt-color-primary-400oklch(0.735 0.148 45)—
--dt-color-primary-500oklch(0.660 0.166 45)—
--dt-color-primary-600oklch(0.585 0.162 45)—
--dt-color-primary-700oklch(0.505 0.140 45)—
--dt-color-primary-800oklch(0.430 0.117 45)—
--dt-color-primary-900oklch(0.372 0.097 45)—
--dt-color-primary-950oklch(0.262 0.070 45)—
--dt-color-secondary-050oklch(0.977 0.014 305)—
--dt-color-secondary-100oklch(0.946 0.033 305)—
--dt-color-secondary-200oklch(0.902 0.063 305)—
--dt-color-secondary-300oklch(0.827 0.110 305)—
--dt-color-secondary-400oklch(0.740 0.163 305)—
--dt-color-secondary-500oklch(0.667 0.200 305)—
--dt-color-secondary-600oklch(0.594 0.216 305)—
--dt-color-secondary-700oklch(0.518 0.190 305)—
--dt-color-secondary-800oklch(0.444 0.158 305)—
--dt-color-secondary-900oklch(0.381 0.128 305)—
--dt-color-secondary-950oklch(0.279 0.095 305)—
--dt-color-green-050oklch(0.972 0.021 150)—
--dt-color-green-100oklch(0.940 0.045 150)—
--dt-color-green-200oklch(0.885 0.077 150)—
--dt-color-green-300oklch(0.806 0.116 150)—
--dt-color-green-400oklch(0.714 0.146 150)—
--dt-color-green-500oklch(0.627 0.149 150)—
--dt-color-green-600oklch(0.535 0.128 150)—
--dt-color-green-700oklch(0.447 0.106 150)—
--dt-color-green-800oklch(0.373 0.086 150)—
--dt-color-green-900oklch(0.315 0.070 150)—
--dt-color-green-950oklch(0.228 0.052 150)—
--dt-color-amber-050oklch(0.980 0.024 75)—
--dt-color-amber-100oklch(0.953 0.055 75)—
--dt-color-amber-200oklch(0.903 0.104 75)—
--dt-color-amber-300oklch(0.848 0.146 75)—
--dt-color-amber-400oklch(0.793 0.163 75)—
--dt-color-amber-500oklch(0.740 0.158 75)—
--dt-color-amber-600oklch(0.653 0.140 75)—
--dt-color-amber-700oklch(0.540 0.116 75)—
--dt-color-amber-800oklch(0.450 0.095 75)—
--dt-color-amber-900oklch(0.386 0.079 75)—
--dt-color-amber-950oklch(0.270 0.056 75)—
--dt-color-red-050oklch(0.971 0.015 25)—
--dt-color-red-100oklch(0.936 0.033 25)—
--dt-color-red-200oklch(0.885 0.062 25)—
--dt-color-red-300oklch(0.808 0.108 25)—
--dt-color-red-400oklch(0.712 0.170 25)—
--dt-color-red-500oklch(0.637 0.208 25)—
--dt-color-red-600oklch(0.577 0.215 25)—
--dt-color-red-700oklch(0.505 0.191 25)—
--dt-color-red-800oklch(0.444 0.161 25)—
--dt-color-red-900oklch(0.396 0.134 25)—
--dt-color-red-950oklch(0.258 0.092 25)—
--dt-color-cyan-050oklch(0.977 0.013 230)—
--dt-color-cyan-100oklch(0.951 0.026 230)—
--dt-color-cyan-200oklch(0.901 0.050 230)—
--dt-color-cyan-300oklch(0.828 0.081 230)—
--dt-color-cyan-400oklch(0.746 0.115 230)—
--dt-color-cyan-500oklch(0.685 0.140 230)—
--dt-color-cyan-600oklch(0.588 0.135 230)—
--dt-color-cyan-700oklch(0.500 0.114 230)—
--dt-color-cyan-800oklch(0.424 0.094 230)—
--dt-color-cyan-900oklch(0.366 0.077 230)—
--dt-color-cyan-950oklch(0.262 0.056 230)—
--dt-color-violet-050oklch(0.977 0.014 305)—
--dt-color-violet-100oklch(0.946 0.033 305)—
--dt-color-violet-200oklch(0.902 0.063 305)—
--dt-color-violet-300oklch(0.827 0.110 305)—
--dt-color-violet-400oklch(0.740 0.163 305)—
--dt-color-violet-500oklch(0.667 0.200 305)—
--dt-color-violet-600oklch(0.594 0.216 305)—
--dt-color-violet-700oklch(0.518 0.190 305)—
--dt-color-violet-800oklch(0.444 0.158 305)—
--dt-color-violet-900oklch(0.381 0.128 305)—
--dt-color-violet-950oklch(0.279 0.095 305)—
--dt-color-spectrum-red-400oklch(0.700 0.200 25)—
--dt-color-spectrum-red-500oklch(0.630 0.230 25)—
--dt-color-spectrum-amber-400oklch(0.840 0.150 80)—
--dt-color-spectrum-amber-500oklch(0.790 0.165 75)—
--dt-color-spectrum-green-400oklch(0.780 0.175 150)—
--dt-color-spectrum-green-500oklch(0.700 0.190 150)—
--dt-color-spectrum-cyan-400oklch(0.800 0.130 210)—
--dt-color-spectrum-cyan-500oklch(0.715 0.140 210)—
--dt-color-spectrum-blue-400oklch(0.700 0.180 262)—
--dt-color-spectrum-blue-500oklch(0.600 0.215 262)—
--dt-color-spectrum-magenta-400oklch(0.720 0.210 335)—
--dt-color-spectrum-magenta-500oklch(0.640 0.250 335)—
--dt-surface-baseoklch(1 0 0)oklch(0.168 0 0)
--dt-surface-subtleoklch(0.979 0 0)oklch(0.191 0 0)
--dt-surface-raisedoklch(1 0 0)oklch(0.191 0 0)
--dt-surface-sunkenoklch(0.958 0 0)oklch(0 0 0)
--dt-surface-overlayoklch(1 0 0)oklch(0.285 0 0)
--dt-surface-inverseoklch(0.191 0 0)oklch(0.979 0 0)
--dt-surface-disabledoklch(0.958 0 0)oklch(0.285 0 0)
--dt-surface-scrimoklch(0.145 0.005 264 / 0.5)oklch(0 0 0 / 0.7)
--dt-text-primaryoklch(0.191 0 0)oklch(0.979 0 0)
--dt-text-secondaryoklch(0.464 0 0)oklch(0.715 0 0)
--dt-text-tertiaryoklch(0.556 0 0)oklch(0.556 0 0)
--dt-text-disabledoklch(0.715 0 0)oklch(0.464 0 0)
--dt-text-inverseoklch(0.979 0 0)oklch(0.191 0 0)
--dt-text-on-scrimoklch(0.979 0 0)oklch(0.979 0 0)Text over a darkened photograph. Light in both modes, because a scrim over a photo is dark in both.
--dt-text-on-scrim-secondaryoklch(0.928 0 0)oklch(0.928 0 0)Supporting text over a darkened photograph.
--dt-text-on-scrim-strongoklch(1 0 0)oklch(1 0 0)Pure white over a photograph or video, for large type that would read grey in the near-white.
--dt-text-on-scrim-brandoklch(0.892 0.070 45)oklch(0.892 0.070 45)A light brand step for a title over a darkened photograph or video.
--dt-surface-glasscolor-mix(in oklab, oklch(1 0 0) 72%, transparent)color-mix(in oklab, oklch(0.285 0 0) 72%, transparent)The overlay surface, translucent. Pair with --dt-backdrop-glass.
--dt-surface-glass-strongcolor-mix(in oklab, oklch(1 0 0) 88%, transparent)color-mix(in oklab, oklch(0.285 0 0) 88%, transparent)Glass that lets less through.
--dt-surface-glass-tintcolor-mix(in oklab, oklch(0.191 0 0) 8%, transparent)color-mix(in oklab, oklch(0.979 0 0) 8%, transparent)A faint wash of ink over content: a ring, a chip, an active pill.
--dt-surface-glass-inversecolor-mix(in oklab, oklch(0.168 0 0) 58%, transparent)color-mix(in oklab, oklch(0.168 0 0) 58%, transparent)Dark glass in both modes, for a card over a photograph.
--dt-border-glasscolor-mix(in oklab, oklch(0.191 0 0) 10%, transparent)color-mix(in oklab, oklch(0.979 0 0) 10%, transparent)
--dt-border-glass-inversecolor-mix(in oklab, oklch(0.979 0 0) 14%, transparent)color-mix(in oklab, oklch(0.979 0 0) 14%, transparent)
--dt-scrim-bottomlinear-gradient(to top, color-mix(in oklab, oklch(0.168 0 0) 80%, transparent), color-mix(in oklab, oklch(0.168 0 0) 40%, transparent) 45%, transparent)linear-gradient(to top, color-mix(in oklab, oklch(0.168 0 0) 80%, transparent), color-mix(in oklab, oklch(0.168 0 0) 40%, transparent) 45%, transparent)Image scrim rising from the bottom edge.
--dt-scrim-toplinear-gradient(to bottom, color-mix(in oklab, oklch(0.168 0 0) 80%, transparent), color-mix(in oklab, oklch(0.168 0 0) 40%, transparent) 45%, transparent)linear-gradient(to bottom, color-mix(in oklab, oklch(0.168 0 0) 80%, transparent), color-mix(in oklab, oklch(0.168 0 0) 40%, transparent) 45%, transparent)Image scrim falling from the top edge.
--dt-scrim-fullcolor-mix(in oklab, oklch(0.168 0 0) 55%, transparent)color-mix(in oklab, oklch(0.168 0 0) 55%, transparent)An even wash over a whole image.
--dt-scrim-fade-bottomlinear-gradient(to top, oklch(1 0 0) 40%, transparent)linear-gradient(to top, oklch(0.168 0 0) 40%, transparent)The page surface fading up, behind a floating bottom bar.
--dt-border-subtleoklch(0.958 0 0)oklch(0.285 0 0)
--dt-border-defaultoklch(0.928 0 0)oklch(0.371 0 0)
--dt-border-strongoklch(0.715 0 0)oklch(0.556 0 0)
--dt-border-inverseoklch(0.371 0 0)oklch(0.870 0 0)
--dt-border-disabledoklch(0.928 0 0)oklch(0.285 0 0)
--dt-surface-actionoklch(0.191 0 0)oklch(0.979 0 0)
--dt-surface-action-hoveroklch(0.285 0 0)oklch(0.928 0 0)
--dt-surface-action-activeoklch(0.371 0 0)oklch(0.870 0 0)
--dt-text-on-actionoklch(1 0 0)oklch(0.168 0 0)
--dt-surface-action-secondaryoklch(0.958 0 0)oklch(0.285 0 0)
--dt-surface-action-secondary-hoveroklch(0.928 0 0)oklch(0.371 0 0)
--dt-surface-action-secondary-activeoklch(0.870 0 0)oklch(0.464 0 0)
--dt-text-on-action-secondaryoklch(0.191 0 0)oklch(0.979 0 0)
--dt-border-action-secondaryoklch(0 0 0 / 0)oklch(0 0 0 / 0)
--dt-surface-action-ghostoklch(0 0 0 / 0)—
--dt-surface-action-ghost-hoveroklch(0.958 0 0)oklch(0.285 0 0)
--dt-surface-action-ghost-activeoklch(0.928 0 0)oklch(0.371 0 0)
--dt-text-on-action-ghostoklch(0.191 0 0)oklch(0.979 0 0)
--dt-surface-action-dangeroklch(0.577 0.215 25)oklch(0.637 0.208 25)
--dt-surface-action-danger-hoveroklch(0.505 0.191 25)oklch(0.712 0.170 25)
--dt-surface-action-danger-activeoklch(0.444 0.161 25)oklch(0.808 0.108 25)
--dt-text-on-action-dangeroklch(1 0 0)oklch(0.168 0 0)
--dt-surface-action-disabledoklch(0.958 0 0)oklch(0.285 0 0)
--dt-text-on-action-disabledoklch(0.715 0 0)oklch(0.464 0 0)
--dt-surface-selectedoklch(0.958 0 0)oklch(0.285 0 0)
--dt-surface-selected-hoveroklch(0.928 0 0)oklch(0.371 0 0)
--dt-text-on-selectedoklch(0.191 0 0)oklch(0.979 0 0)
--dt-border-selectedoklch(0.191 0 0)oklch(0.979 0 0)
--dt-surface-action-brandoklch(0.585 0.162 45)oklch(0.660 0.166 45)
--dt-surface-action-brand-hoveroklch(0.505 0.140 45)oklch(0.735 0.148 45)
--dt-surface-action-brand-activeoklch(0.430 0.117 45)oklch(0.820 0.112 45)
--dt-text-on-action-brandoklch(1 0 0)oklch(0.168 0 0)
--dt-surface-action-brand-secondaryoklch(0.594 0.216 305)oklch(0.667 0.200 305)
--dt-surface-action-brand-secondary-hoveroklch(0.518 0.190 305)oklch(0.740 0.163 305)
--dt-surface-action-brand-secondary-activeoklch(0.444 0.158 305)oklch(0.827 0.110 305)
--dt-text-on-action-brand-secondaryoklch(1 0 0)oklch(0.168 0 0)
--dt-surface-selected-brandoklch(0.971 0.016 45)oklch(0.262 0.070 45)
--dt-surface-selected-brand-hoveroklch(0.939 0.038 45)oklch(0.372 0.097 45)
--dt-text-on-selected-brandoklch(0.372 0.097 45)oklch(0.939 0.038 45)
--dt-border-selected-brandoklch(0.585 0.162 45)oklch(0.660 0.166 45)
--dt-focus-ring-color-brandoklch(0.585 0.162 45)oklch(0.735 0.148 45)
--dt-surface-successoklch(0.535 0.128 150)oklch(0.627 0.149 150)
--dt-surface-success-subtleoklch(0.972 0.021 150)oklch(0.228 0.052 150)
--dt-border-successoklch(0.885 0.077 150)oklch(0.373 0.086 150)
--dt-text-successoklch(0.373 0.086 150)oklch(0.806 0.116 150)
--dt-text-on-successoklch(1 0 0)oklch(0.168 0 0)
--dt-surface-warningoklch(0.740 0.158 75)oklch(0.793 0.163 75)
--dt-surface-warning-subtleoklch(0.980 0.024 75)oklch(0.270 0.056 75)
--dt-border-warningoklch(0.903 0.104 75)oklch(0.450 0.095 75)
--dt-text-warningoklch(0.386 0.079 75)oklch(0.848 0.146 75)
--dt-text-on-warningoklch(0.168 0 0)oklch(0.168 0 0)
--dt-surface-dangeroklch(0.577 0.215 25)oklch(0.637 0.208 25)
--dt-surface-danger-subtleoklch(0.971 0.015 25)oklch(0.258 0.092 25)
--dt-border-dangeroklch(0.885 0.062 25)oklch(0.444 0.161 25)
--dt-text-dangeroklch(0.444 0.161 25)oklch(0.808 0.108 25)
--dt-text-on-dangeroklch(1 0 0)oklch(0.168 0 0)
--dt-surface-infooklch(0.588 0.135 230)oklch(0.685 0.140 230)
--dt-surface-info-subtleoklch(0.977 0.013 230)oklch(0.262 0.056 230)
--dt-border-infooklch(0.901 0.050 230)oklch(0.424 0.094 230)
--dt-text-infooklch(0.366 0.077 230)oklch(0.828 0.081 230)
--dt-text-on-infooklch(1 0 0)oklch(0.168 0 0)
--dt-focus-ring-coloroklch(0.191 0 0)oklch(0.979 0 0)
--dt-focus-ring-offset-coloroklch(1 0 0)oklch(0.168 0 0)
--dt-viz-1oklch(0.585 0.162 45)oklch(0.735 0.148 45)
--dt-viz-2oklch(0.667 0.200 305)oklch(0.740 0.163 305)
--dt-viz-3oklch(0.588 0.135 230)oklch(0.746 0.115 230)
--dt-viz-4oklch(0.740 0.158 75)oklch(0.793 0.163 75)
--dt-viz-5oklch(0.535 0.128 150)oklch(0.714 0.146 150)
--dt-viz-6oklch(0.637 0.208 25)oklch(0.712 0.170 25)
--dt-spectrum-1oklch(0.630 0.230 25)oklch(0.700 0.200 25)
--dt-spectrum-2oklch(0.790 0.165 75)oklch(0.840 0.150 80)
--dt-spectrum-3oklch(0.700 0.190 150)oklch(0.780 0.175 150)
--dt-spectrum-4oklch(0.715 0.140 210)oklch(0.800 0.130 210)
--dt-spectrum-5oklch(0.600 0.215 262)oklch(0.700 0.180 262)
--dt-spectrum-6oklch(0.640 0.250 335)oklch(0.720 0.210 335)
--dt-button-primary-bgoklch(0.191 0 0)—
--dt-button-primary-bg-hoveroklch(0.285 0 0)—
--dt-button-primary-bg-activeoklch(0.371 0 0)—
--dt-button-primary-fgoklch(1 0 0)—
--dt-button-primary-borderoklch(0 0 0 / 0)—
--dt-button-secondary-bgoklch(0.958 0 0)—
--dt-button-secondary-bg-hoveroklch(0.928 0 0)—
--dt-button-secondary-bg-activeoklch(0.870 0 0)—
--dt-button-secondary-fgoklch(0.191 0 0)—
--dt-button-secondary-borderoklch(0 0 0 / 0)—
--dt-button-ghost-bgoklch(0 0 0 / 0)—
--dt-button-ghost-bg-hoveroklch(0.958 0 0)—
--dt-button-ghost-bg-activeoklch(0.928 0 0)—
--dt-button-ghost-fgoklch(0.191 0 0)—
--dt-button-ghost-borderoklch(0 0 0 / 0)—
--dt-button-danger-bgoklch(0.577 0.215 25)—
--dt-button-danger-bg-hoveroklch(0.505 0.191 25)—
--dt-button-danger-bg-activeoklch(0.444 0.161 25)—
--dt-button-danger-fgoklch(1 0 0)—
--dt-button-danger-borderoklch(0 0 0 / 0)—
--dt-button-brand-bgoklch(0.585 0.162 45)—
--dt-button-brand-bg-hoveroklch(0.505 0.140 45)—
--dt-button-brand-bg-activeoklch(0.430 0.117 45)—
--dt-button-brand-fgoklch(1 0 0)—
--dt-button-brand-borderoklch(0 0 0 / 0)—
--dt-button-brand-secondary-bgoklch(0.594 0.216 305)—
--dt-button-brand-secondary-bg-hoveroklch(0.518 0.190 305)—
--dt-button-brand-secondary-bg-activeoklch(0.444 0.158 305)—
--dt-button-brand-secondary-fgoklch(1 0 0)—
--dt-button-brand-secondary-borderoklch(0 0 0 / 0)—
--dt-button-disabled-bgoklch(0.958 0 0)—
--dt-button-disabled-fgoklch(0.715 0 0)—
--dt-button-disabled-borderoklch(0 0 0 / 0)—
--dt-input-bgoklch(1 0 0)—
--dt-input-bg-hoveroklch(1 0 0)—
--dt-input-bg-disabledoklch(0.958 0 0)—
--dt-input-fgoklch(0.191 0 0)—
--dt-input-fg-placeholderoklch(0.556 0 0)—
--dt-input-fg-disabledoklch(0.715 0 0)—
--dt-input-borderoklch(0.928 0 0)—
--dt-input-border-hoveroklch(0.715 0 0)—
--dt-input-border-focusoklch(0.191 0 0)—
--dt-input-border-erroroklch(0.577 0.215 25)—
--dt-input-border-disabledoklch(0.928 0 0)—
--dt-input-hint-coloroklch(0.464 0 0)—
--dt-input-error-coloroklch(0.444 0.161 25)—
--dt-card-bgoklch(1 0 0)—
--dt-card-fgoklch(0.191 0 0)—
--dt-card-border-coloroklch(0.928 0 0)—
--dt-card-selected-borderoklch(0.191 0 0)—
--dt-card-selected-bgoklch(0.958 0 0)—
--dt-card-media-fgoklch(0.979 0 0)—
--dt-card-media-fg-secondaryoklch(0.928 0 0)—
--dt-card-media-fg-strongoklch(1 0 0)—
--dt-card-media-fg-brandoklch(0.892 0.070 45)—
--dt-card-media-bordercolor-mix(in oklab, var(--dt-color-neutral-050) 14%, transparent)—
--dt-card-media-min-height256px—
--dt-social-bgoklch(1 0 0)—
--dt-social-fgoklch(0.191 0 0)—
--dt-social-mutedoklch(0.464 0 0)—
--dt-social-ruleoklch(0.928 0 0)—
--dt-social-on-imageoklch(1 0 0)—
--dt-social-on-image-mutedoklch(0.979 0 0)—
--dt-price-coloroklch(0.191 0 0)—
--dt-price-sale-coloroklch(0.444 0.161 25)—
--dt-price-compare-coloroklch(0.556 0 0)—
--dt-price-unit-coloroklch(0.464 0 0)—
--dt-rating-coloroklch(0.740 0.158 75)—
--dt-rating-empty-coloroklch(0.715 0 0)—
--dt-rating-count-coloroklch(0.464 0 0)—
--dt-product-subtitle-coloroklch(0.464 0 0)—
--dt-product-soldout-overlaycolor-mix(in oklab, var(--dt-surface-overlay) 72%, transparent)—
--dt-swatch-borderoklch(0.715 0 0)—
--dt-swatch-ringoklch(0.191 0 0)—
--dt-variant-bgoklch(1 0 0)—
--dt-variant-bg-hoveroklch(0.979 0 0)—
--dt-variant-fgoklch(0.191 0 0)—
--dt-variant-borderoklch(0.928 0 0)—
--dt-variant-selected-bgoklch(0.958 0 0)—
--dt-variant-selected-fgoklch(0.191 0 0)—
--dt-variant-selected-borderoklch(0.191 0 0)—
--dt-variant-unavailable-fgoklch(0.715 0 0)—
--dt-variant-unavailable-borderoklch(0.928 0 0)—
--dt-variant-note-coloroklch(0.464 0 0)—
--dt-store-cover-bgoklch(0.958 0 0)—
--dt-store-logo-bgoklch(1 0 0)—
--dt-store-logo-ringoklch(1 0 0)—
--dt-store-meta-coloroklch(0.464 0 0)—
--dt-store-open-coloroklch(0.373 0.086 150)—
--dt-store-closed-coloroklch(0.444 0.161 25)—
--dt-store-closed-scrimoklch(0.145 0.005 264 / 0.5)—
--dt-fulfilment-track-bgoklch(0.958 0 0)—
--dt-fulfilment-thumb-bgoklch(1 0 0)—
--dt-fulfilment-fgoklch(0.464 0 0)—
--dt-fulfilment-fg-selectedoklch(0.191 0 0)—
--dt-fulfilment-detail-coloroklch(0.556 0 0)—
--dt-fulfilment-detail-color-selectedoklch(0.464 0 0)—
--dt-menu-item-divideroklch(0.958 0 0)—
--dt-menu-item-bg-hoveroklch(0.979 0 0)—
--dt-menu-item-card-bgoklch(1 0 0)—
--dt-menu-item-card-borderoklch(0.958 0 0)—
--dt-menu-item-description-coloroklch(0.464 0 0)—
--dt-menu-item-soldout-coloroklch(0.715 0 0)—
--dt-menu-thumb-bgoklch(0.958 0 0)—
--dt-modifier-divideroklch(0.958 0 0)—
--dt-modifier-control-borderoklch(0.715 0 0)—
--dt-modifier-control-bgoklch(1 0 0)—
--dt-modifier-control-accentoklch(0.191 0 0)—
--dt-modifier-control-markoklch(1 0 0)—
--dt-modifier-delta-coloroklch(0.464 0 0)—
--dt-modifier-hint-coloroklch(0.464 0 0)—
--dt-modifier-pill-bgoklch(0.958 0 0)—
--dt-modifier-pill-fgoklch(0.464 0 0)—
--dt-modifier-error-coloroklch(0.444 0.161 25)—
--dt-modifier-error-pill-bgoklch(0.971 0.015 25)—
--dt-dietary-vegetarian-bgoklch(0.972 0.021 150)—
--dt-dietary-vegetarian-fgoklch(0.373 0.086 150)—
--dt-dietary-vegan-bgoklch(0.972 0.021 150)—
--dt-dietary-vegan-fgoklch(0.373 0.086 150)—
--dt-dietary-spicy-bgoklch(0.971 0.015 25)—
--dt-dietary-spicy-fgoklch(0.444 0.161 25)—
--dt-dietary-gluten-free-bgoklch(0.977 0.013 230)—
--dt-dietary-gluten-free-fgoklch(0.366 0.077 230)—
--dt-dietary-new-bgoklch(0.971 0.016 45)—
--dt-dietary-new-fgoklch(0.505 0.140 45)—
--dt-dietary-default-bgoklch(0.958 0 0)—
--dt-dietary-default-fgoklch(0.464 0 0)—
--dt-cart-line-divideroklch(0.958 0 0)—
--dt-cart-thumb-bgoklch(0.958 0 0)—
--dt-cart-thumb-borderoklch(0.958 0 0)—
--dt-cart-thumb-fgoklch(0.556 0 0)—
--dt-cart-detail-coloroklch(0.464 0 0)—
--dt-cart-note-coloroklch(0.464 0 0)—
--dt-cart-thumb-radius12px—
--dt-cart-thumb-size-sm48px—
--dt-cart-thumb-size-md64px—
--dt-summary-bgoklch(1 0 0)—
--dt-summary-borderoklch(0.958 0 0)—
--dt-summary-divideroklch(0.958 0 0)—
--dt-summary-label-coloroklch(0.464 0 0)—
--dt-summary-value-coloroklch(0.191 0 0)—
--dt-summary-muted-coloroklch(0.556 0 0)—
--dt-summary-hint-coloroklch(0.556 0 0)—
--dt-summary-discount-coloroklch(0.373 0.086 150)—
--dt-summary-total-coloroklch(0.191 0 0)—
--dt-summary-radius16px—
--dt-summary-padding24px—
--dt-promo-chip-bgoklch(0.972 0.021 150)—
--dt-promo-chip-fgoklch(0.191 0 0)—
--dt-promo-chip-borderoklch(0.885 0.077 150)—
--dt-promo-chip-iconoklch(0.373 0.086 150)—
--dt-promo-chip-descriptionoklch(0.464 0 0)—
--dt-order-status-completeoklch(0.191 0 0)—
--dt-order-status-on-completeoklch(1 0 0)—
--dt-order-status-currentoklch(0.191 0 0)—
--dt-order-status-upcomingoklch(0.715 0 0)—
--dt-order-status-lineoklch(0.928 0 0)—
--dt-order-status-delayedoklch(0.740 0.158 75)—
--dt-order-status-on-delayedoklch(0.168 0 0)—
--dt-order-status-delayed-textoklch(0.386 0.079 75)—
--dt-order-status-cancelledoklch(0.577 0.215 25)—
--dt-order-status-on-cancelledoklch(1 0 0)—
--dt-order-status-cancelled-textoklch(0.444 0.161 25)—
--dt-order-status-marker-size24px—
--dt-order-status-line-width2px—
--dt-order-status-step-min-widthcalc(48px * 3)—
--dt-dialog-bgoklch(1 0 0)—
--dt-dialog-fgoklch(0.191 0 0)—
--dt-dialog-border-coloroklch(0.958 0 0)—
--dt-dialog-scrimoklch(0.145 0.005 264 / 0.5)—
--dt-sheet-button-bgoklch(0.958 0 0)—
--dt-table-bgoklch(1 0 0)—
--dt-table-fgoklch(0.191 0 0)—
--dt-table-border-coloroklch(0.958 0 0)—
--dt-table-header-bgoklch(0.979 0 0)—
--dt-table-header-fgoklch(0.464 0 0)—
--dt-table-row-bg-hoveroklch(0.979 0 0)—
--dt-table-row-bg-selectedoklch(0.958 0 0)—
--dt-table-row-bg-stripedoklch(0.979 0 0)—
--dt-surface-brandoklch(0.585 0.162 45)oklch(0.660 0.166 45)
--dt-surface-brand-gradientlinear-gradient(135deg, oklch(0.660 0.166 45), oklch(0.430 0.117 45))linear-gradient(135deg, oklch(0.735 0.148 45), oklch(0.505 0.140 45))
--dt-text-on-brandoklch(1 0 0)oklch(0.168 0 0)
--dt-surface-brand-mutedoklch(0.971 0.016 45)oklch(0.262 0.070 45)
--dt-text-on-brand-mutedoklch(0.372 0.097 45)oklch(0.939 0.038 45)
--dt-border-brandoklch(0.892 0.070 45)oklch(0.430 0.117 45)
--dt-text-brandoklch(0.505 0.140 45)oklch(0.735 0.148 45)A word or heading set in the primary brand hue.
--dt-text-wordmarkoklch(0.191 0 0)oklch(0.979 0 0)The wordmark. Ink by default; a theme points it at a brand text role.
--dt-text-headlineoklch(0.191 0 0)oklch(0.979 0 0)Display and heading text. Ink by default; a theme points it at a brand text role.
--dt-surface-brand-secondaryoklch(0.594 0.216 305)oklch(0.667 0.200 305)A full-bleed fill in the second brand hue.
--dt-text-on-brand-secondaryoklch(1 0 0)oklch(0.168 0 0)
--dt-surface-brand-secondary-mutedoklch(0.977 0.014 305)oklch(0.279 0.095 305)The pale tint of the second brand hue.
--dt-text-on-brand-secondary-mutedoklch(0.381 0.128 305)oklch(0.946 0.033 305)
--dt-border-brand-secondaryoklch(0.902 0.063 305)oklch(0.444 0.158 305)
--dt-text-brand-secondaryoklch(0.518 0.190 305)oklch(0.740 0.163 305)A word or eyebrow set in the second brand hue.
--dt-surface-brand-duotonelinear-gradient(135deg, oklch(0.585 0.162 45), oklch(0.594 0.216 305))linear-gradient(135deg, oklch(0.660 0.166 45), oklch(0.667 0.200 305))Both brand hues in one sweep. Carries white text.
--dt-bubble-sent-bgoklch(0.191 0 0)—
--dt-bubble-sent-fgoklch(1 0 0)—
--dt-bubble-received-bgoklch(0.958 0 0)—
--dt-bubble-received-fgoklch(0.191 0 0)—
--dt-bubble-meta-fgoklch(0.556 0 0)—
--dt-bubble-author-fgoklch(0.464 0 0)—
--dt-bubble-read-fgoklch(0.191 0 0)—
--dt-bubble-failed-fgoklch(0.444 0.161 25)—
--dt-presence-onlineoklch(0.535 0.128 150)—
--dt-presence-awayoklch(0.740 0.158 75)—
--dt-presence-offlineoklch(0.556 0 0)—
--dt-chat-surfaceoklch(1 0 0)—
--dt-chat-borderoklch(0.958 0 0)—
--dt-chat-divider-fgoklch(0.556 0 0)—
--dt-typing-dotoklch(0.556 0 0)—
--dt-quick-replies-borderoklch(0.928 0 0)—

Spacing and dimension

91 tokens. A blank cell means the token keeps the value it has in the first theme.

TokenLightProduct contextMarketing contextSocial contextdt-type-scaleUsage
--dt-dim-00px————
--dt-dim-14px————
--dt-dim-28px————
--dt-dim-312px————
--dt-dim-416px————
--dt-dim-520px————
--dt-dim-624px————
--dt-dim-728px————
--dt-dim-832px————
--dt-dim-936px————
--dt-dim-1040px————
--dt-dim-1144px————
--dt-dim-1248px————
--dt-dim-1456px————
--dt-dim-1664px————
--dt-dim-2080px————
--dt-dim-2496px————
--dt-dim-28112px————
--dt-dim-32128px————
--dt-dim-40160px————
--dt-dim-48192px————
--dt-dim-56224px————
--dt-dim-64256px————
--dt-dim-hair1px————
--dt-dim-hair-22px————
--dt-dim-container-sm640px————
--dt-dim-container-md768px————
--dt-dim-container-lg1024px————
--dt-dim-container-xl1280px————
--dt-dim-container-2xl1536px————
--dt-breakpoint-sm640px————
--dt-breakpoint-md768px————
--dt-breakpoint-lg1024px————
--dt-breakpoint-xl1280px————
--dt-breakpoint-2xl1536px————
--dt-space-inset-2xs4px————
--dt-space-inset-xs8px————
--dt-space-inset-sm12px————
--dt-space-inset-md16px————
--dt-space-inset-lg24px————
--dt-space-inset-xl32px————
--dt-space-inset-2xl48px————
--dt-space-stack-2xs4px————
--dt-space-stack-xs8px————
--dt-space-stack-sm12px————
--dt-space-stack-md16px————
--dt-space-stack-lg24px————
--dt-space-stack-xl40px32px48px24px—
--dt-space-stack-2xl64px48px96px40px—
--dt-space-inline-2xs4px————
--dt-space-inline-xs8px————
--dt-space-inline-sm12px————
--dt-space-inline-md16px————
--dt-space-inline-lg24px————
--dt-space-inline-xl32px————
--dt-space-inline-2xl48px————
--dt-space-section96px48px128px64px—
--dt-space-section-compact64px————
--dt-space-gutter24px16px32px16px—
--dt-space-gutter-wide40px————
--dt-layout-stack-group16px————
--dt-layout-stack-block32px————
--dt-layout-stack-section64px————
--dt-layout-inline-group12px————
--dt-layout-inline-block24px————
--dt-layout-inline-section48px————
--dt-layout-text-eyebrow12px————
--dt-layout-text-subcopy12px————
--dt-layout-text-paragraph16px————
--dt-layout-module-padding96px96px96px96px—
--dt-layout-module-gap40px————
--dt-layout-scale1———2.5
--dt-layout-module-padding-sm64px32px80px40px—
--dt-layout-module-padding-md96px96px96px96px—
--dt-layout-module-padding-lg128px64px160px96px—
--dt-layout-module-padding-xl160px96px192px128px—
--dt-layout-module-inset32px24px48px24px—
--dt-layout-page-width1280px————
--dt-layout-page-width-narrow768px————
--dt-layout-page-width-wide1536px————
--dt-layout-page-gutter24px24px24px24px—
--dt-size-step48px————
--dt-size-container-narrow768px————
--dt-size-container-default1280px————
--dt-size-container-wide1536px————
--dt-bubble-padding8px 12px————
--dt-bubble-gap4px————
--dt-bubble-run-gap12px————
--dt-quick-replies-gap8px————

Radius

28 tokens. A blank cell means the token keeps the value it has in the first theme.

TokenLightProduct contextMarketing contextSocial contextUsage
--dt-radius-raw-00px———
--dt-radius-raw-22px———
--dt-radius-raw-44px———
--dt-radius-raw-66px———
--dt-radius-raw-88px———
--dt-radius-raw-1212px———
--dt-radius-raw-1616px———
--dt-radius-raw-2424px———
--dt-radius-raw-full9999px———
--dt-radius-none0px———
--dt-radius-control8px———
--dt-radius-container16px———
--dt-radius-overlay24px———
--dt-radius-media12px——16px
--dt-radius-pill9999px———
--dt-button-radius9999px——9999px
--dt-input-radius8px———
--dt-card-radius16px16px24px24px
--dt-dialog-radius24px———
--dt-popover-radius16px———
--dt-table-radius16px———
--dt-bubble-radius16px———
--dt-bubble-radius-tightcalc(8px / 2)———
--dt-store-cover-radius12px———
--dt-store-logo-radius12px———
--dt-fulfilment-radius16px———
--dt-fulfilment-thumb-radius12px———
--dt-menu-thumb-radius12px———

Motion

13 tokens.

TokenValueUsage
--dt-duration-instant0ms
--dt-duration-5050ms
--dt-duration-100100ms
--dt-duration-150150ms
--dt-duration-200200ms
--dt-duration-300300ms
--dt-duration-400400ms
--dt-duration-600600ms
--dt-easing-linearlinear
--dt-easing-standardcubic-bezier(0.2, 0.8, 0.2, 1)
--dt-easing-deceleratecubic-bezier(0, 0, 0, 1)
--dt-easing-acceleratecubic-bezier(0.3, 0, 1, 1)
--dt-easing-emphasiscubic-bezier(0.2, 0, 0, 1.2)

Line height

16 tokens.

TokenValueUsage
--dt-line-height-2xs16px
--dt-line-height-xs16px
--dt-line-height-sm20px
--dt-line-height-md24px
--dt-line-height-lg28px
--dt-line-height-xl32px
--dt-line-height-2xl36px
--dt-line-height-3xl40px
--dt-line-height-4xl48px
--dt-line-height-5xl52px
--dt-line-height-6xl64px
--dt-line-height-7xl76px
--dt-line-height-8xl88px
--dt-line-height-9xl104px
--dt-line-height-10xl124px
--dt-line-height-11xl148px

Font weight

7 tokens.

TokenValueUsage
--dt-font-weight-light300
--dt-font-weight-regular400
--dt-font-weight-medium500
--dt-font-weight-semibold600
--dt-font-weight-bold700
--dt-font-weight-extrabold800
--dt-button-font-weight500

Letter spacing

7 tokens.

TokenValueUsage
--dt-tracking-tightest-0.04em
--dt-tracking-tighter-0.03em
--dt-tracking-tight-0.02em
--dt-tracking-snug-0.01em
--dt-tracking-normal0em
--dt-tracking-wide0.02em
--dt-tracking-wider0.06em

Elevation, z-order and the rest

93 tokens. A blank cell means the token keeps the value it has in the first theme.

TokenLightProduct contextMarketing contextSocial contextUsage
--dt-shadow-raw-nonenone———
--dt-shadow-raw-10 1px 2px 0 oklch(0 0 0 / 0.04), 0 2px 6px 0 oklch(0 0 0 / 0.04)———
--dt-shadow-raw-20 4px 14px 0 oklch(0 0 0 / 0.08), 0 0 0 1px oklch(0 0 0 / 0.04)———
--dt-shadow-raw-30 12px 32px 0 oklch(0 0 0 / 0.16), 0 0 0 1px oklch(0 0 0 / 0.06)———
--dt-shadow-raw-40 16px 40px 0 oklch(0 0 0 / 0.18), 0 0 0 1px oklch(0 0 0 / 0.06)———
--dt-shadow-raw-50 24px 64px 0 oklch(0 0 0 / 0.22), 0 0 0 1px oklch(0 0 0 / 0.06)———
--dt-shadow-raw-insetinset 0 0 0 1px oklch(0 0 0 / 0.08)———
--dt-border-width-default1px———
--dt-border-width-strong2px———
--dt-focus-ring-width2px———
--dt-focus-ring-offset2px———
--dt-elevation-0none———
--dt-elevation-10 1px 2px 0 oklch(0 0 0 / 0.04), 0 2px 6px 0 oklch(0 0 0 / 0.04)———
--dt-elevation-20 4px 14px 0 oklch(0 0 0 / 0.08), 0 0 0 1px oklch(0 0 0 / 0.04)———
--dt-elevation-30 12px 32px 0 oklch(0 0 0 / 0.16), 0 0 0 1px oklch(0 0 0 / 0.06)———
--dt-elevation-40 16px 40px 0 oklch(0 0 0 / 0.18), 0 0 0 1px oklch(0 0 0 / 0.06)———
--dt-elevation-50 24px 64px 0 oklch(0 0 0 / 0.22), 0 0 0 1px oklch(0 0 0 / 0.06)———
--dt-elevation-insetinset 0 0 0 1px oklch(0 0 0 / 0.08)———
--dt-z-behind-1———
--dt-z-base0———
--dt-z-raised10———
--dt-z-front20———
--dt-z-sticky100———
--dt-z-dropdown200———
--dt-z-overlay300———
--dt-z-dialog400———
--dt-z-toast500———
--dt-z-tooltip600———
--dt-opacity-00———
--dt-opacity-100.1———
--dt-opacity-200.2———
--dt-opacity-300.3———
--dt-opacity-400.4———
--dt-opacity-500.5———
--dt-opacity-600.6———
--dt-opacity-700.7———
--dt-opacity-800.8———
--dt-opacity-900.9———
--dt-opacity-1001———
--dt-opacity-ghost0.2———
--dt-opacity-disabled0.4———
--dt-opacity-muted0.6———
--dt-opacity-strong0.8———
--dt-motion-micro0ms linear———
--dt-motion-enter0ms linear———
--dt-motion-exit0ms linear———
--dt-motion-emphasis0ms linear———
--dt-button-border-width1px———
--dt-button-transition0ms linear———
--dt-button-height-sm32px———
--dt-button-height-md40px40px48px44px
--dt-button-height-lg48px———
--dt-input-border-width1px———
--dt-input-transition0ms linear———
--dt-input-height-sm32px———
--dt-input-height-md40px———
--dt-input-height-lg48px———
--dt-card-border-width1px1px0px0px
--dt-card-elevationnonenonenonenone
--dt-card-elevation-hover0 1px 2px 0 oklch(0 0 0 / 0.04), 0 2px 6px 0 oklch(0 0 0 / 0.04)0 1px 2px 0 oklch(0 0 0 / 0.04), 0 2px 6px 0 oklch(0 0 0 / 0.04)0 4px 14px 0 oklch(0 0 0 / 0.08), 0 0 0 1px oklch(0 0 0 / 0.04)none
--dt-card-transition0ms linear———
--dt-dialog-elevation0 16px 40px 0 oklch(0 0 0 / 0.18), 0 0 0 1px oklch(0 0 0 / 0.06)———
--dt-sheet-shadow0 16px 40px 0 oklch(0 0 0 / 0.18), 0 0 0 1px oklch(0 0 0 / 0.06)———
--dt-dialog-border-width1px———
--dt-dialog-enter0ms linear———
--dt-dialog-exit0ms linear———
--dt-popover-elevation0 12px 32px 0 oklch(0 0 0 / 0.16), 0 0 0 1px oklch(0 0 0 / 0.06)———
--dt-table-border-width1px———
--dt-table-row-height48px———
--dt-table-row-height-compact36px———
--dt-blur-raw-44px———
--dt-blur-raw-88px———
--dt-blur-raw-1212px———
--dt-blur-raw-1616px———
--dt-blur-raw-2424px———
--dt-blur-raw-4040px———
--dt-blur-glass16px———
--dt-blur-chip8px———
--dt-backdrop-glasssaturate(1.6) blur(16px)———
--dt-presence-size12px———
--dt-typing-dot-sizecalc(12px / 2)———
--dt-typing-beatvar(--dt-duration-300) var(--dt-easing-emphasis)———
--dt-fulfilment-thumb-shadow0 1px 2px 0 oklch(0 0 0 / 0.04), 0 2px 6px 0 oklch(0 0 0 / 0.04)———
--dt-store-cover-max-height256px———
--dt-store-logo-size64px———
--dt-fulfilment-inset4px———
--dt-menu-item-gap16px———
--dt-menu-item-padding16px———
--dt-menu-thumb-size96px———
--dt-menu-grid-min307.2px———
--dt-menu-section-gap12px———
--dt-modifier-row-min-height44px———
--dt-modifier-control-size20px———

Texture

5 tokens. A blank cell means the token keeps the value it has in the first theme.

TokenLightDarkUsage
--dt-pattern-size24px—The repeat interval for a dot or grid texture.
--dt-pattern-inkoklch(0.715 0 0)oklch(0.556 0 0)The line or dot colour. Follows the border-strength role, so it adapts to dark mode and a mono theme on its own.
--dt-pattern-dotsradial-gradient(var(--dt-pattern-ink) 1px, transparent 1.5px) 0 0 / var(--dt-pattern-size) var(--dt-pattern-size)—
--dt-pattern-gridlinear-gradient(var(--dt-pattern-ink) 1px, transparent 1px) 0 0 / var(--dt-pattern-size) var(--dt-pattern-size), linear-gradient(90deg, var(--dt-pattern-ink) 1px, transparent 1px) 0 0 / var(--dt-pattern-size) var(--dt-pattern-size)—
--dt-surface-texturenone—The active choice. Configure or a theme repoints this at one of the two patterns above.

Type styles

Families and the complete roles the system ships. A role travels as a set: family, size, line height, weight and tracking.

FamilyStack
--dt-font-family-sans"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif
--dt-font-family-secondaryvar(--dt-font-family-sans)
--dt-font-family-serifui-serif, Georgia, "Times New Roman", serif
--dt-font-family-mono"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace

Type scale

StyleSizeLine heightWeightTracking
dt-font-size-2xs11px———
dt-font-size-xs12px———
dt-font-size-sm14px———
dt-font-size-md16px———
dt-font-size-lg19px———
dt-font-size-xl23px———
dt-font-size-2xl28px———
dt-font-size-3xl33px———
dt-font-size-4xl40px———
dt-font-size-5xl48px———
dt-font-size-6xl58px———
dt-font-size-7xl69px———
dt-font-size-8xl83px———
dt-font-size-9xl100px———
dt-font-size-10xl120px———
dt-font-size-11xl144px———
dt-text-display-2xl144px—500-0.04em
dt-text-display-2xl-line148px———
dt-text-display-xl100px—500-0.04em
dt-text-display-xl-line104px———
dt-text-display-lg69px—500-0.04em
dt-text-display-lg-line76px———
dt-text-display-md58px—500-0.04em
dt-text-display-md-line64px———
dt-text-display-sm48px—500-0.03em
dt-text-display-sm-line52px———
dt-text-heading-xl40px—500-0.03em
dt-text-heading-xl-line48px———
dt-text-heading-lg33px—500-0.02em
dt-text-heading-lg-line40px———
dt-text-heading-md28px—500-0.02em
dt-text-heading-md-line36px———
dt-text-heading-sm23px—500-0.01em
dt-text-heading-sm-line32px———
dt-text-heading-xs19px—5000em
dt-text-heading-xs-line28px———
dt-text-body-lg19px—4000em
dt-text-body-lg-line28px———
dt-text-body-md16px—4000em
dt-text-body-md-line24px———
dt-text-body-sm14px—4000em
dt-text-body-sm-line20px———
dt-text-body-xs12px—4000em
dt-text-body-xs-line16px———
dt-text-label-lg16px—5000em
dt-text-label-lg-line24px———
dt-text-label-md14px—5000em
dt-text-label-md-line20px———
dt-text-label-sm12px—5000em
dt-text-label-sm-line16px———
dt-text-eyebrow11px—6000.06em
dt-text-eyebrow-line16px———
dt-text-code-md14px—4000em
dt-text-code-md-line20px———
dt-text-code-sm12px—4000em
dt-text-code-sm-line16px———
dt-button-font-size-sm14px———
dt-button-font-size-md14px———
dt-button-font-size-lg16px———
dt-input14px———
dt-table-header12px—5000.02em

From the stylesheet

StyleSizeLine heightWeightTracking
body16px24px4000em
code14px24px400—
pre14px24px400—
kbd14px24px400—