CLAUDE LABJP
FORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as OctoberFORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as October
Articles/Claude Code
Claude Code/2026-04-04Advanced

Claude Code + Figma MCP Advanced Guide: Automating Your Personal Design Workflow

Master the deep integration of Claude Code and Figma MCP. Complete Design.md system design, advanced implementation patterns, iteration strategies, and real-world optimization techniques.

Claude Code198Figma MCPDesign AutomationDesign-mdAdvanced3

Premium Article

The first time a Figma design turned into working components right in front of me, I stayed up far too late just watching it happen. The thrill was real — and so was the lesson that followed over the next few weeks: "the first generation runs" and "it survives real maintenance" are two very different things.

Running several apps and a handful of sites on my own as a solo developer, the time I spend bouncing between design and implementation is, quite literally, the ceiling on how fast I can ship. That is exactly why I have leaned so hard on Figma MCP.

This guide records what I learned along the way — where the tooling's boundaries actually are, how to structure Design.md, and the pitfalls that only surface once you are running it for real, with the numbers I measured. Not a summary of the docs, but the hands-on instincts I picked up myself.

Figma MCP: Technical Specifications

Figma MCP is the bridge between Claude Code and Figma files. Knowing precisely what it reads and writes is critical for reliable automation.

What Figma MCP Extracts

1. Layer Hierarchy (Complete DOM-like structure)

{
  "id": "1:2",
  "name": "Button Primary",
  "type": "component",
  "parent": "3:4",
  "visible": true,
  "children": [
    {
      "id": "5:6",
      "name": "Icon",
      "type": "instance"
    },
    {
      "id": "9:10",
      "name": "Label",
      "type": "text",
      "content": "Click me"
    }
  ]
}

This translates directly to React component structure. A Figma component becomes a React component; a text layer becomes a {children} prop.

2. Design Tokens (Full precision)

MCP returns colors, typography, spacing, sizing, effects, and grid data. Each value maps to Tailwind CSS classes or CSS variables with zero ambiguity.

3. Component Metadata (Interface-level)

{
  "componentId": "12:34",
  "componentName": "Button / Primary",
  "properties": {
    "size": {
      "type": "enum",
      "values": ["small", "medium", "large"],
      "default": "medium"
    },
    "disabled": {
      "type": "boolean",
      "default": false
    }
  }
}

This auto-generates TypeScript interfaces.

4. Interaction & Animation Definitions

Figma's Prototype panel exports interaction data that Claude Code translates to Next.js routing or CSS transitions.

What Figma MCP Cannot Extract

  • Image pixel data (only URLs)
  • Complex mask/blend modes (hand-tuning required)
  • Plugin metadata
  • External tool data (use Design.md instead)

Key mindset: MCP is "90% automation + 10% human judgment."

Generation Quality Is Decided on the Figma Side

Once I understood the spec, the place I ended up investing the most time was not the Claude Code prompt. It was how I structured the Figma file itself. The same screen, organised differently, produces wildly different code. That realisation stopped me in my tracks.

Fifteen to twenty minutes before you hand it over. That is where the leverage is.

Name Layers After Their Role

Hand over Frame 123 and Group 45 and the generated component names inherit that emptiness. Rename them by role—HeroSection, PricingCard, NavigationBar—and the component names and class names come back readable.

A layer name is the shortest documentation that reaches Claude Code.

Promote Repeating Elements to Figma Components

Buttons, cards, headers. Anything that appears more than once should be an explicit Figma component. Claude Code then splits it out as a React component. Elements you leave un-componentised tend to get generated as duplicated inline markup, even when they look identical.

Decide the Atoms → Molecules → Organisms granularity in Figma first. That small effort erases the deduplication work you would otherwise do afterwards.

Replace Absolute Coordinates With Auto Layout

Of the four, this one moved the needle most.

Figma setupGenerated codeWhen the viewport changes
Absolute coordinates (fixed x, y)position: absolute, fixed pxBreaks — hand-fixing required
Auto LayoutFlexbox / CSS GridAdapts as-is

Screens built with Auto Layout need almost no responsive rework. Screens handed over with absolute coordinates had to have their layout rewritten after generation, which rather defeated the point of generating them.

Put Non-Visual Specs in Annotations

Hover opacity. Scroll-triggered fade-ins. Behaviour that a static frame cannot show should be stated in Figma annotations.

If the "Animation & Motion" section of Design.md is the source of the values, annotations are the source of where those values apply. Only with both in place does the interaction come out matching the spec.

The Difference It Makes

AspectPrepared designUnprepared design
Component reuseSplit along the Figma hierarchyIdentical UI inlined several times over
ResponsivenessAdapts via Flexbox / GridBreaks on fixed px
Naming consistencyRole names carry throughFrame1, Group2 survive into the code
Post-generation reworkMinor tuning onlyStructural rewrite

Fifteen to twenty minutes before the handoff removes hours after it. For me this remains the highest-return step in the whole Figma MCP workflow.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
Map exactly what Figma MCP can and cannot extract, with JSON examples, so you know upfront which parts still need hand-tuning
Design Design.md as the single source of truth and build sync rules that propagate color, type, and spacing changes into Figma and code
Use measured numbers from solo development (20–30s initial generation, 2–3h → 15–30m update loops) to decide what to automate and what to keep human
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Claude Code2026-03-19
Unity × Claude Code Advanced Workflow — Shader Generation, CI/CD & Performance Optimization
Advanced Unity development with Claude Code. Auto-generate custom shaders, build CI/CD pipelines, and implement performance profiling—with production-tested code.
Claude Code2026-07-18
I Believed Plan Mode Only Read — Replacing That Belief With Machinery
Claude Code 2.1.212 fixed a bug where plan mode ran file-modifying Bash commands without the permission prompt or the SDK canUseTool callback. Here is what could happen while that assumption was broken, how to verify your own setup, and how to stop leaning on a mode name for safety.
Claude Code2026-07-18
Branch with /fork, Delegate with /subtask — Two Commands That Traded Jobs
In Claude Code 2.1.212, /fork now clones your conversation into a background session, and in-session subagents moved to /subtask. Here is how I decide between them, and the budgets worth setting before you start branching freely.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →