@ -1512,23 +1512,34 @@ export const THEME_BASE_RECIPE_TOKENS = {
'transition-ease' : 'var(--ease-default)' ,
'spinner-duration' : '720ms' ,
'disabled-opacity' : '0.5' ,
// Per-color palettes (8 system tokens)
// Per-color palettes — 7 slots per color, uniform across all 8: track /
// element / border / solid / solid-hover / text / contrast. soft + surface
// + outline variants read track/border, so every color must define them
// (was only fulfill/loss — the others rendered with no bg/border).
'primary-track' : 'var(--color-primary-track)' ,
'primary-element' : 'var(--color-primary-element)' ,
'primary-border' : 'var(--color-primary-border)' ,
'primary-solid' : 'var(--color-primary-solid)' ,
'primary-solid-hover' : 'var(--color-primary-solid-hover)' ,
'primary-text' : 'var(--color-primary-text)' ,
'primary-contrast' : 'var(--color-primary-contrast)' ,
'secondary-track' : 'var(--color-secondary-track)' ,
'secondary-element' : 'var(--color-secondary-element)' ,
'secondary-border' : 'var(--color-secondary-border)' ,
'secondary-solid' : 'var(--color-secondary-solid)' ,
'secondary-solid-hover' : 'var(--color-secondary-solid-hover)' ,
'secondary-text' : 'var(--color-secondary-text)' ,
'secondary-contrast' : 'var(--color-secondary-contrast)' ,
'neutral-track' : 'var(--color-neutral-track)' ,
'neutral-element' : 'var(--color-neutral-element)' ,
'neutral-border' : 'var(--color-neutral-border)' ,
'neutral-solid' : 'var(--color-neutral-solid)' ,
'neutral-solid-hover' : 'var(--color-neutral-solid-hover)' ,
'neutral-text' : 'var(--color-neutral-text)' ,
'neutral-contrast' : 'var(--color-neutral-contrast)' ,
'affirm-track' : 'var(--color-affirm-track)' ,
'affirm-element' : 'var(--color-affirm-element)' ,
'affirm-border' : 'var(--color-affirm-border)' ,
'affirm-solid' : 'var(--color-affirm-solid)' ,
'affirm-solid-hover' : 'var(--color-affirm-solid-hover)' ,
'affirm-text' : 'var(--color-affirm-text)' ,
@ -1540,12 +1551,16 @@ export const THEME_BASE_RECIPE_TOKENS = {
'fulfill-solid-hover' : 'var(--color-fulfill-solid-hover)' ,
'fulfill-text' : 'var(--color-fulfill-text)' ,
'fulfill-contrast' : 'var(--color-fulfill-contrast)' ,
'risk-track' : 'var(--color-risk-track)' ,
'risk-element' : 'var(--color-risk-element)' ,
'risk-border' : 'var(--color-risk-border)' ,
'risk-solid' : 'var(--color-risk-solid)' ,
'risk-solid-hover' : 'var(--color-risk-solid-hover)' ,
'risk-text' : 'var(--color-risk-text)' ,
'risk-contrast' : 'var(--color-risk-contrast)' ,
'threat-track' : 'var(--color-threat-track)' ,
'threat-element' : 'var(--color-threat-element)' ,
'threat-border' : 'var(--color-threat-border)' ,
'threat-solid' : 'var(--color-threat-solid)' ,
'threat-solid-hover' : 'var(--color-threat-solid-hover)' ,
'threat-text' : 'var(--color-threat-text)' ,
@ -3227,7 +3242,8 @@ export const THEME_BASE_RECIPE_TOKENS = {
// base theme (invisible against panels), so the track uses the same
// visible-track mix as Progress: a light tint of content-primary on the
// surface. Reads on white AND dark, and follows the theme.
'track-bg' : 'color-mix(in srgb, var(--color-content-primary) 12%, var(--color-surface-default))' ,
'track-bg' :
'color-mix(in srgb, var(--color-content-primary) 12%, var(--color-surface-default))' ,
'range-bg' : 'var(--color-primary-solid)' ,
'thumb-radius' : 'var(--radius-full)' ,
'thumb-border-width' : 'var(--border-width)' ,