Arkhe-claude-plugins stitch-to-react
Converts Google Stitch exports into React components with design DNA integration. Use when user references design-intent/google-stitch exports, mentions "convert Stitch output", "Stitch to React", or processes Stitch code directories containing HTML + PNG pairs.
git clone https://github.com/joaquimscosta/arkhe-claude-plugins
T=$(mktemp -d) && git clone --depth=1 https://github.com/joaquimscosta/arkhe-claude-plugins "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/design-intent/skills/stitch-to-react" ~/.claude/skills/joaquimscosta-arkhe-claude-plugins-stitch-to-react && rm -rf "$T"
plugins/design-intent/skills/stitch-to-react/SKILL.mdStitch to React
Convert Google Stitch exports (Tailwind HTML + PNG) into React components with full design system integration.
Core Philosophy: Decompose Stitch screens into composable React components while respecting established patterns.
Quick Start
0. Verify Exports Exist (Mandatory)
Before any conversion, verify Stitch exports are available:
# Check for HTML/PNG pairs in the expected location Glob: design-intent/google-stitch/{feature}/exports/*.html Glob: design-intent/google-stitch/{feature}/exports/*.png
If exports found: Proceed to Step 1.
If exports NOT found:
- Check if user specified wrong path - ask for correct location
- Suggest running
first to create exports/stitch-generate - Fall back to design docs: Check
for established patterns or project directories for screenshots/design-intent/patterns/ - If no design assets exist, inform user and offer to help create them
Report findings:
Export Check: [PASSED/MISSING] - HTML files: [count] found - PNG files: [count] found - Location: design-intent/google-stitch/{feature}/exports/
1. Load Project Context (Mandatory)
Before any conversion:
- Read
for project principles/design-intent/memory/constitution.md - Read
for established patterns/design-intent/patterns/ - Detect project design system (Fluent UI, Material UI, custom, etc.)
- Report: "Existing patterns to consider: [list]"
2. Scan Stitch Exports
Stitch exports are located at:
design-intent/google-stitch/{feature}/exports/ ├── 01-layout-{name}.html # Tailwind CSS + HTML ├── 01-layout-{name}.png # Visual reference ├── 02-component-{name}.html ├── 02-component-{name}.png └── ...
From each HTML file, extract:
- Inline
(colors, fonts, spacing)tailwind.config - Custom
blocks (animations, keyframes)<style> - DOM structure for component hierarchy
- Material Symbols icons usage
3. Map to Project Design System
For each Stitch element:
- Check existing patterns - Can we reuse established components?
- Map Tailwind tokens - Convert to project design tokens
- Decompose into composable parts - Break screens into smaller, reusable components
- Flag conflicts - Note when Stitch output differs from patterns
4. Generate React Components
Output structure:
src/components/{feature}/ ├── {ComponentName}.tsx # Main component ├── {SubComponent}.tsx # Decomposed smaller components ├── tokens.ts # Design tokens from Stitch config ├── types.ts # TypeScript interfaces └── index.ts # Re-exports
Component Selection Priority
Per constitution principles:
- Existing project components from
/design-intent/patterns/ - Framework components (Fluent UI, project design system)
- Custom components (document with header comment)
Conflict Resolution
When Stitch output conflicts with patterns:
## Design Conflict Detected **Element**: Button border-radius **Stitch Output**: 4px **Existing Pattern**: 8px (button-styling.md) ### Options 1. Follow Stitch output - Use 4px 2. Use existing pattern - Use 8px 3. Update pattern - Make 4px the new standard Which approach?
Custom Component Documentation
/** * CUSTOM COMPONENT: ComponentName * Source: Stitch screen name * Base: @fluentui/react-components/ComponentType (if applicable) * Reason: Why custom implementation was needed * Created: YYYY-MM-DD * * Original Reference: design-intent/google-stitch/{feature}/exports/{screen}.png */
Reference Documentation
- Detailed workflow: See WORKFLOW.md
- Usage examples: See EXAMPLES.md
- Common issues: See TROUBLESHOOTING.md
Invocation
Triggered by:
- User references
exportsdesign-intent/google-stitch/ - "Convert Stitch output to React"
- "Stitch to React" requests
- Processing directories with HTML + PNG pairs from Stitch