fix(ui): wire theme-token guard into CI and tokenize grays #484

Merged
Claude-Run merged 1 commit from fix/MAPPS-401-theme-token-ci into main 2026-08-06 11:27:29 +02:00
Member

check.yml ran the runner-label guard, fmt, clippy, the wasm build, and the unit tests but never scripts/check-theme-tokens.sh, so the MAPPS-259 semantic-token rule was enforced only locally and 17 hardcoded-gray lines drifted back onto main. Add a Theme-token guard step next to the runner-label guard so a new hardcoded neutral fails CI (just check already ran the guard locally).

Migrate the 17 violations onto the input.css tokens, collapsing each light+dark: pair to the single token that carries dark mode through the CSS vars: labels and headings to text-content, secondary/body copy to text-muted, chevrons to text-subtle, card and chip surfaces to bg-surface / bg-surface-2, dividers to border-line, and the global-search icon button onto the top-bar convention (text-subtle hover:text-content hover:bg-surface-2). CollapsibleCard now matches Card's token classes exactly.

The shape sweep for the same invariant turned up one neutral the guard's pattern missed: SearchInput's placeholder-gray-500 / focus:placeholder-gray-400. Tokenize it to placeholder-subtle and extend the guard pattern to cover the placeholder- prefix. calendar.rs's bg-slate-600 fallback is part of the opted-out event-type data-viz palette, and collapsible_rail's bg-black/30 is a modal scrim, not a themed surface.

#MAPPS-401

check.yml ran the runner-label guard, fmt, clippy, the wasm build, and the unit tests but never scripts/check-theme-tokens.sh, so the MAPPS-259 semantic-token rule was enforced only locally and 17 hardcoded-gray lines drifted back onto main. Add a Theme-token guard step next to the runner-label guard so a new hardcoded neutral fails CI (just check already ran the guard locally). Migrate the 17 violations onto the input.css tokens, collapsing each light+dark: pair to the single token that carries dark mode through the CSS vars: labels and headings to text-content, secondary/body copy to text-muted, chevrons to text-subtle, card and chip surfaces to bg-surface / bg-surface-2, dividers to border-line, and the global-search icon button onto the top-bar convention (text-subtle hover:text-content hover:bg-surface-2). CollapsibleCard now matches Card's token classes exactly. The shape sweep for the same invariant turned up one neutral the guard's pattern missed: SearchInput's placeholder-gray-500 / focus:placeholder-gray-400. Tokenize it to placeholder-subtle and extend the guard pattern to cover the placeholder- prefix. calendar.rs's bg-slate-600 fallback is part of the opted-out event-type data-viz palette, and collapsible_rail's bg-black/30 is a modal scrim, not a themed surface. #MAPPS-401
fix(ui): wire theme-token guard into CI and tokenize grays
All checks were successful
Check / fmt + clippy + tests (pull_request) Successful in 14m59s
Create release / Create release from merged PR (pull_request) Has been skipped
159cfbe400
check.yml ran the runner-label guard, fmt, clippy, the wasm build, and the unit tests but never scripts/check-theme-tokens.sh, so the MAPPS-259 semantic-token rule was enforced only locally and 17 hardcoded-gray lines drifted back onto main. Add a Theme-token guard step next to the runner-label guard so a new hardcoded neutral fails CI (just check already ran the guard locally).

Migrate the 17 violations onto the input.css tokens, collapsing each light+dark: pair to the single token that carries dark mode through the CSS vars: labels and headings to text-content, secondary/body copy to text-muted, chevrons to text-subtle, card and chip surfaces to bg-surface / bg-surface-2, dividers to border-line, and the global-search icon button onto the top-bar convention (text-subtle hover:text-content hover:bg-surface-2). CollapsibleCard now matches Card's token classes exactly.

The shape sweep for the same invariant turned up one neutral the guard's pattern missed: SearchInput's placeholder-gray-500 / focus:placeholder-gray-400. Tokenize it to placeholder-subtle and extend the guard pattern to cover the placeholder- prefix. calendar.rs's bg-slate-600 fallback is part of the opted-out event-type data-viz palette, and collapsible_rail's bg-black/30 is a modal scrim, not a themed surface.

#MAPPS-401
Claude-Run deleted branch fix/MAPPS-401-theme-token-ci 2026-08-06 11:27:30 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-apps!484
No description provided.