Restore the gold accent, and write down the states - #5
Merged
Conversation
docs/09-design-system.md specified Aseprite's gold accent with "blue only for links". The stylesheet used #2962ff and verify-ui.py asserted "accent is no longer gold". Code and checker agreed; the document whose whole purpose is preventing drift was the thing that had drifted, and --link (#6e9adb) had become a second blue sitting eight hue-degrees from the accent while doing an unrelated job. Gold wins. Chrome belongs to the audience, which lives in Aseprite; OpenFront fidelity is carried by the format, the codec and the preview, not by the accent. verify-ui.py now fails on #2962ff, so the round trip is not repeated. Four status messages were writing colour as inline hex — style="color:#e5674b" — beside a --danger token that already held that job. They now use the tokens, and the checker rejects inline colour in that position. States were the part of the system nobody had written down, which is why they drifted: the document specified tokens, radius, density and layout, and said nothing about focus, disabled, hover, pressed, success or error. All eight are specified now and six are mechanically checked. Three other claims in the document were false and are corrected: the default interface scale is 1.5x rather than 2x, the preview holds a column of its own, and Tab collapses three columns rather than two. The gutters between them are drag-to-resize, which went unmentioned entirely. The icon's duotone band moves to the same gold. It draws only the ink in colour now — giving the band its own ground introduced a third grey between paper and ink and muddied the tile at small sizes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UCrKKTD2mwHx8Fm1EnJiQ3
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.
Phase 1 of the v0.2.0 plan — design consistency.
The contradiction
docs/09-design-system.mdspecified Aseprite's gold accent with "blue only for links". The stylesheet used#2962ff, andtools/verify-ui.pyasserted "accent is no longer gold". Code and checker agreed with each other; the document whose entire purpose is preventing drift was the thing that had drifted — and--link:#6e9adbhad become a second blue eight hue-degrees from the accent, doing an unrelated job.Gold wins. Chrome belongs to the audience, which lives in Aseprite; OpenFront fidelity is carried by the format, the codec and the preview, not by the accent colour. The checker now fails on
#2962ff, so the round trip does not happen a third time.What else this found
Reconciling one claim exposed four more that were false:
Tabcollapses both columnsAnd four status messages wrote colour as inline hex (
style="color:#e5674b") beside a--dangertoken that already held that job.States
States were the part of the system nobody wrote down, which is exactly why they drifted — the document covered tokens, radius, density and layout, and said nothing about focus, disabled, hover, pressed, success or error. All eight are specified now, six are mechanically checked, and the checker rejects inline colour where a status token belongs. I verified that last check catches the old form rather than passing vacuously.
Icon
The duotone band moves to the same gold. It now colours only the ink — giving the band its own ground introduced a third grey between paper and ink and muddied the tile at small sizes.
Verification
./tools/verify-all.shgreen, including six new state checks. Rendered the app and confirmed the accent reads as one colour across the tool rail, zoom segment, Export, the active layer row, the alpha thumb and the palette selection.🤖 Generated with Claude Code
https://claude.ai/code/session_01UCrKKTD2mwHx8Fm1EnJiQ3