Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create or update Figma designs directly from a written product or UI description using the Figma MCP authoring tools. Use when the user wants a mockup, wireframe, screen, component, flow, or concept designed in Figma from text, or wants to iterate on an existing Figma file from textual feedback. Despite the name, this skill can start from a new blank file or edit an existing one. Do not use for capture-based workflows that turn a running page into Figma; use `figma-generate-design` for those, an
.claude/skills/warpdotdev-edit-figma-design/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -69% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 126% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 45% | 0% |
This skill creates or updates Figma designs directly from a natural-language description. It combines Figma library search with direct file authoring, and uses Warp's broader agent capabilities only when they are needed to make the design more product-aware or codebase-aware.
Use this skill when the user wants you to:
Do not use this skill when:
implement-designfigma-generate-designpull-figma-contentsearch_design_system, create_new_file, and use_figma are available.Follow these steps in order. Do not skip steps.
If the user is actually asking for implementation, stop and consult implement-design.
If the user wants a screenshot-to-Figma or webpage capture flow, stop and consult figma-generate-design. That skill is for capture-based workflows; this skill is for text-to-design authoring.
Both search_design_system and use_figma need a fileKey, so determine the destination before searching or editing.
If the user provided an existing Figma URL or file key:
fileKey.If the user wants a new file:
planKey, use it.whoami tool to inspect the authenticated Figma user and available plans. This is not the shell whoami command.key.create_new_file(editorType="design", fileName=..., planKey=...).fileKey and URL. Share the URL once the first usable draft is ready.Decide how much non-Figma context is actually necessary.
Stay inside Figma MCP only when the user wants an exploratory concept, wireframe, or mockup and does not ask for codebase alignment.
Use Warp agent context selectively when the user wants the design to match an existing product or design system:
AGENTS.md and/or WARP.md if they existCall search_design_system with the resolved fileKey before creating new components or styles.
Search for the most reusable assets first:
Start with the user's domain terms and any names discovered from project rules or codebase search.
If needed, narrow follow-up searches with returned library keys rather than immediately broadening the search.
Prefer reusing and importing matches over recreating them from scratch.
use_figma safelyBefore the first use_figma call, plan the edit sequence and follow the tool's required Plugin API constraints.
Keep the authoring plan incremental:
use_figma stepsUse multiple small use_figma calls instead of one giant script.
Good step boundaries:
After each step, inspect the result and only continue once the previous step succeeded.
When creating anything component-like, prefer imported library assets discovered in Step 4.
When the first usable draft is ready:
If the user asks to implement the approved design in code, stop using this skill and consult implement-design.
Use Warp's broader capabilities to reduce manual prompting, not to add unnecessary work.
Good uses of Warp agent capabilities in this skill:
Usually unnecessary for this skill:
User says: "Design a billing overview screen in Figma for our desktop app. Use our existing design system and create a new file."
Actions:
whoami if needed, then create_new_file.AGENTS.md or WARP.md, or search the codebase only if needed to understand billing terminology and existing components.search_design_system with billing-related queries.use_figma steps.User says: "Add an onboarding checklist to this Figma file: https://figma.com/design/FILEKEY/Product?node-id=1-2"
Actions:
fileKey from the existing URL.use_figma calls to add the new section.User says: "Create a first-pass mobile workout planner mockup in Figma. It doesn't need to match my codebase yet."
Actions:
search_design_system only to reuse any relevant Figma library assets.use_figma steps.Ask one direct question that resolves the destination. Do not start search_design_system or use_figma until you have a fileKey.
create_new_fileAsk the user which team or organization to use. Do not guess.
Read the project's rules first. Then use targeted codebase search to gather only the components and conventions relevant to the requested surface.
Create or update the Figma design first only if the user's request is primarily about authoring in Figma. If the request is primarily about implementation, consult implement-design instead. After the design is approved, implementation can follow in a separate step.
use_figma fails or the script is getting largeBreak the task into smaller use_figma calls. Prefer structure first, then styling, then targeted revisions.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 37,978 | 19,047 | -50% | 1 | 1 | 0% | 3,858 | 2,466 | -36% | 0 | 0 | — |
case-02 | fail→fail | 9,222 | 12,762 | +38% | 1 | 1 | 0% | 1,566 | 2,590 | +65% | 0 | 0 | — |
case-03 | fail→fail | 28,469 | 7,371 | -74% | 1 | 1 | 0% | 5,152 | 2,644 | -49% | 0 | 0 | — |
case-04 | fail→pass | 36,953 | 3,658 | -90% | 1 | 1 | 0% | 8,409 | 2,599 | -69% | 0 | 0 | — |
case-05 | fail→pass | 9,394 | 3,410 | -64% | 1 | 1 | 0% | 1,418 | 2,547 | +80% | 0 | 0 | — |
case-06 | fail→pass | 9,104 | 4,470 | -51% | 1 | 1 | 0% | 1,259 | 2,848 | +126% | 0 | 0 | — |
case-07 | fail→pass | 13,465 | 14,410 | +7% | 1 | 1 | 0% | 2,080 | 2,666 | +28% | 0 | 0 | — |
case-08 | fail→fail | 19,327 | 5,928 | -69% | 1 | 1 | 0% | 2,846 | 2,534 | -11% | 0 | 0 | — |
case-09 | fail→fail | 37,220 | 7,902 | -79% | 1 | 1 | 0% | 8,228 | 2,656 | -68% | 0 | 0 | — |
case-10 | fail→fail | 19,796 | 32,444 | +64% | 1 | 1 | 0% | 3,446 | 3,123 | -9% | 0 | 0 | — |
case-11 | fail→fail | 15,626 | 26,225 | +68% | 1 | 1 | 0% | 1,932 | 7,108 | +268% | 0 | 0 | — |
case-12 | fail→fail | 43,058 | 8,827 | -79% | 1 | 1 | 0% | 8,234 | 2,585 | -69% | 0 | 0 | — |
case-13 | fail→pass | 20,271 | 22,689 | +12% | 1 | 1 | 0% | 2,778 | 4,032 | +45% | 0 | 0 | — |
case-14 | fail→fail | 28,919 | 10,317 | -64% | 1 | 1 | 0% | 4,430 | 2,568 | -42% | 0 | 0 | — |
case-15 | fail→fail | 14,872 | 11,107 | -25% | 1 | 1 | 0% | 2,971 | 2,619 | -12% | 0 | 0 | — |
case-16 | fail→pass | 16,997 | 6,713 | -61% | 1 | 1 | 0% | 1,649 | 3,203 | +94% | 0 | 0 | — |
case-17 | fail→fail | 7,920 | 4,173 | -47% | 1 | 1 | 0% | 1,003 | 2,725 | +172% | 0 | 0 | — |
case-18 | pass→pass | 10,317 | 8,141 | -21% | 1 | 1 | 0% | 1,453 | 3,424 | +136% | 0 | 0 | — |
case-19 | pass→pass | 5,750 | 15,303 | +166% | 1 | 1 | 0% | 750 | 2,910 | +288% | 0 | 0 | — |
case-20 | fail→fail | 20,648 | 15,342 | -26% | 1 | 1 | 0% | 2,406 | 2,613 | +9% | 0 | 0 | — |
case-21 | fail→pass | 32,142 | 18,340 | -43% | 1 | 1 | 0% | 702 | 3,568 | +408% | 0 | 0 | — |
case-22 | pass→pass | 3,132 | 3,212 | +3% | 1 | 1 | 0% | 559 | 2,558 | +358% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 13 counted toward the lift figure. The other 9 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 13 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.