stitch::react-components
Converts Stitch designs into modular Vite and React components, or syncs/updates existing React components to align with the latest Stitch designs, using…
Skill by google-labs-code
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/google-labs-code-stitch-react-components
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: frontend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/stitch-react-components
What's inside
- Skill name
stitch::react-components- Description
- Converts Stitch designs into modular Vite and React components, or syncs/updates existing React components to align with the latest Stitch designs, using system-level networking and AST-based validation.
- License
- Apache-2.0
- Instructions
- 97 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- name: only lowercase letters, digits and single hyphens allowed
- name: "stitch::react-components" does not match folder "react-components"
- allowed-tools: must be a space-separated string
Files (11)
- README.md
- SKILL.md
- gold-standard-card.tsx · examples/
- package-lock.json
- package.json
- architecture-checklist.md · resources/
- component-template.tsx · resources/
- stitch-api-reference.md · resources/
- style-guide.json · resources/
- fetch-stitch.sh · scripts/
- validate.js · scripts/
SKILL.md (first lines)
# Stitch to React Components
You are a frontend engineer focused on transforming designs into clean React code or syncing/updating existing React components to align with the latest Stitch designs. You follow a modular approach and use automated tools to ensure code quality.
> **CRITICAL: Every step in this skill is MANDATORY. Do NOT skip any step or take shortcuts. Each section contains a GATE that must be satisfied before proceeding.**
## Phase 1: Retrieval and networking
> **GATE: Phase 1 is complete ONLY when all screens have been downloaded via `scripts/fetch-stitch.sh` AND visually audited. Reading local files directly without going through this phase is PROHIBITED.**
1. **Namespace discovery**: Run `list_tools` to find the Stitch MCP prefix. Use this prefix (e.g., `stitch:`) for all subsequent calls.
2. **Metadata fetch**: Call `[prefix]:get_screen` for **EVERY screen** in the project to retrieve the design JSON with download URLs. Do NOT skip any screen.
3. **Check for existing designs**: Before downloading, check if `.stitch/designs/{page}.html` and `.stitch/designs/{page}.png` already exist:
- **If files exist**: Ask the user whether to refresh the designs from the Stitch project using the MCP, or reuse the existing local files. **You MUST ask — do not assume.** Only re-download if the user confirms.
- **If files do not exist**: Proceed to step 4.
4. **High-reliability download**: Internal AI fetch tools can fail on Google Cloud Storage domains. You MUST use the provided script.
- **HTML**: `bash scripts/fetch-stitch.sh "[htmlCode.downloadUrl]" ".stitch/designs/{page}.html"`
- **Screenshot**: Append `=w{width}` to the screenshot URL first, where `{width}` is the `width` value from the screen metadata (Google CDN serves low-res thumbnails by default). Then run: `bash scripts/fetch-stitch.sh "[screenshot.downloadUrl]=w{width}" ".stitch/designs/{page}.png"`
- This script handles the necessary redirects and security handshakes.
5. **Visual audit**: Review the downloaded screenshot (`.stitch/designs/{page}.png`) to confirm design intent and layout details. **You MUST view each screenshot** — do not proceed based on assumptions about the design.
6. **Project metadata tracking**: Retrieve project configuration using `[prefix]:get_project` and save it to `.stitch/metadata.json` (inside the app folder, and mirrored in the workspace root). Ensure it has:
- `projectId`, `title`, `deviceType`
- A `Last Sync Time` field matching the current sync ISO execution time
- A `screens` map detailing each screen's ID, label, sourceScreen reference, dimensions, and canvasPosition.
### Anti-patterns for Phase 1
- ❌ Reading `.stitch/designs/*.html` directly without calling MCP `get_screen` first.
- ❌ Skipping the `fetch-stitch.sh` download script.
- ❌ Not asking the user when existing files are found.
- ❌ Skipping the visual audit of `.png` screenshots.
- ❌ Failing to generate or update `.stitch/metadata.json` and its `Last Sync Time` field upon syncing.
## Phase 2: Style extraction
> **GATE: Phase 2 is complete ONLY when `resources/style-guide.json` has been updated with tokens extracted from the current project's HTML `<head>`. Tokens from a previous project are NOT acceptable.**
1. **Extract `tailwind.config`**: Open each downloaded HTML file and locate the `tailwind.config` object in the `<head>` `<script>` block. Extract:
- All color tokens
- Font families
- Spacing values
- Border radius values
- Font size/typography tokens
2. **Sync `resources/style-guide.json`**: Overwrite the file with the extracted tokens from THIS project. The style guide MUST match the Stitch project being converted.
3. **Verify sync**: Confirm the primary color, font families, and spacing in the updated `style-guide.json` match what you extracted.
### Anti-patterns for Phase 2
- ❌ Using `style-guide.json` as-is without verifying it matches the current project.
- ❌ Using hardcoded hex values in components instead of theme-mapped classes.
## Phase 3: Architectural rules
> **GATE: Every component MUST satisfy ALL of the following rules. Violations will cause `npm run validate` to fail.**
* **Modular components**: Break the design into independent files. **Each reusable UI pattern** (cards, badges, pagination, search bars) MUST be extracted into its own component in `src/components/`. Monolithic page files that contain everything are PROHIBITED.
* **Logic isolation**: Move event handlers and business logic into custom hooks in `src/hooks/`. Examples: pagination logic → `usePagination`, filtering → `useFilter`.
* **Data decoupling**: Move ALL static text, image URLs, and lists into `src/data/mockData.ts`. No hardcoded content in components.
* **Type safety**: EVERY component file (including pages) MUST include a `Readonly` TypeScript interface named `[ComponentName]Props`. The validator checks for this — files without a Props interface will FAIL validation.
* **Project specific**: Focus on the target project's needs and constraints. Leave Google license headers out of the generated React components.
* **Navigation wiring**: Stitch screens are standalone pages with `href="#"` placeholder links. When building a multi-page React app:
* Replace ALL `href="#"` anchors with React Router `<Link>` components pointing to the correct routes.
* **Always make the app logo/title in the TopAppBar a `<Link to="/">`** so users can navigate home from any page. This is critical because Stitch bottom nav bars use `md:hidden` and are invisible on desktop — without a clickable logo, desktop users have no way to return to the home page.
* Wire the bottom nav items and sidebar nav items to their corresponding routes using `<Link>` with active-state highlighting based on `useLocation()`.
* **Style mapping**: Use theme-mapped Tailwind classes from the synced `style-guide.json`. No arbitrary hex codes.
* **Dark mode**: Apply `dark:` variants to ALL color classes throughout every component.
### Anti-patterns for Phase 3
- ❌ Putting all UI in a single monolithic page file.
- ❌ Inline event handlers or business logic without hooks.
- ❌ Hardcoding text, URLs, or data in component files.
- ❌ Components without a `[Name]Props` interface.
- ❌ Using hex color values instead of theme tokens.
- ❌ Leaving `href="#"` links unconverted.
## Phase 4: Execution steps
> **GATE: Phase 4 verification, audits, and validation checks are optional. You MUST ask the user's permission to proceed with validation scripts, running local dev servers, or automated browser testing.**
1. **Environment setup**: If `node_modules` is missing, run `npm install` to enable the validation tools.
2. **Data layer**: Create `src/data/mockData.ts` based on the design content.
3. **Component drafting**: Use `resources/component-template.tsx` as a base. Find and replace ALL instances of `StitchComponent` with the actual name of the component you are creating.
4. **Application wiring**: Update the project entry point (like `App.tsx`) to render the new components.
5. **Quality check (Optional - Ask User first)**:
* Run `npm run validate <file_path>` for **EVERY** `.tsx` file in `src/components/` and `src/pages/` to report component validity.
* Run `tsc --noEmit` to verify TypeScript compile status.
* Check output against `resources/architecture-checklist.md`.
* Obtain permission before starting the dev server with `npm run dev` or initiating visual browser audits to verify the live result.
### Anti-patterns for Phase 4
- ❌ Commencing dev server start or browser audits without user consent.
- ❌ Declaring task "done" without verifying code compiles.
## Troubleshooting
* **Fetch errors**: Ensure the URL is quoted in the bash command to prevent shell errors.
* **Validation errors**: Review the AST report and fix any missing interfaces or hardcoded styles. The most common failure is a missing `Props` interface — every component (including pages) needs one.
* **Dead navigation links**: Stitch HTML uses `href="#"` placeholders everywhere. Every `<a href="#">` must be converted to a `<Link to="/route">` with a real route. Verify all nav items are clickable and lead to the correct page.
* **Stale style-guide.json**: If colors or fonts look wrong, the `style-guide.json` likely has tokens from a different project. Re-extract from the current HTML `<head>`.From google-labs-code/stitch-skills, Apache-2.0.
More from google-labs-code/stitch-skills
- 0.798score
stitch::upload-to-stitch
google-labs-code
Upload local assets (images, mockups, extracted HTML, design markdown) to a Stitch project.
SkillBFreshness: B★ 8.6KClaude Code +9 - 0.798score
stitch::extract-static-html
google-labs-code
Extract self-contained static HTML from a built web application or React components by inlining CSS and images.
SkillBFreshness: B★ 8.6KClaude Code +9 - 0.798score
site-md
google-labs-code
Analyze a project description or site requirements and synthesize a project constitution into SITE.md for the Stitch Build Loop
SkillBFreshness: B★ 8.6KClaude Code +9 - 0.798score
stitch::extract-design-md
google-labs-code
Extract a comprehensive design system (DESIGN.md) directly from frontend source code — React, Vue, Svelte, Angular, plain HTML/CSS, or any web framework.
SkillBFreshness: B★ 8.6KClaude Code +9 - 0.792score
stitch::code-to-design
google-labs-code
Convert frontend code (Vite, React, Angular, Vue, etc.) to a Stitch Design by chaining static HTML extraction, design system extraction, and file upload.
SkillBFreshness: B★ 8.6KClaude Code +9 - 0.746score
enhance-prompt
google-labs-code
Transforms vague UI ideas into polished, Stitch-optimized prompts.
SkillCFreshness: C★ 8.6KClaude Code +9 - 0.746score
shadcn-ui
google-labs-code
Expert guidance for integrating and building applications with shadcn/ui components, including component discovery, installation, customization, and best…
SkillCFreshness: C★ 8.6KClaude Code +9 - 0.743score
remotion
google-labs-code
Generate walkthrough videos from Stitch projects using Remotion with smooth transitions, zooming, and text overlays
SkillCFreshness: C★ 8.6KClaude Code +9 - 0.740score
taste-design
google-labs-code
Semantic Design System Skill for Google Stitch.
SkillCFreshness: C★ 8.6KClaude Code +9 - 0.740score
react-vite-dashboard
google-labs-code
Convert Stitch designs into production React + Vite dashboards with TanStack Query, accessible tokens from DESIGN.md, and Web3-ready patterns (ethers/viem).
SkillCFreshness: C★ 8.6KClaude Code +9 - 0.737score
stitch-loop
google-labs-code
Teaches agents to iteratively build websites using Stitch with an autonomous baton-passing loop pattern
SkillCFreshness: C★ 8.6KClaude Code +9 - 0.737score
stitch::react-native
google-labs-code
Convert Stitch HTML designs to React Native components, or syncs/updates existing native components to align with the latest Stitch designs, using StyleSheet.
SkillCFreshness: C★ 8.6KClaude Code +9
Signals
- Stars
- 8,572
- Forks
- 1,052
- Open issues
- 10
- Last commit (this folder)
- Jul 21, 2026 (3 months ago)
- Last release
- May 18, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from google-labs-code
- 0.798score
stitch::extract-static-html
google-labs-code
Extract self-contained static HTML from a built web application or React components by inlining CSS and images.
SkillBFreshness: B★ 8.6KClaude Code +9 - 0.798score
stitch::upload-to-stitch
google-labs-code
Upload local assets (images, mockups, extracted HTML, design markdown) to a Stitch project.
SkillBFreshness: B★ 8.6KClaude Code +9 - 0.798score
stitch::extract-design-md
google-labs-code
Extract a comprehensive design system (DESIGN.md) directly from frontend source code — React, Vue, Svelte, Angular, plain HTML/CSS, or any web framework.
SkillBFreshness: B★ 8.6KClaude Code +9 - 0.798score
site-md
google-labs-code
Analyze a project description or site requirements and synthesize a project constitution into SITE.md for the Stitch Build Loop
SkillBFreshness: B★ 8.6KClaude Code +9 - 0.792score
stitch::code-to-design
google-labs-code
Convert frontend code (Vite, React, Angular, Vue, etc.) to a Stitch Design by chaining static HTML extraction, design system extraction, and file upload.
SkillBFreshness: B★ 8.6KClaude Code +9 - 0.746score
shadcn-ui
google-labs-code
Expert guidance for integrating and building applications with shadcn/ui components, including component discovery, installation, customization, and best…
SkillCFreshness: C★ 8.6KClaude Code +9
Cite this page
stitch::react-components skill. Agent Mart. https://agentmart.dev/skills/google-labs-code-stitch-react-components (last updated 2026-10-24)