←Back to Blog
AIFigmaDesign TokensDesign Systems

The Skill That Builds a Design Token System in 15 Minutes Instead of Hours of Work

✎Inesa Kibkaloβ–¦July 2026β—·7 min read
The Skill That Builds a Design Token System in 15 Minutes Instead of Hours of Work

Building design tokens by hand is four separate tasks that each eat time on their own. I built a Claude skill that does all four β€” and, unlike Claude's first attempts, actually binds every layer together.

The Problem

Building design tokens by hand is a process made up of four separate tasks, and each one eats time on its own:

1Deriving every shade from the accent and neutral colors β€” breaking one hex value into a full 12-step scale (50 to 950) that reads as coherent, not a random gradient.
2Building the color semantics β€” turning raw shades into purpose-named roles like background/primary, content/secondary, border/tertiary, action/primary.
3Rebuilding the spacing and sizing system from zero, every project β€” even though the underlying logic barely changes from one project to the next.
4Binding typography variables into text styles β€” attaching font-family, size, line-height, and weight so changing one variable updates every instance across the layout.

A separate, harder task comes up once a design is already approved: pulling every color, spacing value, and font already used in the finished layout and converting them into variables and styles β€” so the system can scale from there.

I tried delegating this to Claude. The first result was decent β€” it genuinely knew how to create variables. Just not the way I was used to. The biggest problem: it created text styles but didn't bind them to typography variables. The style existed on its own, and changing a font or size elsewhere no longer updated it. In practice β€” not a token system, just a set of values that looked like one.

So I decided to build a skill that makes creating variables and text styles seamless β€” where every variable is bound to another exactly the way it should be.

What a Skill Actually Is

Skills in Claude aren't just a prompt. They're a container of instructions, code examples, and rules that Claude loads into context and applies consistently β€” instead of reinventing the approach every time. My figma-design-tokens skill builds a 4-layer token architecture in Figma through the official Figma MCP:

1Color / Global Tokens β€” raw hex values, full color scales, no bindings.
2Color / Semantic Tokens β€” purpose-named colors (background, content, border, action, feedback), aliased to the globals.
3Size Tokens β€” spacing, radius, sizing, opacity.
4Typography Tokens β€” font-family, font-weight, sizes, line-height.
5Text Styles β€” every property bound to a variable via setBoundVariable.
The core principle: nothing in Semantic or in Styles has a hardcoded value. Everything points to a variable. Change one primitive color and the whole design updates. Switch a mode — light→dark, desktop→mobile — and the whole interface switches.

This is exactly what Claude didn't do out of the box: it understood variables, but it didn't understand that a text style without a binding isn't a token β€” it's just a fixed number.

How I Built It

I didn't write the skill from scratch as theoretical documentation of how it should work. I showed it how I actually do it myself.

1Step 1 β€” gave Claude my already-built variable system and asked it to read its structure: groups, naming, how many steps per scale. This became the skill's basic skeleton.
2Step 2, the test β€” asked it to recreate the same structure with different input colors. It even added font variables I hadn't asked for, but text styles still existed separately from typography variables β€” the same problem I'd started with.
3Step 3 β€” showed a concrete example of a properly bound text style, and asked it to repeat the approach with different data. Once it applied the binding reliably, I added the next layer: light/dark themes and desktop/mobile modes.

This came with nuances I had to spell out separately. For example: in dark mode, surface elevation means a lighter background, not a shadow like in light mode. Borders on a dark background are white rgba at low opacity, not solid gray. The accent color in dark mode gets bumped one step lighter, or it gets lost against the background. Without these rules, the result was technically "working" but looked like a simple color inversion rather than a considered dark theme.

I now use the skill in two scenarios: there's an already-approved concept that needs to become a system, or I'm starting fresh with only brief colors and the skill breaks them into a scale, picks neutrals, and builds the semantics itself. What used to take hours β€” especially picking a color scale and distributing it across steps β€” now takes roughly 15 minutes.

How to Apply It

A few example prompts, for the scenarios I use most:

"Here's the brand color #0057FF and the secondary color #16A34A. Build a full token system: global palette, semantic tokens, spacing, typography. Add dark mode."
"Read this layout. Extract the colors, spacing, and typography already used, and build a full token system with semantics based on them."
"Add a mobile mode to Size Tokens and Typography Tokens. Keep body text unchanged, scale down display and headline using the principle we've already used."

This isn't a solution for everything β€” the skill knows my system and naming well, so on a project with different conventions it needs a bit of retraining first. But for my own workflow, this is the rare case where an hour-long routine became a 15-minute task, without losing quality in the result.

← Back to Blog