Rexx shipped fast on hardcoded values. This is how I gave it one token system that Figma and Swift share. Designer and developer · 2 weeks · Solo
The problem
The architecture
I created a two-layer token system in Figma: primitives (raw values like grayscale and spacing scales) and aliases (semantic tokens like colorBgBase and radiusLarge that reference primitives and support light and dark modes).
Then I mirrored the same architecture in Swift. Using the Figma MCP server, I connected the two so design decisions and code stay in sync.
Definition of done
A component wasn't considered token-connected until three things were true: the Figma layer referenced an alias variable (not a raw hex), the corresponding Swift enum value existed in RexxStyles.swift, and the component rendered correctly in both light and dark mode.
The goal wasn't a 200-component library. It was a foundation where every design decision has one source of truth, and that source compiles.
The migration
I migrated in two passes: the high-priority screens first, then everything else. Nineteen view files, and every line that came out had a line going in. Literals out, named tokens in.
Reflection
Building fast is the right call when you're validating a product. But there's a moment where speed becomes debt. Recognizing that moment and investing in the foundation, without slowing down what users see, is the design engineering skill that doesn't show up in a mockup.