The same screens, built over and over
Radial gives CDK's designers components. But products are made of screens: a record list, a sign-in flow, an edit side sheet. Every team assembled those from scratch, and every team did it a little differently.
- Designers rebuilt the same screens. Common flows were redrawn on every project instead of reused.
- Teams solved the same problem differently. With no shared reference, patterns drifted across 6 product suites.
- AI tools had nothing reliable to build from. There was no approved, machine-readable source for a CDK screen.
A library with rules, not a folder of screens
I owned this end to end: I chose the sources, set the rules, and reviewed and published every release, while Claude did the building in Figma and in code. The rules mattered most. A library people don't trust gets ignored.
Every pattern comes from an approved CDK design. No reference, no build. Nothing is invented.
Only published Radial components and tokens, so every pattern is buildable in code.
Each pattern's spec has to pass one test: an AI given only the spec builds it correctly.
Prefab screens, ready to use
The library launched with 16 patterns and 40 screens, from a basic layout shell to complete flows like record management and sign-in. Designers drop one in and swap in their content instead of starting from a blank canvas.
Every pattern, one search away
A library only helps if people use it, so I shipped Radial Patterns, a Figma plugin available to every designer in the org. It works where designers already are.
- Find it fast. Forgiving search and filters surface the right pattern in seconds.
- Insert a flow or one screen. Whole flows go in with one click, or pick just the screens you need.
- Ask for what's missing. Requests go straight to the team's channel, where the work happens.
The calls that shaped it
Insert live components, not copies
The plugin places real instances from the library. When a pattern improves, every file using it can pick up the change. Copies would go stale the day they were pasted.
Keep the plugin simple
No servers, no accounts, no tracking. Nothing to host or secure. The trade-off is that new patterns ship with plugin releases, so I release in planned batches.
Ship partial patterns, clearly labeled
I reversed my own rule of holding incomplete patterns back. Patterns waiting on a missing component now ship marked "Partial", so designers can use and react to them sooner.
Narrow the scope on purpose
An early quarterly plan was far too large. I cut it to two priorities, mobile patterns and the components they need. Fewer things, done properly.
Where things stand
The library and plugin are live for every designer at CDK. The library grows release by release and is on track to pass 30 patterns by the end of the quarter, with mobile next.
| Before | After |
|---|---|
| Common screens rebuilt on every project | Approved screens inserted in seconds |
| Each team solved patterns its own way | One shared, approved version of each pattern |
| Copies drifted from the design system | Live library components that stay current |
| Nothing approved for AI to build from | Specs an AI tool can build from correctly |