К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot официальный · Google

stitch::react-components — скилл для Claude Code и других агентов

Превращает дизайны Stitch в компоненты React с Vite. Также синхронизирует существующие компоненты с обновлёнными макетами.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add google-labs-code/stitch-skills --skill react:components -a claude-code
npx skills add google-labs-code/stitch-skills --skill react-components -a claude-code
Открыть на GitHub

Что делает stitch::react-components

Скилл работает в четыре фазы. Сначала он вытаскивает все экраны проекта через MCP Stitch: запрашивает метаданные по каждому, качает HTML и скриншоты скриптом scripts/fetch-stitch.sh, а не встроенными средствами агента. Google Cloud Storage часто рвёт прямые запросы, поэтому нужен именно bash-скрипт. Перед загрузкой проверяет, есть ли уже .stitch/designs/{page}.html и .png, и если есть — спрашивает, обновлять или оставить как есть.

Дальше из ` скачанных страниц вытаскиваются токены: цвета, шрифты, отступы, радиусы, типографика. Всё это перезаписывается в resources/style-guide.json`. Без этого шага скилл не пойдёт дальше — токены из прошлого проекта не годятся.

Компоненты строятся модульно: каждый повторяющийся паттерн — карточка, бейдж, пагинация — отдельный файл в src/components/. Логика выносится в хуки (usePagination, useFilter), статика — в src/data/mockData.ts. Каждый файл обязан иметь Readonly-интерфейс [ComponentName]Props, иначе валидация упадёт. Все href="#" заменяются на ` из React Router, логотип в TopAppBar ведёт на /, потому что нижняя навигация Stitch скрыта на десктопе через md:hidden`. Валидация и запуск dev-сервера — только с разрешения пользователя. Стоит ставить, если вы регулярно переносите макеты Stitch в React и не хотите вручную раскладывать токены и роуты.

Какие задачи решает

  • Скачать HTML и скриншоты всех экранов Stitch без обрыва соединения
  • Вытащить дизайн-токены из tailwind.config в style-guide.json
  • Разбить страницу на переиспользуемые компоненты и хуки
  • Заменить href="#" на роуты React Router и починить навигацию на десктопе
  • Прогнать код через AST-валидацию перед сдачей

Примеры запросов агенту

  • Собери React-компоненты из экранов этого проекта Stitch
  • Обнови существующие компоненты под последние макеты Stitch
  • Скачай все экраны через fetch-stitch.sh и сделай визуальный аудит

Как установить stitch::react-components

1Через Skills CLI (Vercel)

npx skills add google-labs-code/stitch-skills --skill react:components -a claude-code
npx skills add google-labs-code/stitch-skills --skill react-components -a claude-code

2Вручную: положить файлы

~/.claude/skills/react-components/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/react-components/

Из того же набора15

Весь набор →
design-md официальный google-labs-code Скилл выгружает экраны из Google Stitch через MCP-сервер и собирает файл DESIGN.md с описанием дизайн-системы, цветов и компонентов. Claude Code CX Codex Cursor +1 64 700установок enhance-prompt официальный google-labs-code Превращает неточные идеи интерфейса в детальные промпты для Google Stitch. Скилл подтягивает дизайн-систему из DESIGN.md и расписывает структуру экрана. Claude Code CX Codex Cursor +1 58 300установок stitch-loop официальный google-labs-code Организует автономную сборку страниц через Stitch MCP. Агент берёт задачу из файла-эстафеты, создаёт экран, переносит код в проект и сразу пишет задание для следующей итерации. Claude Code CX Codex Cursor +1 56 300установок shadcn-ui официальный google-labs-code Помогает находить, добавлять и настраивать компоненты shadcn/ui в React-проектах. Пригодится для сборки интерфейсов с Tailwind CSS. Claude Code CX Codex Cursor +1 53 400установок remotion официальный google-labs-code Собирает экраны проекта Stitch в ролик на Remotion с переходами, приближением и текстовыми подписями. Пригодится для демонстрации интерфейса по шагам. Claude Code CX Codex Cursor +1 41 300установок taste-design официальный google-labs-code Скилл формирует файл DESIGN.md для Google Stitch, задавая строгие дизайн-правила против шаблонных интерфейсов. Помогает настроить типографику, палитру и микроанимации для генерации экранов. Claude Code CX Codex Cursor +1 20 100установок stitch::generate-design официальный google-labs-code Скилл превращает текстовое описание или картинку в готовый экран интерфейса через Stitch MCP, а потом правит его точечными промптами. Claude Code CX Codex Cursor +1 10 700установок stitch::extract-design-md официальный google-labs-code Извлекает дизайн-систему в файл DESIGN.md прямо из исходников фронтенда без сборки проекта. Помогает перенести визуальные токены и правила вёрстки в формат Stitch. Claude Code CX Codex Cursor +1 10 500установок

Похожие

remotion-markup remotion-dev Скилл задаёт правила написания React-разметки для Remotion: анимации через кадры, работа с медиа и эффектами. Пригодится, если вы собираете видео кодом. Claude Code CX Codex Cursor +1 202 600установок remotion-interactivity remotion-dev Подсказывает агенту, как размечать компоненты Remotion для редактирования в Remotion Studio. Пригодится при верстке видеосцен с настраиваемыми стилями, текстом и таймлайном. Claude Code CX Codex Cursor +1 197 900установок gsap-core greensock Скилл объясняет и пишет базовые GSAP-анимации для DOM и SVG. Подойдёт для tweens, easing, stagger и адаптации к reduced motion. Claude Code CX Codex Cursor +1 74 600установок gsap-scrolltrigger greensock Обучает ИИ-агента писать анимации по скроллу с плагином ScrollTrigger от GreenSock: закреплять секции и связывать таймлайны с прокруткой через scrub. Claude Code CX Codex Cursor +1 71 600установок remotion-upgrade remotion-dev Обновляет библиотеки Remotion и сопутствующие пакеты в проекте до актуальной версии. Пригодится, когда нужно синхронизировать зависимости и локальные скиллы без конфликтов. Claude Code CX Codex Cursor +1 186 800установок gsap-performance greensock Официальный скилл GSAP по производительности: подсказывает агенту, какие свойства анимировать, а какие ломают кадры. Пригодится, когда анимация дёргается. Claude Code CX Codex Cursor +1 68 800установок frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. Claude Code Claude.ai 1 025 790установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. Claude Code CX Codex Cursor +1 673 100установок

Вопросы о stitch::react-components

Как установить stitch::react-components в Claude Code?

Выполните npx skills add google-labs-code/stitch-skills --skill react-components -a claude-code. После установки скилл появится в ~/.claude/skills/react-components/SKILL.md.

Что делает stitch::react-components?

Конвертирует дизайны Stitch в модульные React-компоненты с Vite или синхронизирует уже существующие компоненты с актуальными макетами. Использует MCP Stitch для получения экранов и AST-валидацию для проверки кода.

Почему нельзя качать файлы встроенными средствами агента?

Внутренние fetch-инструменты ИИ часто падают на доменах Google Cloud Storage. Поэтому скилл требует скрипт scripts/fetch-stitch.sh, который сам обрабатывает редиректы и подтверждения безопасности.

Исходный текст

SKILL.md · Apache-2.0
---
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.
allowed-tools:
  - "stitch*:*"
  - "Bash"
  - "Read"
  - "Write"
  - "web_fetch"
---

# 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>`.

© google-labs-code · Apache-2.0 · google-labs-code/stitch-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой