This work is under NDA. The client, the product and real screens aren’t shown. Every example uses a fictional product, Teamspace.
About
The team was ready to buy a new design system. I suggested fixing the one we had first.
The library wasn't the problem. The way we used it was. Light screens were built with colours from the dark theme, nobody was designing for the dark theme at all, and no component said when it should or shouldn't be used. A new library would have arrived with exactly the same gaps.
So I repaired the system, wrote the rules into every component and changed how pages reach developers. Developers now paste a page's handoff package into Claude Code and, by their own estimate, build pages 30-50% faster.
Repair the system once, then every page flows to code
The design system is repaired and documented once. After that, every page follows the same path: built as a component, described, wrapped in a handoff frame and turned into code with Claude Code. The system’s rules travel with it all the way.
1️⃣
Repair the system instead of replacing it
Buying a new system was on the table. I proposed fixing ours instead.
Why: a new system would arrive with the same missing rules, and engineering would have to migrate the whole codebase.
Trade-off: a slower, less glamorous clean-up up front, and the discipline to finish it.
2️⃣
Fix colour roles theme by theme
I audited where every colour was used and mapped each one back to the correct theme token: light screens use only light-theme roles, and every role has its dark-theme counterpart.
Why: without this, every new page kept copying the mistake into Figma and into code.
Result: the light theme became consistent, and we finished the dark theme on the same tokens. It’s in use now.
3️⃣
Make every component self-describing
Each component got a description inside Figma: when to use it, which variants exist, which ones never to use, and which colour roles it takes.
Why: the rules now live exactly where designers pick components and where an AI tool reads them.
Trade-off: descriptions are part of the system now; every change to a component includes updating its description.
4️⃣
Turn pages into components…
5️⃣
Standardise the package with an AI skill
Consistent handoff: every page ships as a described component in a handoff frame, in the same format. The light theme is consistent again, and the dark theme is complete and in use.
Fewer questions: engineers rarely need to ask how a page behaves. The component and page descriptions answer it.
Fewer review fixes: pages match the design and the system more closely on the first build.
Faster delivery: developers build pages about 30-50% faster, by their own estimate.
Reusable: the method works for any product with a design system. Only the rules file changes.
Those numbers are estimates, not measurements. If I started again, I’d track build time and review fixes per page from the first week, so I could show the change instead of describing it.
