Marketplace prototype-to-production
Convert design prototypes (HTML, CSS, Figma exports) into production-ready components. Analyzes prototype structure, extracts design tokens, identifies reusable patterns, and generates typed React components. Adapts to existing project tech stack with React + TypeScript as default.
git clone https://github.com/aiskillstore/marketplace
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ariegoldkin/prototype-to-production" ~/.claude/skills/aiskillstore-marketplace-prototype-to-production && rm -rf "$T"
skills/ariegoldkin/prototype-to-production/SKILL.mdPrototype to Production Skill
Convert design prototypes into production-ready, typed components by analyzing structure, extracting patterns, and generating clean code.
When to Use
- Converting HTML prototypes to React components
- Transforming super-design outputs (
) to production code.superdesign/design_iterations/*.html - Breaking down Figma exports into reusable components
- Extracting design tokens from prototype CSS/inline styles
- Productionizing a mockup or proof-of-concept UI
Conversion Workflow
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Analyze │──▶│ Detect │──▶│ Decompose │──▶│ Generate │ │ Input │ │ Tech Stack │ │ Components │ │ Code │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ ▼ ▼ ▼ ▼ Identify type package.json Atomic design TypeScript & structure scan + patterns methodology components
Step 1: Analyze Input
Detect prototype type and structure:
| Input Type | Detection Method | Key Patterns |
|---|---|---|
| Super-design | Path: | Flowbite, Tailwind CDN, theme CSS references |
| Generic HTML | Any file | Standard HTML structure, inline/external CSS |
| Figma Export | Figma-specific class names | , absolute positioning, frame naming |
Super-design analysis:
Read prototype file → Extract theme CSS reference → Identify component regions (header, main, footer) → Map flowbite components to equivalents
Step 2: Detect Project Tech Stack
Scan target project to determine output format:
-
Check
for frameworks:package.json
/react
→ React componentsreact-dom
→ Vue SFCsvue
→ Svelte componentssvelte
→ Angular components@angular/core
-
Check for TypeScript:
exists → TypeScript outputtsconfig.json
in dependencies → TypeScript outputtypescript
-
Check styling approach:
→ Tailwind classestailwindcss
/styled-components
→ CSS-in-JS@emotion/react- CSS/SCSS files → Separate stylesheets
Default: React + TypeScript + Tailwind CSS
Step 3: Component Decomposition
Apply atomic design methodology:
┌─────────────────────────────────────────────────────────┐ │ ORGANISMS (Complex compositions) │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ MOLECULES (Simple compositions) │ │ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ │ │ ATOMS (Primitive elements) │ │ │ │ │ │ Button, Input, Label, Icon, Badge, Avatar │ │ │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ FormField, SearchBar, Card, MenuItem │ │ │ └─────────────────────────────────────────────────────┘ │ │ Header, Sidebar, ProductGrid, CommentThread │ └─────────────────────────────────────────────────────────┘
Component identification checklist:
- Repeated patterns (2+ occurrences = extract)
- Logical groupings (header, nav, content sections)
- Interactive elements (buttons, forms, modals)
- Data display patterns (cards, lists, tables)
Step 4: Extract Design Tokens
Extract from prototype CSS/styles:
{ "colors": { "primary": "extracted-from-buttons", "secondary": "extracted-from-secondary-elements", "background": "extracted-from-body/container", "text": "extracted-from-body-text" }, "typography": { "fontFamily": "extracted-from-font-family", "fontSize": { "base": "16px", "lg": "18px", "xl": "20px" } }, "spacing": { "derived-from-padding-margin-patterns": true }, "borderRadius": "extracted-from-rounded-elements" }
See
for full templatetemplates/design-tokens-extract.json
Step 5: Generate Components
For each identified component:
- Create TypeScript interface for props
- Apply forwardRef pattern for DOM access
- Include accessibility attributes
- Use project's styling approach
- Add JSDoc documentation
See
andtemplates/component-base.tsxtemplates/component-with-variants.tsx
Step 6: Integration Guidance
Provide clear instructions for:
- File placement in project structure
- Import statements needed
- Peer dependencies (if any)
- Usage examples
Component Output Standards
TypeScript Props Interface
interface ComponentProps { /** Primary variant for emphasis */ variant?: 'primary' | 'secondary' | 'outline'; /** Size affects padding and font-size */ size?: 'sm' | 'md' | 'lg'; /** Disables interaction */ disabled?: boolean; /** Additional CSS classes */ className?: string; /** Content */ children: React.ReactNode; }
Accessibility Requirements
Every component must include:
- Semantic HTML elements (use
not<button>
)<div> - Keyboard navigation support
- ARIA attributes where needed
- Focus management
Naming Conventions
| Type | Convention | Example |
|---|---|---|
| Components | PascalCase | |
| Props types | PascalCase + Props | |
| CSS classes | kebab-case | |
| Design tokens | camelCase | |
Conversion Patterns Reference
See
for comprehensive HTML → React patternsreferences/conversion-patterns.md
Quick Reference
| HTML Pattern | React Equivalent |
|---|---|
| |
| |
| |
| |
| Inline styles | Tailwind classes or styled objects |
Templates Reference
| Template | Purpose |
|---|---|
| Basic component with types and accessibility |
| Component with variant/size system |
| Token extraction structure |
Example Conversion
Input (super-design HTML):
<button class="bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700"> Submit </button>
Output (React + TypeScript):
interface ButtonProps { variant?: 'primary' | 'secondary'; children: React.ReactNode; onClick?: () => void; } export const Button = ({ variant = 'primary', children, onClick }: ButtonProps) => { return ( <button className={cn( 'px-4 py-2 rounded-lg transition-colors', variant === 'primary' && 'bg-blue-600 text-white hover:bg-blue-700' )} onClick={onClick} > {children} </button> ); };
Integration with Super-Design
When converting super-design outputs:
- Read the theme CSS file referenced in the HTML
- Map theme variables to design tokens
- Preserve animations defined in the prototype
- Maintain responsive breakpoints from Tailwind classes
Super-design folder structure:
.superdesign/ └── design_iterations/ ├── theme_1.css # Theme tokens ├── chat_ui_1.html # Prototype iteration 1 └── chat_ui_2.html # Prototype iteration 2