Figma Bridge
Designpowers produces excellent specifications — briefs, principles, layout decisions, token systems, copy. But designers think visually, and a spec is not a thing you can look at and feel. This skill closes the loop: it turns the team's decisions into a visual artefact the designer can see and manipulate, and it pulls existing visual work back into the workflow.
It bridges both directions:
- Code/spec → design ("make it real"): push design-lead's visual decisions, the design system, or the built code into real Figma frames
- Design → code/spec ("read this in"): pull an existing Figma file in as the artefact for
design-review, or as the source for token-architecture / design-system-alignment
When Figma isn't available, it degrades gracefully to a clickable HTML prototype — no designer is left without something to look at.
When to Use
- At the screenshot checkpoint (after
design-builder) — give the designer a manipulable artefact, not just a screenshot of code
- At handoff — sync the final design into Figma so engineering and design share one source
- In
design-review — when the artefact to review is a Figma file or link, pull it in here
- As a design-system source — when the user has a Figma library, extract its tokens/components to seed
token-architecture and design-system-alignment
- On request — "show me", "put this in Figma", "can I see it", "make it real"
Prerequisite: Detect Figma Availability
Check whether the Figma MCP tools are available in this environment (tools named get_design_context, get_screenshot, use_figma, create_new_file, generate_figma_design, etc.).
- If available: use the Figma direction below.
- If not available: skip to the HTML Prototype Fallback. Do not block the workflow waiting for Figma.
⚠️ Mandatory before any Figma write: load Figma's own usage guidance first — invoke the /figma-use skill if present, otherwise read the skill://figma/figma-use/SKILL.md MCP resource. Writing to Figma via use_figma without it causes common, hard-to-debug failures. The same applies to /figma-generate-design (capturing a web view), /figma-generate-library (building a design system in Figma), and /figma-code-connect (mapping components). This skill orchestrates when to bridge; those Figma skills govern how to write.
Direction A: Spec/Code → Figma (make it real)
Turn what the team designed into frames the designer can manipulate.
A1. Assemble the visual source of truth
Gather from design-state.md and the build:
- design-lead's layout, colour, typography, and component decisions
- The token system (from
token-architecture / design-system-alignment) — these become Figma variables/styles
- The content-writer's exact strings — use them verbatim, never lorem ipsum or rewrites
- The built code, if
design-builder has run
A2. Choose the right tool
| Situation |
Tool |
Notes |
| Building a screen from scratch / from spec / from intent |
use_figma |
The default for all Figma writes. Build from design-system components where they exist |
| Capturing an existing running web view into Figma for the first time |
generate_figma_design + use_figma in parallel |
generate_figma_design grabs a pixel-perfect screenshot; use_figma rebuilds it from real components; refine against the screenshot |
| A brand-new file is needed |
create_new_file |
Then use_figma to populate it |
| Pushing the token system into Figma |
use_figma |
Create variables/styles first, then build components that reference them — so the designer can re-theme |
Always build from the design system's tokens and components when they exist, so the result is editable and on-system — not a flat picture.
A3. Reconnect (optional but recommended)
If the project has real code components, map them to the Figma components via Code Connect (/figma-code-connect, add_code_connect_map) so design and code stay linked for the next round.
A4. Show and hand back
Screenshot the result (get_screenshot), show it to the designer, and record the Figma file key/URL in design-state.md. The designer can now manipulate it directly — and any changes they make can be pulled back via Direction B.
Direction B: Figma → Spec/Code (read it in)
Pull existing Figma work into the workflow.
B1. Get a node-specific URL
The design-to-code tools need a node id. If the user gives a bare file URL, ask for a URL with ?node-id=… (or a specific frame selection). Extract fileKey and nodeId from the URL.
B2. Pull context
get_design_context — reference code + screenshot + metadata for the node (the primary design-to-code call)
get_screenshot — visual only, when you just need to see it (e.g., feeding design-review)
get_metadata — structure/layer tree for large files
get_variable_defs / get_libraries — extract tokens and library structure when seeding a design system
B3. Route the result
- For review: hand the screenshot + context to
design-review as the artefact
- For a design-system source: feed variables and components into
token-architecture and design-system-alignment
- For a build: adapt the reference code to the project's stack via
design-builder — adapt, don't paste; the returned code is reference, not production
HTML Prototype Fallback (no Figma)
When Figma tooling isn't available, produce a single self-contained, clickable HTML prototype so the designer still gets something real to look at and click through:
- Build one HTML file using the team's tokens (as CSS custom properties), the content-writer's exact copy, and design-lead's layout decisions
- Make the key task from the brief actually clickable — real states, not a flat mock
- Keep it accessible by construction — semantic HTML, visible focus, contrast that meets AA,
prefers-reduced-motion honoured (this is Designpowers; the prototype is not exempt)
- Open/screenshot it and show the designer; save it alongside
design-state.md
This is a viewing-and-feedback artefact, not the shipping build — but it's real enough to react to, which is the whole point.
Rules
- Never fabricate content. Use the content-writer's strings. If none exist, mark placeholders clearly for content review.
- Build on-system. Use tokens and components so the artefact is editable, not a flattened picture.
- Accessibility carries over. Whatever you produce — Figma frames or HTML — meets the same inclusive standard as the rest of the pipeline. A visual artefact is not an excuse to drop AA.
- Record the link. Always write the Figma file key/URL or prototype path into
design-state.md so the team and the next session can find it.
- Adapt, don't paste. Code returned from
get_design_context is reference; fit it to the project's stack and standards.
Integration
- Invoked at: the Screenshot Checkpoint and Handoff in
using-designpowers; from design-review (Figma artefacts); on user request
- Reads from:
design-state.md, design-lead decisions, token-architecture, content-writer output, design-builder code
- Uses: the Figma MCP tools (gated by
/figma-use and the other Figma skills) when available; HTML fallback otherwise
- Feeds:
design-review (artefact), design-system-alignment / token-architecture (extracted tokens), design-builder (reference code)
- Records to:
design-state.md (artefact link/path)
1---2name: figma-bridge3description: Use to turn Designpowers' markdown specs into something a designer can actually SEE and manipulate, and to pull existing Figma work back in. Bridges in both directions — push design-lead's visual decisions or built code into real Figma frames (code-to-design), and pull a Figma file in for review or as a design-system source (design-to-code). Falls back to a clickable HTML prototype when Figma isn't available. Invoke at the screenshot checkpoint, at handoff, when reviewing a Figma link, or whenever the user says "show me", "put this in Figma", or "make it real"4---56# Figma Bridge78Designpowers produces excellent *specifications* — briefs, principles, layout decisions, token systems, copy. But designers think visually, and a spec is not a thing you can look at and feel. This skill closes the loop: it turns the team's decisions into a **visual artefact** the designer can see and manipulate, and it pulls existing visual work back into the workflow.910It bridges both directions:1112- **Code/spec → design** ("make it real"): push design-lead's visual decisions, the design system, or the built code into real Figma frames13- **Design → code/spec** ("read this in"): pull an existing Figma file in as the artefact for `design-review`, or as the source for `token-architecture` / `design-system-alignment`1415When Figma isn't available, it degrades gracefully to a **clickable HTML prototype** — no designer is left without something to look at.1617## When to Use1819- **At the screenshot checkpoint** (after `design-builder`) — give the designer a manipulable artefact, not just a screenshot of code20- **At handoff** — sync the final design into Figma so engineering and design share one source21- **In `design-review`** — when the artefact to review is a Figma file or link, pull it in here22- **As a design-system source** — when the user has a Figma library, extract its tokens/components to seed `token-architecture` and `design-system-alignment`23- **On request** — "show me", "put this in Figma", "can I see it", "make it real"2425## Prerequisite: Detect Figma Availability2627Check whether the Figma MCP tools are available in this environment (tools named `get_design_context`, `get_screenshot`, `use_figma`, `create_new_file`, `generate_figma_design`, etc.).2829- **If available:** use the Figma direction below.30- **If not available:** skip to the **HTML Prototype Fallback**. Do not block the workflow waiting for Figma.3132> ⚠️ **Mandatory before any Figma *write*:** load Figma's own usage guidance first — invoke the `/figma-use` skill if present, otherwise read the `skill://figma/figma-use/SKILL.md` MCP resource. Writing to Figma via `use_figma` without it causes common, hard-to-debug failures. The same applies to `/figma-generate-design` (capturing a web view), `/figma-generate-library` (building a design system in Figma), and `/figma-code-connect` (mapping components). This skill orchestrates *when* to bridge; those Figma skills govern *how* to write.3334## Direction A: Spec/Code → Figma (make it real)3536Turn what the team designed into frames the designer can manipulate.3738### A1. Assemble the visual source of truth3940Gather from `design-state.md` and the build:41- **design-lead's** layout, colour, typography, and component decisions42- The **token system** (from `token-architecture` / `design-system-alignment`) — these become Figma variables/styles43- The **content-writer's** exact strings — use them verbatim, never lorem ipsum or rewrites44- The **built code**, if `design-builder` has run4546### A2. Choose the right tool4748| Situation | Tool | Notes |49|-----------|------|-------|50| Building a screen from scratch / from spec / from intent | `use_figma` | The default for all Figma writes. Build from design-system components where they exist |51| Capturing an existing **running web view** into Figma for the first time | `generate_figma_design` **+** `use_figma` in parallel | `generate_figma_design` grabs a pixel-perfect screenshot; `use_figma` rebuilds it from real components; refine against the screenshot |52| A brand-new file is needed | `create_new_file` | Then `use_figma` to populate it |53| Pushing the **token system** into Figma | `use_figma` | Create variables/styles first, then build components that reference them — so the designer can re-theme |5455Always build from the design system's tokens and components when they exist, so the result is editable and on-system — not a flat picture.5657### A3. Reconnect (optional but recommended)5859If the project has real code components, map them to the Figma components via **Code Connect** (`/figma-code-connect`, `add_code_connect_map`) so design and code stay linked for the next round.6061### A4. Show and hand back6263Screenshot the result (`get_screenshot`), show it to the designer, and record the Figma file key/URL in `design-state.md`. The designer can now manipulate it directly — and any changes they make can be pulled back via Direction B.6465## Direction B: Figma → Spec/Code (read it in)6667Pull existing Figma work into the workflow.6869### B1. Get a node-specific URL7071The design-to-code tools need a node id. If the user gives a bare file URL, ask for a URL with `?node-id=…` (or a specific frame selection). Extract `fileKey` and `nodeId` from the URL.7273### B2. Pull context7475- `get_design_context` — reference code + screenshot + metadata for the node (the primary design-to-code call)76- `get_screenshot` — visual only, when you just need to see it (e.g., feeding `design-review`)77- `get_metadata` — structure/layer tree for large files78- `get_variable_defs` / `get_libraries` — extract tokens and library structure when seeding a design system7980### B3. Route the result8182- **For review:** hand the screenshot + context to `design-review` as the artefact83- **For a design-system source:** feed variables and components into `token-architecture` and `design-system-alignment`84- **For a build:** adapt the reference code to the project's stack via `design-builder` — adapt, don't paste; the returned code is reference, not production8586## HTML Prototype Fallback (no Figma)8788When Figma tooling isn't available, produce a **single self-contained, clickable HTML prototype** so the designer still gets something real to look at and click through:89901. Build one HTML file using the team's **tokens** (as CSS custom properties), the **content-writer's exact copy**, and design-lead's layout decisions912. Make the key task from the brief actually clickable — real states, not a flat mock923. Keep it accessible by construction — semantic HTML, visible focus, contrast that meets AA, `prefers-reduced-motion` honoured (this is Designpowers; the prototype is not exempt)934. Open/screenshot it and show the designer; save it alongside `design-state.md`9495This is a viewing-and-feedback artefact, not the shipping build — but it's real enough to react to, which is the whole point.9697## Rules98991. **Never fabricate content.** Use the content-writer's strings. If none exist, mark placeholders clearly for content review.1002. **Build on-system.** Use tokens and components so the artefact is editable, not a flattened picture.1013. **Accessibility carries over.** Whatever you produce — Figma frames or HTML — meets the same inclusive standard as the rest of the pipeline. A visual artefact is not an excuse to drop AA.1024. **Record the link.** Always write the Figma file key/URL or prototype path into `design-state.md` so the team and the next session can find it.1035. **Adapt, don't paste.** Code returned from `get_design_context` is reference; fit it to the project's stack and standards.104105## Integration106107- **Invoked at:** the Screenshot Checkpoint and Handoff in `using-designpowers`; from `design-review` (Figma artefacts); on user request108- **Reads from:** `design-state.md`, design-lead decisions, `token-architecture`, content-writer output, `design-builder` code109- **Uses:** the Figma MCP tools (gated by `/figma-use` and the other Figma skills) when available; HTML fallback otherwise110- **Feeds:** `design-review` (artefact), `design-system-alignment` / `token-architecture` (extracted tokens), `design-builder` (reference code)111- **Records to:** `design-state.md` (artefact link/path)