Русский
All projects

Radix Colors to Variables | Importing a palette into Figma variables

My role: design & vibecoding · Focus: Figma plugin, design tokens, color systems

How I built a plugin that brings the Radix scales you actually need into Figma variables — and runs on the free plan

Try It Out

Above is the prototype: the interface is live, but the variables are created in the tab’s memory and disappear when the page reloads. Below is the working plugin in the Figma Community.

Open in Figma Community

The Context and the Pain

Radix Colors is roughly thirty scales of 12 steps each, every one of them with an alpha variant. In code, wiring up the palette takes a couple of seconds. In Figma it’s manual busywork: creating hundreds of variables, sorting them into groups, and never once fumbling a name — where blue-9 and blue-A9 differ by a single character.

The plugins that already exist solve half the problem. Some create styles instead of variables — and a style can’t be dropped into tokens or switched by mode. Others generate the whole palette: thirty-odd scales, both themes, alpha — seven hundred-plus tokens, of which a product needs about a fifth. The rest you weed out by hand, carefully, because the names are nearly identical.

Hence the two jobs the plugin was written for:

Interface Decisions

How It Works Inside

Limitations and Focus

The plugin is built for import only. It deliberately has no token editing and no curve tuning. The tool should solve one routine task fast, without turning into a heavyweight editor.

The Outcome

A product’s full palette — the selected scales, alpha, the scales on canvas — comes together in a few seconds instead of half an hour of manual work. Here’s what the file looks like right after the import:

Scales on canvas: light theme on the left, dark on the right. Every swatch is bound to a variable rather than filled with a hex value

Development stopped on purpose. The absence of editing isn’t an unfinished feature, it’s a boundary: stretching it inside an importer would mean ending up with a bad editor instead of a good importer. The next step is a separate product: editing the token matrix, flexible Radix scale tuning, and adding your own swatches.