The interface used to have one accent colour. Brass, on a dark ground, for everything — links, figures, buttons, rules. It was restrained, and it was dead.
Restraint was a real position and it had a real argument behind it: let the world carry the colour and keep the frame quiet, so the diorama never competes with its own interface. That held for about as long as it took to look at the result.
The replacement is narrower, not looser
Colour is free, but only where it carries meaning.
Every resource now takes the colour of the ground it comes from. Ore is the ochre of an outcrop. Biomass is the green of the forest. Korium is the teal of a seam. Reading the bar and reading the map became the same act of recognition, which is worth more than any amount of tasteful grey.
ore #D1A352 the ochre of an outcrop
food #81BB46 what grows on arable
biomass #62BF51 the forest
korium #34BEAF the crystal in a seam
power #FBB751 the warmth of a reactor
Each is its surface’s hue lifted until it clears 6.5:1 against the bar. Merely legal — 4.5 — looked dull enough to read as broken, which is a useful reminder that an accessibility floor is a floor and not a target.
Colour is never allowed to be the only carrier
Ore, People and Credits are three warm colours. To a reader with the common red-green deficiency they are approximately one colour, and a bar that distinguishes them by hue alone distinguishes them not at all.
So each figure also has a glyph, and the glyph is the thing rather than an abstraction: a faceted chunk for ore, a head of grain for food, a canopy over a trunk for biomass, a hard-edged crystal for Korium. The hue makes it fast. The shape makes it possible.
The same rule caught two older bugs. A production rate and a shortfall were warm orange against salmon orange, separated by hue only — so a rate now always carries its sign, and the minus is what does the work. And legal against illegal placement, answered on hover with no text beside it, is a solid ring against a dashed one.
One thing that was tried and reversed
A full depot was coloured as a warning, which overrode the resource colour. Two different full resources then looked identical, and the identity turned out to be the more useful fact — so the warning moved to the rate line underneath, where it does not have to displace anything.
The palette lives in one file that the renderer, the website and the sprite-cutting tool all read. Two scripts check it: one measures a screenshot against a saturation floor, the other checks every foreground and background pair the markup actually produces. Both fail loudly, which is the only reason any of the numbers above are still true.
