Skip to content
Stitch: Code to Design

Stitch: Code to Design Skill

Google's official Stitch skill that reverses the usual direction — turns an existing React, Vue, Angular or Vite front end back into an editable Stitch design.

GitHub Docs

Install

Install with the skills CLI

One command for Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf and dozens of other agents. Needs Node.js; the skill is fetched straight from google-labs-code/stitch-skills.

$ npx skills add google-labs-code/stitch-skills --skill stitch::code-to-design

Run it in a terminal. The CLI finds the agents installed on your machine, asks which ones to add the skill to, and whether to install it into the folder you ran it from or for all your projects.

Other ways to install

Copy the whole skill folder — SKILL.md and any scripts or references beside it — into ~/.claude/skills/stitch::code-to-design/, where Claude Code picks it up in every project. Only git is needed.

tmp=$(mktemp -d) && \
  git clone --depth 1 --branch main https://github.com/google-labs-code/stitch-skills.git "$tmp" && \
  mkdir -p ~/.claude/skills && \
  cp -R "$tmp"/plugins/stitch-design/skills/code-to-design ~/.claude/skills/stitch::code-to-design

No scripts or references next to it? Saving the SKILL.md alone as ~/.claude/skills/stitch::code-to-design/SKILL.md works too.

Using another agent? Its personal skills folder
Codex
~/.agents/skills/
Cursor
~/.cursor/skills/
GitHub Copilot
~/.copilot/skills/
Gemini CLI
~/.gemini/skills/
Windsurf
~/.codeium/windsurf/skills/
OpenCode
~/.config/opencode/skills/

About

  • Converts a running dev server or a built web app into a Stitch design
  • Chains three skills: static HTML extraction, design-system extraction, then upload
  • Reads Angular `angular.json`, external HTML templates, theme files and components when inferring the design system
  • Writes a `.stitch/DESIGN.md` describing the recovered design system
  • Handles migrate, save and upload requests so assets stay linked

Most design-to-code tooling runs one way: design first, code after. code-to-design is Google Labs'
official Stitch skill for the other direction — taking a front end that already exists and reconstructing an editable
Stitch design from it, so you can iterate on a live product in the design tool instead of rebuilding it there by hand.

It is an orchestrator rather than a single operation, chaining three skills in sequence. extract-static-html
produces one self-contained HTML file from either a running dev server (npm run dev, ng serve) or a built output
directory. extract-design-md then analyses the source — components, stylesheets, theme configs, and for Angular
projects angular.json and external .html templates — and synthesises a design system into .stitch/DESIGN.md.
upload-to-stitch pushes the HTML and the design system into a Stitch project.

The skill is written to trigger on intent rather than on exact phrasing: requests to "save", "migrate" or "upload" an
existing app all route through it, because it is the only path that guarantees the design system is extracted and
assets stay properly linked. A simple upload that skipped those steps would produce a design that looks right and
behaves like a dead end.

It supports React + Vite, Next.js, Angular and Vue, needs either a running dev server or a built directory
containing index.html, and is Apache-2.0 licensed.

SKILL.md

The instructions your agent loads, as published by Google Labs (Stitch).

SKILL.md
name
stitch::code-to-design
description
Convert frontend code (Vite, React, Angular, Vue, etc.) to a Stitch Design by chaining static HTML extraction, design system extraction, and file upload. **ALWAYS** use this skill when the user's intent is to move existing web apps or React/Angular/Vue components into Stitch (e.g., requests to "save", "migrate", or "upload"). You must use this skill even for simple "save" operations, as it is the only way to ensure the design system is extracted and assets are properly linked.
allowed-tools
- "stitch*:*" - "Bash" - "Read" - "Write" - "web_fetch"

Code to Design

Transform your existing frontend code (React + Vite, Next.js, Angular, Vue, etc.) into a Stitch Design so you can iterate and improve it using Stitch.

This skill orchestrates three other skills in sequence:

  1. extract-static-html: Extract a single self-contained HTML file from your build output or running dev server (e.g., Vite dev server or Angular CLI ng serve).
  2. extract-design-md: Analyze the source code (including Angular angular.json, external .html templates, theme files, and components) to create a design system (DESIGN.md).
  3. upload-to-stitch: Upload that HTML file and the design system to your Stitch project.
Workflow

Follow these steps to convert your existing code.

Prerequisites
  • A running local dev server (e.g. npm run dev, ng serve) OR a built web application directory containing index.html and assets.
  • Target Stitch projectId (use list_projects if unknown).
Steps

#### 1. Extract Self-Contained HTML

Delegate to the extract-static-html skill to generate a standalone HTML file.
Read [skills/extract-static-html/SKILL.md](../extract-static-html/SKILL.md) for detailed instructions and script usage.

Expected output: A single file like /path/to/extracted/standalone.html.

#### 2. Verify HTML (Optional — User-Driven)

After extraction, inform the user of the output file path so they can manually
verify in a browser if desired. Do not block on verification — proceed
directly to Step 3.

If the user reports issues after reviewing, fix them before continuing.

#### 3. Extract Design System (File)

Delegate to the extract-design-md skill to analyze the project's source files
(components, stylesheets, theme configs) and produce a design system. Read
[skills/extract-design-md/SKILL.md](../extract-design-md/SKILL.md) for the
full analysis workflow.

Write .stitch/DESIGN.md following the extract-design-md skill's output
structure.

#### 4. Upload DESIGN.md and Create Design System in Stitch

Delegate to the manage-design-system skill to upload the DESIGN.md and
create the design system in Stitch. Read
[skills/manage-design-system/SKILL.md](../manage-design-system/SKILL.md) for
the full workflow (upload script usage, create_design_system_from_design_md
call, and required schemas). Pass
--generated-by 'stitch::code-to-design' when uploading.

#### 5. Upload HTML to Stitch

Use the same upload-to-stitch skill's script to upload the extracted HTML file.
Read [skills/upload-to-stitch/SKILL.md](../upload-to-stitch/SKILL.md) for detailed instructions and script usage.

You will need:

  • The path to the standalone HTML file generated in Step 1.
  • Your Stitch API Key (same key used in Step 4).
  • The target projectId.
  • The --generated-by argument set to 'stitch::extract-static-html'.
  • The --title argument set to the route path of the page (e.g., '/dashboard', '/settings/profile', '/inbox') so that the screen name/title in Stitch clearly identifies its route in the application.
Install

Figma's official design-to-code skill — a mandatory pre-step to get_design_context that turns a Figma node into components matching your real stack, not generic markup.

Skill: Stitch: Generate Design

by Google Labs (Stitch)

Featured

Google's official Stitch skill for generating and editing UI screens from text or images — with a mandatory prompt-enhancement pipeline before every call.

Skill: Stitch: DESIGN.md

by Google Labs (Stitch)

Google's official Stitch skill for distilling a project into a DESIGN.md — a semantic design system agents can read before they generate anything.

Browse all skills →