How recognising design semantics transformed my colour system
Note: All colour names and values in this article are fictional substitutes to protect brand identity. The actual implementation uses a vibrant fruit-inspired palette.
Why does defining a brand colour require 121 CSS definitions?
Modern design systems promise consistency and maintainability, yet we find ourselves managing sprawling colour scales (50, 100, 200, through 950 for every hue). We duplicate these scales for dark mode. We add opacity modifiers for states. What started as 11 carefully chosen brand colours becomes hundreds of CSS custom properties, most of which never get used.
During my Tailwind 4 migration, I stumbled into a different approach. Not through grand architectural planning, but through bidirectional exploration (working top-down until it broke, then bottom-up until it broke, then switching again). What emerged was a revelation: design has its own semantics, separate from UI semantics. Understanding this distinct