2025-05-01 · 5 min read
Design-to-dev handoff doesn't fail in obvious ways. No one misses a deadline because Figma crashed. It fails in accumulated friction: a designer commits a frame, an engineer exports it manually, re-inspects the spacing, writes a component from scratch, discovers the JP text overflows the container, goes back to Figma, and the cycle starts over.
At Honda's AI Innovation Division, we were building a bilingual driver education platform — 19 screens, two languages (EN/JP), four separate AI products sharing a component library. The designer–engineer loop on bilingual components was taking 2–3 days per screen. Japanese text is roughly 1.5× the character width of equivalent English text. Every layout that worked in EN broke in JP. Every JP fix required another round of manual exports.
We needed to cut that loop.
The Figma MCP (Model Context Protocol) server is a bridge that lets AI tools read Figma files directly — not through screenshots or manually exported assets, but through the actual Figma API: frame structure, component tree, spacing values, color tokens, and constraint logic.
Claude Code connects to it via a config entry. Once connected, you point Claude at a Figma frame URL and ask it to generate a React component. It reads the design exactly as the designer committed it.
Setup is a single config entry in claude_desktop_config.json:
{
"mcpServers": {
"figma": {
"command": "npx",
"args": ["-y", "@figma/mcp-server@latest"],
"env": { "FIGMA_API_TOKEN": "<your-token>" }
}
}
}The pipeline then runs like this:
For the bilingual constraint specifically, we encoded text overflow as a design token rule rather than a conditional. Components were designed to handle the longest JP string by default:
// Handles both EN and JP label widths without layout breaks
const MetricLabel = ({ label }: { label: string }) => (
<span className="text-xs font-semibold text-muted truncate max-w-[120px]">
{label}
</span>
);EN strings just have more breathing room. No conditional rendering, no separate JP component variants. The component handles both languages with a single rule.
Before: a designer's Figma commit took 2–3 days to reach a deployed component — export, inspect, write, reconcile EN/JP, review with the designer, repeat.
After: the same flow takes half a day. Claude reads the frame and generates approximately 80% of the component. The engineer reviews, handles the bilingual constraint layer, and submits a PR.
That's a 3–4× reduction in the design-to-component cycle. The pipeline is now used across all four AI products in Honda's AI Innovation Division — the same component library, the same handoff flow, zero manual exports.
Three things on the roadmap:
tokens.ts at build time, no manual token updates across the systemThe point isn't to automate designers out of the loop. It's to cut the dead time between design intent and production code. The component you see in Figma should be the component in production — and now, at Honda, it is.