figma-design-handoff
SKILL.md
Figma Design Handoff
Figma dominates design tooling in 2026, with the majority of product teams using it as their primary design tool. A structured handoff workflow eliminates design drift — the gap between what designers create and what developers build. This skill covers the full pipeline: Figma Variables to design tokens, component spec extraction, Dev Mode inspection, Auto Layout to CSS mapping, and visual regression testing.
Quick Reference
| Rule | File | Impact | When to Use |
|---|---|---|---|
| Figma Variables & Tokens | rules/figma-variables-tokens.md |
CRITICAL | Converting Figma Variables to W3C design tokens JSON |
| Component Specs | rules/figma-component-specs.md |
HIGH | Extracting component props, variants, states from Figma |
| Dev Mode Inspection | rules/figma-dev-mode.md |
HIGH | Measurements, spacing, typography, asset export |
| Auto Layout → CSS | rules/figma-auto-layout.md |
HIGH | Mapping Auto Layout to Flexbox/Grid |
| Visual Regression | rules/figma-visual-regression.md |
MEDIUM | Comparing production UI against Figma designs |
Total: 5 rules across 1 category
Quick Start
# 1. Export Figma Variables → tokens.json (using Figma REST API)
curl -s -H "X-Figma-Token: $FIGMA_TOKEN" \
"https://api.figma.com/v1/files/$FILE_KEY/variables/local" \
| node scripts/figma-to-w3c-tokens.js > tokens/figma-raw.json
# 2. Transform with Style Dictionary
npx style-dictionary build --config sd.config.js
# 3. Output: CSS custom properties + Tailwind theme
# tokens/
# figma-raw.json ← W3C Design Tokens format
# css/variables.css ← --color-primary: oklch(0.65 0.15 250);
# tailwind/theme.js ← module.exports = { colors: { primary: ... } }
// W3C Design Tokens Format (DTCG)
{
"color": {
"primary": {
"$type": "color",
"$value": "{color.blue.600}",
"$description": "Primary brand color"
},
"surface": {
"$type": "color",
"$value": "{color.neutral.50}",
"$extensions": {
"mode": {
"dark": "{color.neutral.900}"
}
}
}
}
}
// Style Dictionary config for Figma Variables
import StyleDictionary from 'style-dictionary';
export default {
source: ['tokens/figma-raw.json'],
platforms: {
css: {
transformGroup: 'css',
buildPath: 'tokens/css/',
files: [{ destination: 'variables.css', format: 'css/variables' }],
},
tailwind: {
transformGroup: 'js',
buildPath: 'tokens/tailwind/',
files: [{ destination: 'theme.js', format: 'javascript/module' }],
},
},
};
Handoff Workflow
The design-to-code pipeline follows five stages:
- Design in Figma — Designer creates components with Variables, Auto Layout, and proper naming
- Extract Specs — Use Dev Mode to inspect spacing, typography, colors, and export assets
- Export Tokens — Figma Variables → W3C tokens JSON via REST API or plugin
- Build Components — Map Auto Layout to CSS Flexbox/Grid, apply tokens, implement variants
- Visual QA — Compare production screenshots against Figma frames with Applitools
┌─────────────┐ ┌──────────────┐ ┌───────────────┐
│ Figma File │────▶│ Dev Mode │────▶│ tokens.json │
│ (Variables, │ │ (Inspect, │ │ (W3C DTCG │
│ Auto Layout)│ │ Export) │ │ format) │
└─────────────┘ └──────────────┘ └───────┬───────┘
│
▼
┌─────────────┐ ┌──────────────┐ ┌───────────────┐
│ Visual QA │◀────│ Components │◀────│ Style │
│ (Applitools,│ │ (React + │ │ Dictionary │
│ Chromatic) │ │ Tailwind) │ │ (CSS/Tailwind)│
└─────────────┘ └──────────────┘ └───────────────┘
Rules
Each rule is loaded on-demand from the rules/ directory:
Auto Layout to CSS Mapping
Quick reference for the most common mappings:
| Figma Auto Layout | CSS Equivalent | Tailwind Class |
|---|---|---|
| Direction: Horizontal | flex-direction: row |
flex-row |
| Direction: Vertical | flex-direction: column |
flex-col |
| Gap: 16 | gap: 16px |
gap-4 |
| Padding: 16 | padding: 16px |
p-4 |
| Padding: 16, 24 | padding: 16px 24px |
py-4 px-6 |
| Align: Center | align-items: center |
items-center |
| Justify: Space between | justify-content: space-between |
justify-between |
| Fill container | flex: 1 1 0% |
flex-1 |
| Hug contents | width: fit-content |
w-fit |
| Fixed width: 200 | width: 200px |
w-[200px] |
| Min width: 100 | min-width: 100px |
min-w-[100px] |
| Max width: 400 | max-width: 400px |
max-w-[400px] |
| Wrap | flex-wrap: wrap |
flex-wrap |
| Absolute position | position: absolute |
absolute |
Visual QA Loop
// Applitools Eyes + Figma Plugin — CI integration
import { Eyes, Target } from '@applitools/eyes-playwright';
const eyes = new Eyes();
await eyes.open(page, 'MyApp', 'Homepage — Figma Comparison');
// Capture full page
await eyes.check('Full Page', Target.window().fully());
// Capture specific component
await eyes.check(
'Hero Section',
Target.region('#hero').ignoreDisplacements()
);
await eyes.close();
The Applitools Figma Plugin overlays production screenshots on Figma frames to catch:
- Color mismatches (token not applied or wrong mode)
- Spacing drift (padding/margin deviations)
- Typography inconsistencies (font size, weight, line height)
- Missing states (hover, focus, disabled not implemented)
Key Decisions
| Decision | Recommendation |
|---|---|
| Token format | W3C Design Tokens Community Group (DTCG) JSON |
| Token pipeline | Figma REST API → Style Dictionary → CSS/Tailwind |
| Color format | OKLCH for perceptually uniform theming |
| Layout mapping | Auto Layout → CSS Flexbox (Grid for 2D layouts) |
| Visual QA tool | Applitools Eyes + Figma Plugin for design-dev diff |
| Spec format | TypeScript interfaces matching Figma component props |
| Mode handling | Figma Variable modes → CSS media queries / class toggles |
Anti-Patterns (FORBIDDEN)
- Hardcoded values: Never hardcode colors, spacing, or typography — always reference tokens
- Skipping Dev Mode: Do not eyeball measurements — use Dev Mode for exact values
- Manual token sync: Do not manually copy values from Figma — automate with REST API
- Ignoring modes: Variables with light/dark modes must map to theme toggles, not separate files
- Screenshot-only QA: Visual comparison without structured regression testing misses subtle drift
- Flat token structure: Use nested W3C DTCG format, not flat key-value pairs
References
| Resource | Description |
|---|---|
| references/figma-to-code-workflow.md | End-to-end workflow, toolchain options |
| references/design-dev-communication.md | PR templates, component status tracking |
| references/applitools-figma-plugin.md | Setup, CI integration, comparison config |
Related Skills
ork:design-system-tokens— W3C token architecture and Style Dictionary transformsork:ui-components— shadcn/ui and Radix component patternsork:accessibility— WCAG compliance for components extracted from Figma
Weekly Installs
8
Repository
yonatangross/orchestkitGitHub Stars
124
First Seen
7 days ago
Security Audits
Installed on
opencode8
claude-code8
github-copilot8
codex8
kimi-cli8
amp8