Figma To Weaverse logo

Figma To Weaverse

Organization
Weaverse
figma-to-weaverse

Use when recreating a Figma design as Hydrogen + Weaverse pages in this repo — turning a Figma file, frame, or flow into reusable Weaverse sections. Triggers on a figma.com URL, "build this design", "implement this Figma", or "create the storefront from the design". The Figma counterpart of cloning-websites-to-weaverse.

Overview

PublisherWeaverse
Repositoryshopify-hydrogen-skills
Skill namefigma-to-weaverse
Stars
87
Forks
26
Bundled files
1
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Weaverse on GitHub. Read the source before you install it.

Installation

Install the Figma To Weaverse AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Weaverse/shopify-hydrogen-skills.git /tmp/shopify-hydrogen-skills
mkdir -p .claude/skills
cp -r /tmp/shopify-hydrogen-skills/skills/figma-to-weaverse .claude/skills/figma-to-weaverse
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Figma To Weaverse in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Figma To Weaverse on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Figma To Weaverse is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Figma to Weaverse

Turn a Figma design into maintainable Weaverse pages. This is the Figma input adapter — the sibling of cloning-websites-to-weaverse, but the source is a Figma file instead of a live URL. Both adapters converge on the same downstream skill, generating-weaverse-project-json.

Figma file / frame ─→ figma-to-weaverse ─→ generating-weaverse-project-json ─→ import / content API
   (Figma MCP)        (tokens + manifest + preview)        (project JSON)

The two adapters share the same downstream rules. Section matching, deep schema verification, the content manifest, the clone preview route, and the brand-guideline conflict rule are identical to cloning-websites-to-weaverse — read that skill for the full matching logic. This skill only replaces the extraction layer (Figma MCP instead of Firecrawl) and adds Figma-specific gotchas.

When to Use

  • A figma.com URL (file, frame, or selection) is the source of a page or storefront
  • "Implement this design in Weaverse", "build the homepage from Figma"
  • Multi-frame flows that map to multiple Weaverse pages

Do not use it for live-website cloning (use cloning-websites-to-weaverse) or tiny copy edits.

Required Inputs

  • Figma file/frame/node URL (or current selection)
  • .guides/brand-guideline.md
  • sections.md
  • app/weaverse/components.ts

Required Outputs

Same three deliverables as the website cloning skill:

  1. Content manifest — per-section table of real asset URLs (from Figma asset export), text, links, Shopify refs, media types.
  2. Clone preview route — a single app/routes/clone-preview.$page.tsx rendering the full design as React + Tailwind, section-marked, brand-adjusted. User must approve this before section decomposition.
  3. Design spec — section mapping, schema boundaries, interaction model, token mapping.

Extraction with Figma MCP (MCP-first)

Use the Figma MCP tools. They return structured design data — more precise than scraped HTML for tokens and layout, but weaker on real interaction (a static design has no runtime behavior).

Before any use_figma write call, load the figma-use skill. For reads below, no write is needed.

  1. Map the structureget_metadata on the file/frame to get the node tree. Top-level frames/sections become your section-splitting boundaries (the Figma equivalent of HTML section markers).
  2. Extract design tokensget_variable_defs for colors, typography, spacing, radius. These map directly into project.config.theme in the JSON generator (colors → colorPrimary/colorText/…, type scale → bodyBaseSize/h1BaseSize/…). This is the biggest advantage over web scraping — tokens are explicit, not inferred.
  3. Read layout + content per frameget_design_context on each section frame for layout structure, auto-layout direction, text content, and component usage. Auto-layout (horizontal/vertical, wrap, spacing) tells you composition (side-by-side vs stacked vs grid).
  4. Export assetsdownload_assets (or get_screenshot of leaf image nodes) to get real image/icon URLs. These populate the content manifest's image columns. There is no "video src" to extract like in HTML — flag motion/video intent from frame names or prototype notes instead.
  5. Visual referenceget_screenshot of each frame for the approval checkpoint and for verifying the clone preview matches.
  6. Design system reusesearch_design_system / get_libraries when the file uses a component library, to understand reusable component intent.

Plugin fallback

If the MCP can't reach the file or can't export a specific asset (e.g. a flattened group, an unusual export setting), fall back to a Figma agent plugin export and read its output file. MCP is the primary path; use the plugin only to fill a concrete gap, and note in the manifest which assets came from the fallback.

Workflow

  1. Read .guides/brand-guideline.md first. Brand guideline beats the design on visual conflicts.
  2. Ensure sections.md exists and is current before section matching.
  3. Extract the design with Figma MCP (steps 1–6 above). Save raw context/exports under .figma/<file>-<frame>.json (mirrors the cloning skill's .firecrawl/).
  4. Map tokens — turn get_variable_defs output into a theme token table for project.config.theme.
  5. Build the content manifest — required deliverable, same columns and rules as the cloning skill. Asset URLs come from download_assets, not from guessing.
  6. Generate the clone preview route at app/routes/clone-preview.$page.tsx — React + Tailwind, real assets, brand-adjusted tokens, {/* === BLOCK NAME === */} markers per frame.
  7. User approval checkpoint — STOP and wait. Present the preview URL + a summary (frame/section count, brand overrides, gaps). Do not proceed until the user explicitly approves. Iterate the preview on feedback.
  8. Decompose & match — split into section-sized blocks (one per top-level frame, usually). Classify media type, composition, layout mechanism, interaction. Then match against sections.md using the layout matching priority and deep structural verification defined in cloning-websites-to-weaverse (composition → layout → interaction → content model; then read the candidate section's source to verify aspect ratios, responsive images, split ratios, child types, animation, overlays). Classify as REUSE_EXISTING, ADAPT_EXISTING, or CREATE_NEW_REUSABLE_SECTION.
  9. Implement with clean schema boundaries: shared tokens → app/styles/app.css; sitewide controls → app/weaverse/schema.server.ts; section-local → section schema. Register new sections in app/weaverse/components.ts.
  10. Hand off the design spec + content manifest + token table to generating-weaverse-project-json.
  11. Verify desktop and mobile, then delete the temporary preview route once the Weaverse page matches the approved preview.

Figma-specific differences from website cloning

AspectWebsite (Firecrawl)Figma (MCP)
Design tokensinferred from CSS/computed stylesexplicit via get_variable_defs — map directly to theme
Section boundariesHTML section markers, slider/grid classestop-level frames / auto-layout containers from get_metadata
Compositionread from HTML positioningread from auto-layout direction/wrap/spacing
Assetsimage/video URLs in HTMLdownload_assets exports; no real video src
Interactionreal runtime behavior in HTMLnone at runtime — infer from frame names, prototype links, designer notes; do not invent interactions the design doesn't imply
Responsive variants<picture> / breakpoint classesseparate desktop/mobile frames if the designer made them; otherwise one frame

Red Flags

  • Skipping the approval checkpoint — same rule as website cloning: the user must approve the clone preview before section decomposition.
  • Inventing interactions — a static Figma frame has no carousel autoplay or scroll behavior unless the prototype or notes say so. Don't classify a frame as a slider just because it shows multiple cards. Confirm from prototype links or frame naming.
  • Ignoring Figma variablesget_variable_defs is the cleanest token source you'll ever get. Hardcoding colors/sizes when variables exist throws away the main Figma advantage.
  • Guessing asset URLs — export real assets with download_assets; mark MISSING — [describe] in the manifest when an export fails, don't substitute a placeholder.
  • One giant bespoke section per frame — decompose into reusable sections; reuse the registry first.
  • Re-deriving the matching rules — the section-matching priority and deep schema verification live in cloning-websites-to-weaverse. Follow them; don't reinvent a looser version.
  • Treating mobile/desktop frames as two pages — they're responsive variants of the same section; map to imageMobile/imageDesktop or breakpoint logic, not separate pages.
  • Leaving the preview route in the repo — delete it after the Weaverse page is verified.

Related skills

  • cloning-websites-to-weaverse — the website input adapter; owns the shared section-matching, manifest, and preview rules this skill reuses.
  • generating-weaverse-project-json — downstream; turns this skill's spec + manifest + token table into import-ready JSON.
  • weaverse-content-api — push or update content into the live project after import.
  • figma-use / figma-generate-design — Figma MCP plugin skills; load figma-use before any use_figma write call.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Figma To Weaverse AI skill do?

Use when recreating a Figma design as Hydrogen + Weaverse pages in this repo — turning a Figma file, frame, or flow into reusable Weaverse sections. Triggers on a figma.com URL, "build this design", "implement this Figma", or "create the storefront from the design". The Figma counterpart of cloning-websites-to-weaverse.

Why use Figma To Weaverse on TypingMind?

Because you install it once and use it with any model. Figma To Weaverse is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Figma To Weaverse in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Weaverse/shopify-hydrogen-skills/tree/main/skills/figma-to-weaverse. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Figma To Weaverse?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Figma To Weaverse?

As many as you like. As long as a model supports skills, you can use Figma To Weaverse with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Figma To Weaverse AI skill free?

It is published on GitHub by Weaverse. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇