AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Stitch React Components

skill-gabelul-stitch-kit-stitch-react-components · by gabelul

Converts Stitch designs into modular Vite + React components — TypeScript, theme-mapped Tailwind, dark mode via CSS variables, and clean component architecture. Use this for Vite/React apps without App Router. For Next.js 15 App Router, use stitch-nextjs-components instead.

No reviews yet
0 installs
13 views
0.0% view→install

Install

$ agentstack add skill-gabelul-stitch-kit-stitch-react-components

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-gabelul-stitch-kit-stitch-react-components)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Stitch React Components? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Stitch → Vite / React Components

Constraint: Only use this skill when the user explicitly mentions "Stitch" and React (Vite, CRA, or just "React app" without Next.js).

You are a frontend engineer converting Stitch mobile/desktop designs into clean, modular React components using Vite + TypeScript. This skill targets plain React apps — not Next.js App Router. For Next.js, use stitch-nextjs-components instead.

When to use this skill vs. Next.js

| Scenario | Use | |----------|-----| | User says "React app", "Vite", "CRA" | stitch-react-components | | User says "Next.js", "App Router", "SSR" | stitch-nextjs-components | | User wants shadcn/ui components added after | stitch-react-components → then stitch-shadcn-ui | | User wants server-side rendering or file-based routing | stitch-nextjs-components |

Prerequisites

  • Stitch MCP Server configured (or use downloaded HTML directly)
  • Node.js + npm/pnpm
  • Vite + React project initialized: npm create vite@latest my-app -- --template react-ts

Step 1: Retrieve the design

  1. Run list_tools → find Stitch MCP prefix
  2. Call [prefix]:get_screen with numeric projectId and screenId
  3. Download HTML: bash scripts/fetch-stitch.sh "[htmlCode.downloadUrl]" "temp/source.html"
  4. Check screenshot.downloadUrl — verify layout matches expectations

Step 2: Project structure

src/
├── components/           ← One file per component
│   └── [Name].tsx
├── data/
│   └── mockData.ts       ← Static content (never in components)
├── theme/
│   ├── tokens.ts         ← Design token constants
│   └── useTheme.ts       ← Dark mode hook
├── types/
│   └── index.ts          ← Shared TypeScript types
├── App.tsx               ← Root component
└── main.tsx              ← Entry point

Step 3: Extract design tokens

From the Stitch HTML `, find the tailwind.config` or CSS variable definitions.

// src/theme/tokens.ts — extract hex values from Stitch HTML
export const lightTokens = {
  background: '#FFFFFF',
  surface:    '#F4F4F5',
  primary:    '#6366F1',
  primaryFg:  '#FFFFFF',
  text:       '#09090B',
  textMuted:  '#71717A',
  border:     '#E4E4E7',
} as const

export const darkTokens = {
  background: '#09090B',
  surface:    '#18181B',
  primary:    '#818CF8',
  primaryFg:  '#09090B',
  text:       '#FAFAFA',
  textMuted:  '#A1A1AA',
  border:     '#27272A',
} as const

export type ThemeTokens = typeof lightTokens
// src/theme/useTheme.ts
import { useEffect, useState } from 'react'
import { lightTokens, darkTokens, type ThemeTokens } from './tokens'

/**
 * Returns current theme tokens based on system color scheme.
 * Listens for system-level dark/light mode changes.
 */
export function useTheme(): ThemeTokens {
  const [isDark, setIsDark] = useState(
    () => window.matchMedia('(prefers-color-scheme: dark)').matches
  )

  useEffect(() => {
    const mq = window.matchMedia('(prefers-color-scheme: dark)')
    const handler = (e: MediaQueryListEvent) => setIsDark(e.matches)
    mq.addEventListener('change', handler)
    return () => mq.removeEventListener('change', handler)
  }, [])

  return isDark ? darkTokens : lightTokens
}

Step 4: Component conversion rules

Layout mapping

| HTML/CSS | → React / Tailwind | |---|---| | display:flex; flex-direction:column | ` | | display:flex; flex-direction:row | | | justify-content:space-between | | | display:grid; grid-template-columns:1fr 1fr | | | overflow-y:scroll | | | Long list | items.map(item => ) | | | ` |

Tailwind class mapping

Use the Stitch HTML classes directly in JSX where they don't reference Stitch-specific tokens. Map Stitch tokens to CSS variables:

// Stitch HTML: bg-primary → CSS variable → Tailwind arbitrary value
// OR: use inline style with token value

// Option A — Tailwind arbitrary value (if custom tokens in tailwind.config)

// Option B — inline style with useTheme()
const theme = useTheme()

Component template

// src/components/StitchComponent.tsx

/**
 * Props for StitchComponent — all data via props, never fetched inside.
 */
interface StitchComponentProps {
  /** Primary heading text */
  title: string
  /** Supporting description — optional */
  description?: string
  /** Primary action callback */
  onAction?: () => void
}

/**
 * StitchComponent — [describe purpose in one sentence]
 */
export function StitchComponent({
  title,
  description,
  onAction,
}: Readonly) {
  const theme = useTheme()

  return (
    
      
        {title}
      

      {description ? (
        
          {description}
        
      ) : null}

      {onAction ? (
        
          Action
        
      ) : null}
    
  )
}

Step 5: Architectural rules

  • One component per file — no single-file spaghetti
  • Static data in src/data/mockData.ts — never hardcoded in JSX
  • Shared types in src/types/index.ts
  • Every component has Readonly interface
  • No hardcoded hex colors — use useTheme() or CSS variables
  • No any types

Step 6: Integration with shadcn/ui

After converting the Stitch design to base React components, you can layer in shadcn/ui:

npx shadcn@latest init    # Set up shadcn in your Vite project
npx shadcn@latest add button card input dialog

Then use stitch-shadcn-ui skill to replace raw HTML elements with shadcn components while preserving the Stitch design tokens.

Troubleshooting

| Issue | Fix | |-------|-----| | Tailwind classes not applying | Check tailwind.config.js includes ./src/**/*.{ts,tsx} in content | | Dark mode not toggling | Verify useTheme() is called at component level, not hoisted | | Images not showing | Add explicit width and height or use className="w-full h-auto" | | Type error on props | Ensure Readonly<> wrapper and all required props are provided |

References

  • resources/component-template.tsx — Boilerplate component
  • resources/architecture-checklist.md — Pre-ship checklist
  • references/tailwind-to-react.md — Token + class mapping guide (Stitch HTML → React/Tailwind)
  • scripts/fetch-stitch.sh — Reliable GCS HTML downloader
  • stitch-shadcn-ui — Add shadcn/ui components after base conversion
  • docs/tailwind-reference.md — Tailwind utility class lookup

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

  • Author: gabelul
  • Source: gabelul/stitch-kit
  • License: Apache-2.0
  • Homepage: https://booplex.com/projects/stitch-kit-design-intelligence-for-ai-agents

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.