What it is
A Figma library is where most of a design system’s day-to-day life happens. When its architecture is good, designers move fast and the output maps cleanly to code. When it isn’t, every screen is a fight with the wrong variants.
How I approach it
I refactor libraries toward modern Figma: variables for the values, component properties and single-component variant sets instead of a combinatorial explosion of frames, and clean slot structures for composition. The goal is fewer components that each do more, bound to variables so a theme change ripples through automatically.
When a task is too repetitive or error-prone to do by hand — auditing token usage, bulk-renaming, syncing variables, QA passes — I build a custom plugin for it with Vite and TypeScript, so it’s testable and the team can keep running it after I’m gone.
Common problems I solve
- Variant sets that have ballooned into hundreds of permutations nobody can navigate.
- Hard-coded values everywhere because the library predates Figma variables.
- Manual, repetitive design-ops work that eats hours every sprint.
- Figma and code libraries that look the same but behave differently.
On one large design system, a library refactor like this cut a core component’s variants by roughly 80%.
