feat: design wave 2 — identity tokens (goal 0001) - #48
Merged
Conversation
…o utility (goal 0001) A full-app design audit (screenshots, both themes) found pill/color/ typography drift beyond wave 1's convention fixes: 7 independent ad-hoc `<Label variant="...">` pill families with no shared vocabulary, node-kind canvas colors literally aliasing Primer's status-semantic tokens (a process-kind node and a success-status pill rendered the identical green -- "green triple duty"), and machine-readable facts (URLs, IDs, commands, timestamps) rendering in body text with nothing to mark them as such. 1. Accent scale: Mill's own desaturated verdigris/teal, layered over Primer's functional accent tokens (frontend/src/app/mill-tokens.css) so every Primer component reading them (links, focus rings, selected tabs, the sidebar active row) picks it up for free. Deliberately a separate file imported AFTER @primer/primitives' theme CSS in main.tsx -- Primer's own light.css sets these tokens on its ThemeProvider's internal wrapper <div> directly (not just :root), so a same-specificity override has to win the cascade by load order; caught by a computed-style e2e proof against the real compiled page after a specificity-only attempt looked correct on paper and still lost. 2. Node-Kind canvas colors (composition/nodeKind.ts) decoupled from status semantics: own fixed --mill-kind-* tokens, contrast-checked independently, never aliased to a Primer semantic token or the accent scale. 3. shared/StatusStamp.tsx: one stamp component replacing the 7 pill families across the app, five semantic variants only (success/ caution/danger/neutral/identity). Primer Label stays for genuine categorization tags (auth type, field In/Type) -- StatusStamp is for STATE, Label stays for CATEGORY. Also closed two stray un-migrated key-combo sites (NodeInspector, SettingsView) onto wave 1's KeyComboChip, a gap wave 1's own commit message had claimed closed. 4. shared/monoText.module.css: a mono utility class applied to MCP server commands, AI provider/Integration base URLs, run timestamps, ExecEnv directories, Decision output keys. Full local gate green (tsc/eslint/boundaries/vitest/check-loc/golangci- lint/go vet/go build desktop+server/go test/ls_lint) plus a full Playwright e2e run (196/196, 3 pre-existing timing-flake tests confirmed via isolated reruns, none touching a Label/StatusStamp testid or variant). docs/SPEC.md §3.8-area, goal 0001, and BACKLOG annotated; goal stays OPEN pending wave 3 (palette IA) and the owner's live sign-off. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018pkViCNAuZp2vBv2K9AbUh
alicoding
enabled auto-merge (squash)
August 13, 2026 04:49
alicoding
added a commit
that referenced
this pull request
Aug 15, 2026
…o utility (goal 0001) (#48) A full-app design audit (screenshots, both themes) found pill/color/ typography drift beyond wave 1's convention fixes: 7 independent ad-hoc `<Label variant="...">` pill families with no shared vocabulary, node-kind canvas colors literally aliasing Primer's status-semantic tokens (a process-kind node and a success-status pill rendered the identical green -- "green triple duty"), and machine-readable facts (URLs, IDs, commands, timestamps) rendering in body text with nothing to mark them as such. 1. Accent scale: Mill's own desaturated verdigris/teal, layered over Primer's functional accent tokens (frontend/src/app/mill-tokens.css) so every Primer component reading them (links, focus rings, selected tabs, the sidebar active row) picks it up for free. Deliberately a separate file imported AFTER @primer/primitives' theme CSS in main.tsx -- Primer's own light.css sets these tokens on its ThemeProvider's internal wrapper <div> directly (not just :root), so a same-specificity override has to win the cascade by load order; caught by a computed-style e2e proof against the real compiled page after a specificity-only attempt looked correct on paper and still lost. 2. Node-Kind canvas colors (composition/nodeKind.ts) decoupled from status semantics: own fixed --mill-kind-* tokens, contrast-checked independently, never aliased to a Primer semantic token or the accent scale. 3. shared/StatusStamp.tsx: one stamp component replacing the 7 pill families across the app, five semantic variants only (success/ caution/danger/neutral/identity). Primer Label stays for genuine categorization tags (auth type, field In/Type) -- StatusStamp is for STATE, Label stays for CATEGORY. Also closed two stray un-migrated key-combo sites (NodeInspector, SettingsView) onto wave 1's KeyComboChip, a gap wave 1's own commit message had claimed closed. 4. shared/monoText.module.css: a mono utility class applied to MCP server commands, AI provider/Integration base URLs, run timestamps, ExecEnv directories, Decision output keys. Full local gate green (tsc/eslint/boundaries/vitest/check-loc/golangci- lint/go vet/go build desktop+server/go test/ls_lint) plus a full Playwright e2e run (196/196, 3 pre-existing timing-flake tests confirmed via isolated reruns, none touching a Label/StatusStamp testid or variant). docs/SPEC.md §3.8-area, goal 0001, and BACKLOG annotated; goal stays OPEN pending wave 3 (palette IA) and the owner's live sign-off. Claude-Session: https://claude.ai/code/session_018pkViCNAuZp2vBv2K9AbUh Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
<Label variant="...">pill families, five semantic variants only (success/caution/danger/neutral/identity).Test plan
🤖 Generated with Claude Code
https://claude.ai/code/session_018pkViCNAuZp2vBv2K9AbUh