prototype-to-production
デザインプロトタイプ(HTML、CSS、Figmaなど)を解析し、デザインルールや再利用可能なパターンを抽出して、ReactやTypeScriptで記述された高品質なコンポーネントを自動生成し、開発効率を向上させるSkill。
📜 元の英語説明(参考)
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.
🇯🇵 日本人クリエイター向け解説
デザインプロトタイプ(HTML、CSS、Figmaなど)を解析し、デザインルールや再利用可能なパターンを抽出して、ReactやTypeScriptで記述された高品質なコンポーネントを自動生成し、開発効率を向上させるSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o prototype-to-production.zip https://jpskill.com/download/17250.zip && unzip -o prototype-to-production.zip && rm prototype-to-production.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/17250.zip -OutFile "$d\prototype-to-production.zip"; Expand-Archive "$d\prototype-to-production.zip" -DestinationPath $d -Force; ri "$d\prototype-to-production.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
prototype-to-production.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
prototype-to-productionフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 2
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Prototype to Production Skill
デザインプロトタイプを分析し、構造を解析し、パターンを抽出し、クリーンなコードを生成することで、本番環境で使用できる型付きコンポーネントに変換します。
活用場面
- HTMLプロトタイプをReactコンポーネントに変換する
- super-design の出力(
.superdesign/design_iterations/*.html)を本番コードに変換する - Figmaのエクスポートを再利用可能なコンポーネントに分解する
- プロトタイプのCSS/インラインスタイルからデザイントークンを抽出する
- モックアップや概念実証UIを本番環境に対応させる
変換ワークフロー
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Analyze │──▶│ Detect │──▶│ Decompose │──▶│ Generate │
│ Input │ │ Tech Stack │ │ Components │ │ Code │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ │ │ │
▼ ▼ ▼ ▼
Identify type package.json Atomic design TypeScript
& structure scan + patterns methodology components
ステップ 1: 入力の分析
プロトタイプの種類と構造を検出:
| 入力タイプ | 検出方法 | 主要なパターン |
|---|---|---|
| Super-design | パス: .superdesign/design_iterations/*.html |
Flowbite, Tailwind CDN, テーマCSS参照 |
| Generic HTML | 任意の .html ファイル |
標準的なHTML構造、インライン/外部CSS |
| Figma Export | Figma固有のクラス名 | figma-、絶対配置、フレーム命名 |
Super-design の分析:
プロトタイプファイルを読み込む → テーマCSS参照を抽出 →
コンポーネント領域(ヘッダー、メイン、フッター)を識別 →
Flowbiteコンポーネントを同等のものにマッピング
ステップ 2: プロジェクトの技術スタックを検出
ターゲットプロジェクトをスキャンして出力形式を決定:
-
package.jsonをチェックしてフレームワークを確認:react/react-dom→ Reactコンポーネントvue→ Vue SFCsvelte→ Svelteコンポーネント@angular/core→ Angularコンポーネント
-
TypeScriptの有無を確認:
tsconfig.jsonが存在する場合 → TypeScript出力- 依存関係に
typescriptがある場合 → TypeScript出力
-
スタイリングのアプローチを確認:
tailwindcss→ Tailwindクラスstyled-components/@emotion/react→ CSS-in-JS- CSS/SCSSファイル → 分離されたスタイルシート
デフォルト: React + TypeScript + Tailwind CSS
ステップ 3: コンポーネントの分解
Atomic design methodologyを適用:
┌─────────────────────────────────────────────────────────┐
│ ORGANISMS (複雑な構成) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ MOLECULES (単純な構成) │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ ATOMS (プリミティブな要素) │ │ │
│ │ │ Button, Input, Label, Icon, Badge, Avatar │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ │ FormField, SearchBar, Card, MenuItem │ │
│ └─────────────────────────────────────────────────────┘ │
│ Header, Sidebar, ProductGrid, CommentThread │
└─────────────────────────────────────────────────────────┘
コンポーネント識別チェックリスト:
- [ ] 繰り返されるパターン (2回以上の出現 = 抽出)
- [ ] 論理的なグループ化 (ヘッダー、ナビゲーション、コンテンツセクション)
- [ ] インタラクティブな要素 (ボタン、フォーム、モーダル)
- [ ] データ表示パターン (カード、リスト、テーブル)
ステップ 4: デザイントークンを抽出
プロトタイプのCSS/スタイルから抽出:
{
"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"
}
完全なテンプレートについては
templates/design-tokens-extract.jsonを参照してください
ステップ 5: コンポーネントを生成
識別された各コンポーネントに対して:
- propsのTypeScriptインターフェースを作成
- DOMアクセスに
forwardRefパターンを適用 - アクセシビリティ属性を含める
- プロジェクトのスタイリングアプローチを使用
- JSDocドキュメントを追加
templates/component-base.tsxおよびtemplates/component-with-variants.tsxを参照してください
ステップ 6: 統合ガイダンス
以下について明確な指示を提供:
- プロジェクト構造内のファイルの配置場所
- 必要なインポート文
- ピア依存関係 (もしあれば)
- 使用例
コンポーネント出力の標準
TypeScript Props インターフェース
interface ComponentProps {
/** 強調するためのプライマリバリアント */
variant?: 'primary' | 'secondary' | 'outline';
/** サイズはパディングとフォントサイズに影響します */
size?: 'sm' | 'md' | 'lg';
/** インタラクションを無効にします */
disabled?: boolean;
/** 追加のCSSクラス */
className?: string;
/** コンテンツ */
children: React.ReactNode;
}
アクセシビリティ要件
すべてのコンポーネントに以下を含める必要があります:
- セマンティックHTML要素 (
<div>ではなく<button>を使用) - キーボードナビゲーションのサポート
- 必要な場合のARIA属性
- フォーカスの管理
命名規則
| タイプ | 規則 | 例 |
|---|---|---|
| コンポーネント | PascalCase | ProductCard.tsx |
| Propsの型 | PascalCase + Props | ProductCardProps |
| CSSクラス | kebab-case | product-card-container |
| デザイントークン | camelCase | primaryColor |
変換パターンのリファレンス
包括的なHTML → Reactパターンについては
references/conversion-patterns.mdを参照してください
クイックリファレンス
| HTMLパターン | Reactの同等物 |
|---|---|
class="..." |
className="..." |
onclick="..." |
onClick={handler} |
for="..." |
htmlFor="..." |
<input value=""> |
<input value="" onChange={...}> |
| インラインスタイル | Tailwindクラスまたはスタイル付きオブジェクト |
テンプレートリファレンス
| テンプレート | 目的 |
|---|---|
component-base.tsx |
型とアクセシビリティを備えた基本コンポーネント |
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Prototype 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 (
.superdesign/design_iterations/*.html) to production code - 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: .superdesign/design_iterations/*.html |
Flowbite, Tailwind CDN, theme CSS references |
| Generic HTML | Any .html file |
Standard HTML structure, inline/external CSS |
| Figma Export | Figma-specific class names | figma-, 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
package.jsonfor frameworks:react/react-dom→ React componentsvue→ Vue SFCssvelte→ Svelte components@angular/core→ Angular components
-
Check for TypeScript:
tsconfig.jsonexists → TypeScript outputtypescriptin dependencies → TypeScript output
-
Check styling approach:
tailwindcss→ Tailwind classesstyled-components/@emotion/react→ CSS-in-JS- 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
templates/design-tokens-extract.jsonfor full template
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
templates/component-base.tsxandtemplates/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
<button>not<div>) - Keyboard navigation support
- ARIA attributes where needed
- Focus management
Naming Conventions
| Type | Convention | Example |
|---|---|---|
| Components | PascalCase | ProductCard.tsx |
| Props types | PascalCase + Props | ProductCardProps |
| CSS classes | kebab-case | product-card-container |
| Design tokens | camelCase | primaryColor |
Conversion Patterns Reference
See
references/conversion-patterns.mdfor comprehensive HTML → React patterns
Quick Reference
| HTML Pattern | React Equivalent |
|---|---|
class="..." |
className="..." |
onclick="..." |
onClick={handler} |
for="..." |
htmlFor="..." |
<input value=""> |
<input value="" onChange={...}> |
| Inline styles | Tailwind classes or styled objects |
Templates Reference
| Template | Purpose |
|---|---|
component-base.tsx |
Basic component with types and accessibility |
component-with-variants.tsx |
Component with variant/size system |
design-tokens-extract.json |
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 同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (8,975 bytes)
- 📎 references/conversion-patterns.md (6,903 bytes)