Cross-market products need a configurable semantic colour map
Aliases: semantic colour table · colour mapping table
What it is
Up/down has to follow the board, festival skins have to follow the rite, error red is usable almost everywhere. Hard-wire those facts into components and every new market forks the UI. A cross-market product needs a configurable semantic colour map: components ask for “gain”, “festive”, “error”; hue is filled from a table loaded by market or account. You change the table, not the button.
This is not translating the whole UI, and it is not a separate visual edition per country.
Why it happens
Hard-coding welds “green = up” into the paint function, so regional difference becomes code difference and regression cost grows with the number of markets. A map splits the semantic key from the value: the same candle fetches green-for-up from the New York table and red-for-up from the Shanghai table; the same blessing container is neutral on the default table and only fills red on a new-year table. Maps can also stack — market default, then an account override — so a trader can follow the board they trained on without recoating the whole site.
Keys have to be semantic, not colour names. If the table says green → another green, components are still asking for a colour, and a new market still requires component edits. If the table says gain → a colour, the component is actually detached from hue.
Where it stops holding
- Brand primaries usually stay off this table; identity should not hop to another primary per market. What is configurable are semantic slots and occasion skins.
- Decorative illustration with no semantics does not walk this table, or the illustration will be mapped as if it were a state.
- Tables can be wrong: a Shanghai user issued the New York ticker map is worse off than with a hard-coded pair, because the UI looks “already local”. Show the current map, and offer one tap back to the market default.
- Colour-vision-deficient alternatives (shape, pattern) are another table. Do not fold them into the cultural map.
Applying it
- List keys that must move with region or account: gain / loss, festive / mourning, and the truly global locks error / success.
- Components bind to keys only; values live in the map and in theme generation.
- A new market fills the table and spot-checks key pages. Do not clone the whole UI project.
- How to check: in one build, swap only the map, switch markets, and watch quotes, blessing and error. They should change as intended; the brand primary should not. If a component does not move, a value is still welded in.