jpskill.com
🎨 デザイン コミュニティ

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本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して prototype-to-production.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → prototype-to-production フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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: プロジェクトの技術スタックを検出

ターゲットプロジェクトをスキャンして出力形式を決定:

  1. package.json をチェックしてフレームワークを確認:

    • react / react-dom → Reactコンポーネント
    • vue → Vue SFC
    • svelte → Svelteコンポーネント
    • @angular/core → Angularコンポーネント
  2. TypeScriptの有無を確認:

    • tsconfig.json が存在する場合 → TypeScript出力
    • 依存関係に typescript がある場合 → TypeScript出力
  3. スタイリングのアプローチを確認:

    • 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: コンポーネントを生成

識別された各コンポーネントに対して:

  1. propsのTypeScriptインターフェースを作成
  2. DOMアクセスに forwardRef パターンを適用
  3. アクセシビリティ属性を含める
  4. プロジェクトのスタイリングアプローチを使用
  5. 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:

  1. Check package.json for frameworks:

    • react / react-dom → React components
    • vue → Vue SFCs
    • svelte → Svelte components
    • @angular/core → Angular components
  2. Check for TypeScript:

    • tsconfig.json exists → TypeScript output
    • typescript in dependencies → TypeScript output
  3. Check styling approach:

    • tailwindcss → Tailwind classes
    • styled-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.json for full template

Step 5: Generate Components

For each identified component:

  1. Create TypeScript interface for props
  2. Apply forwardRef pattern for DOM access
  3. Include accessibility attributes
  4. Use project's styling approach
  5. Add JSDoc documentation

See templates/component-base.tsx and templates/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.md for 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:

  1. Read the theme CSS file referenced in the HTML
  2. Map theme variables to design tokens
  3. Preserve animations defined in the prototype
  4. 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` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。