mirror of
https://github.com/hanzoai/desktop.git
synced 2026-10-30 14:58:42 +00:00
theme.ts already recorded this decision for the chrome — "There is no accent constant… the purple that used to live here was a literal on a register documented as monochrome." State is where the hues survived it: nine files each mapped state to colour on their own, in green, amber, orange, yellow, cyan and red, and on this palette every one resolves to one grey. --color-brand is hsla(0,0%,100%) and even --color-red is hsla(0,0%,60%), so four hues rendered as one value: an indicator that says nothing. hanzo/status.ts carries it instead, in two things the ramp can express. Luminance carries degree — settled is brightest, in motion is the middle, at rest is dimmest, which is the order a list is scanned in and always beside the state's own name. Inversion carries attention and is spent once, on the one step a person has something to do about: the brand as a fill with the ink that reads on it. Spending it anywhere else is what made a healthy machine the brightest thing on screen. Information is not a state and takes no step: two cyan callouts become a lifted surface from the ramp. A warning tint at 5% alpha was the whole of a border-0 alert's signal and is indistinguishable from the ground here, so the surface lifts and the icon carries it. The one yellow call to action was already an inversion — yellow fill, black ink — and stays one without the hue. bin/palette.mjs is the enforcement, and it reads the SOURCE because the theme cannot enforce itself: Tailwind 4's @theme OVERRIDES tokens rather than replacing the set, so a scale commented out of it keeps Tailwind's default. Measured in the bundle, --color-cyan-400 is defined and .text-cyan-400 is emitted. 177 chromatic and 7 literal today, ratcheting down, failing when either rises. Colours named in comments do not count — the first run reported the hsla in a note written to explain a conversion, which would make the gate argue against documenting the rule it enforces. Co-authored-by: Hanzo Dev <[email protected]>
6 lines
60 B
JSON
6 lines
60 B
JSON
{
|
|
"chromatic": 177,
|
|
"literal": 7,
|
|
"achromatic": 326
|
|
}
|