Vibe Coding ガイド

Misora Design SystemをVibe Coding(AI駆動開発)で効果的に活用する方法を説明します。

🎯 Vibe Codingとは

Vibe Codingは、AIにコードを生成してもらう開発手法です。 Misora Design Systemは、AIがデザインシステムに沿ったコードを生成しやすいように設計されています。

AIへの参照方法 初心者向け

💡 はじめに

AIにMisora Design Systemを参照させるには、いくつかの方法があります。 初めての方は、方法1: リポジトリをクローンから始めるのがおすすめです。

方法1: リポジトリをクローン(推奨 ⭐)

デザインシステム全体をローカルにダウンロードして、AIに参照させる方法です。

手順

Terminal
git clone https://github.com/misora-connect/misora-design-system.git
cd misora-design-system

AIへの指示例

プロンプト
misora-design-systemリポジトリのreact/src/components/Buttonコンポーネントを
参照して、ログインボタンを作成してください。

✅ メリット

  • 全てのコンポーネントにアクセス可能
  • コンポーネントの実装詳細を確認できる
  • CSS Modulesも参照できる
  • 継続的に使用するプロジェクトに最適

❌ デメリット

  • 初回セットアップに少し時間がかかる
  • ディスク容量を使用する

方法2: 特定のファイルを直接見せる

必要なコンポーネントのコードだけをコピーして、AIに見せる方法です。

手順

  1. GitHubでreact/src/components/Button/Button.tsxを開く
  2. ファイルの内容をコピー
  3. AIに以下のようにプロンプトを送る

AIへの指示例

プロンプト
以下のButtonコンポーネントを使って、ログインフォームを作成してください。

[Button.tsxの内容をここに貼り付け]

✅ メリット

  • 必要な情報だけを提供
  • コンテキストが明確
  • トークン効率が良い
  • 単発のコンポーネント作成に最適

❌ デメリット

  • 複数コンポーネントを使う場合、繰り返しコピペが必要
  • 関連ファイル(CSS Modules)を別途コピーする必要がある

方法3: HTML版を参照させる

完成されたHTMLデモページをAIに見せる方法です。視覚的にわかりやすいのが特徴。

手順

  1. components.htmlをブラウザで開く
  2. 使いたいコンポーネントを確認
  3. AIにURLまたはHTMLコードを見せる

AIへの指示例

プロンプト
components.htmlを参照して、このデザインシステムに沿った
ログインフォームを作成してください。

[components.htmlのURL または HTMLコードを貼り付け]

✅ メリット

  • 視覚的にわかりやすい
  • HTML/CSSの完成例がある
  • コードサンプル付き
  • プロトタイピングに最適

❌ デメリット

  • React版とHTML版で実装が異なる場合がある
  • TypeScriptの型情報がない

方法4: Storybookのスクリーンショット

Storybookを起動して、コンポーネントのスクリーンショットをAIに見せる方法です。

手順

Terminal
npm install
npm run storybook
# ブラウザで http://localhost:6006 が開く
# スクリーンショットを撮る

AIへの指示例

プロンプト
添付したStorybookのスクリーンショットと同じデザインで、
ログインフォームを作成してください。

[スクリーンショットを添付]

✅ メリット

  • ビジュアルで伝わりやすい
  • バリエーションが一目瞭然
  • ダークモードの確認も可能
  • インタラクティブな動作も確認できる

❌ デメリット

  • Storybookのセットアップが必要
  • スクリーンショットを都度撮る手間

使い分けガイド

用途に応じて最適な方法を選びましょう:

用途 推奨方法 理由
新規プロジェクトで継続的に使う 方法1 リポジトリクローン 全コンポーネントにアクセス可能
単発のコンポーネント作成 方法2 ファイル直接参照 必要な情報だけ提供
デザインの再現 方法3/4 HTML版 or Storybook 視覚的にわかりやすい
プロトタイピング 方法3 HTML版参照 素早く確認できる

🚀 初めてのVibe Coding - ステップバイステップ

初めての方向けに、最初の一歩を解説します:

  1. リポジトリをクローン
    git clone https://github.com/misora-connect/misora-design-system.git
    cd misora-design-system
  2. components.htmlをブラウザで開いて確認
    open components.html
  3. AIに最初のプロンプトを送る
    misora-design-systemのButtonコンポーネントを使って、
    「お問い合わせ」という文字の入ったPrimaryボタンを作成してください。
  4. 生成されたコードを確認
    AIが生成したコードがデザインシステムに沿っているか確認します。
  5. 必要に応じて修正を依頼
    ボタンのサイズをlargeにしてください。

💡 Tip: 最初は簡単なコンポーネントから始めて、徐々に複雑な画面を作成していくと効果的です。

基本的な使い方

1. デザインシステムを参照させる

AIに以下のように指示します:

プロンプト
misora-design-systemのReactコンポーネントを使って、
ログインフォームを作成してください。

2. 具体的なコンポーネントを指定

プロンプト
misora-design-systemのButtonとInputを使って、
以下の機能を持つフォームを作成:
- メールアドレス入力(必須)
- パスワード入力(必須)
- ログインボタン(Primary)
- キャンセルボタン(Outline)

3. レイアウトも含めて指示

プロンプト
misora-design-systemのCardコンポーネント内に、
以下を含むユーザープロファイル画面を作成:
- ユーザー名表示
- メールアドレス編集フィールド
- 保存ボタンとキャンセルボタン

プロンプトテンプレート集

ログインフォーム

プロンプト
misora-design-systemのコンポーネントを使って、
ログインフォームを作成してください。

要件:
- メールアドレス入力(type="email"、必須)
- パスワード入力(type="password"、必須)
- ログインボタン(Primary、フルワイド)
- パスワードを忘れた方はこちらリンク

スタイル:
- Cardコンポーネントで囲む
- max-width: 400px
- 中央配置

管理画面ダッシュボード

プロンプト
misora-design-systemを使って、
SIM管理ダッシュボードを作成してください。

要件:
- 統計カード3枚(アクティブSIM数、データ使用量、月額料金)
- 検索バー(Input)
- SIMカード一覧テーブル(Table)
- アクションボタン(Primary: 新規追加、Outline: エクスポート)

レイアウト:
- グリッドレイアウト使用
- レスポンシブ対応

モーダルダイアログ

プロンプト
misora-design-systemのModalコンポーネントを参考に、
削除確認ダイアログを作成してください。

内容:
- タイトル:「SIMカードの削除」
- 本文:「このSIMカードを削除してもよろしいですか?」
- キャンセルボタン(Outline)
- 削除ボタン(Primary、赤色)

スタイリング指定

CSS Variablesを使用

プロンプト
ボタンの色をvar(--color-accent)に、
パディングをvar(--spacing-md)にしてください。

レスポンシブデザイン

プロンプト
モバイルでは1カラム、タブレットで2カラム、
デスクトップで3カラムのグリッドにしてください。
misora-design-systemのグリッドクラスを使用。

ベストプラクティス

✅ 良い例

misora-design-systemのButtonコンポーネントを使って、
variant="primary"、size="large"のボタンを作成。
テキストは"今すぐ申し込む"

理由:
• 具体的なコンポーネント名を指定
• Propsを明示
• 期待する結果が明確

❌ 避けるべき例

青いボタンを作って

理由:
• コンポーネントが指定されていない
• スタイルの具体性がない
• デザインシステムを活用できない

コンポーネント一覧

実装済みコンポーネント

コンポーネント Props例 用途
Button variant, size, fullWidth アクション実行
Input label, error, required テキスト入力
Card hoverable, noPadding コンテンツグループ化
Select options, label, error, required ドロップダウン選択
Textarea label, minRows, resize, error 複数行テキスト入力
Datepicker label, minDate, maxDate 日付選択
MonthPicker label, minYear, maxYear 年月選択
Table columns, data, sortable データテーブル表示
Modal isOpen, title, size, footer モーダルダイアログ
SidePanel isOpen, position, width, footer スライドインパネル
List variant, size, icon, title, action アクションリスト表示
Stepper steps, currentStep, orientation, size, clickable マルチステップ進行表示
Toast type, title, message, duration, position 一時的なフィードバック通知

Button

TSX
<Button
  variant="primary" | "secondary" | "outline"
  size="xsmall" | "small" | "medium" | "large"
  fullWidth={boolean}
  disabled={boolean}
>
  ボタンテキスト
</Button>

Input

TSX
<Input
  label="ラベル"
  placeholder="プレースホルダー"
  type="text" | "email" | "password" | "tel"
  error="エラーメッセージ"
  required={boolean}
  disabled={boolean}
/>

Card

TSX
<Card
  hoverable={boolean}
  noPadding={boolean}
>
  カードの内容
</Card>

実践例

例1:お問い合わせフォーム

プロンプト
misora-design-systemを使って、お問い合わせフォームを作成。

フィールド:
- お名前(Input、必須)
- メールアドレス(Input、type="email"、必須)
- 電話番号(Input、type="tel")
- お問い合わせ内容(textarea)

ボタン:
- 送信(Button、variant="primary"、fullWidth)

レイアウト:
- Cardで囲む
- max-width: 600px

例2:サービス紹介カード

プロンプト
misora-design-systemのCardを3枚並べた、
サービス紹介セクションを作成。

各カード内容:
1. IoT/M2M
   - アイコン(任意)
   - タイトル
   - 説明文
   - 詳細リンク

2. モバイルワーカー
3. エンタープライズ

レイアウト:
- グリッド3カラム
- モバイルで1カラム
- gap: var(--spacing-lg)

Claude Code連携

🤖 Claude Code での活用

別のNext.jsプロジェクトでMisora Design Systemを使う場合、 Claude Codeの /add-dir コマンドでデザインシステムを参照させることができます。 これにより、AIがコンポーネントの実装を理解した上でコードを生成してくれます。

セットアップ手順

  1. Step 1: デザインシステムをクローン

    任意の場所にMisora Design Systemをクローンします。

    Terminal
    # 例: ホームディレクトリにクローン
    cd ~
    git clone https://github.com/misora-connect/misora-design-system.git
  2. Step 2: Claude Code で /add-dir を実行

    あなたのNext.jsプロジェクトでClaude Codeを起動し、デザインシステムのディレクトリを追加します。

    Claude Code
    /add-dir ~/misora-design-system

    これでClaude Codeがデザインシステムのコンポーネントを参照できるようになります。

  3. Step 3: プロンプトでコンポーネントを指定

    UIを作成する際に、デザインシステムを参照するよう指示します。

UIに関するプロンプト例

基本的な使い方

プロンプト
misora-design-system/react/src/components/ のコンポーネントを参照して、
ログインフォームを作成してください。

使用コンポーネント:
- Input(メールアドレス、パスワード)
- Button(ログインボタン)
- Card(フォームを囲む)

フォーム作成

プロンプト
misora-design-system のReactコンポーネントを参考に、
ユーザー登録フォームを作成してください。

フィールド:
- 氏名(Input)
- メールアドレス(Input type="email")
- 生年月日(Datepicker)
- 都道府県(Select)
- 備考(Textarea)
- 利用規約同意チェックボックス

ボタン:
- 登録する(Button variant="primary" fullWidth)

管理画面の作成

プロンプト
misora-design-system のコンポーネントを使って、
ユーザー管理画面を作成してください。

要件:
- ユーザー一覧をTableで表示(ID、名前、メール、ステータス)
- 新規追加ボタンをクリックするとModalが開く
- 編集ボタンをクリックするとSidePanelが開く
- 検索用のInput
- 月別フィルター用のMonthPicker

スタイル:
- misora-design-systemのCSS Variablesを使用
- レスポンシブ対応

コンポーネント参照パス

Claude Codeにコンポーネントを参照させる際の主要なパス:

コンポーネント パス
Button react/src/components/Button/
Input react/src/components/Input/
Card react/src/components/Card/
Select react/src/components/Select/
Textarea react/src/components/Textarea/
Datepicker react/src/components/Datepicker/
MonthPicker react/src/components/MonthPicker/
Table react/src/components/Table/
Modal react/src/components/Modal/
SidePanel react/src/components/SidePanel/
List react/src/components/List/
Stepper react/src/components/Stepper/
Toast react/src/components/Toast/
グローバルCSS react/src/styles/globals.css

アイコンの使い方(Next.js)

Misora Design Systemのアイコンは icons/svg/ ディレクトリにSVGファイルとして格納されています。

利用可能なアイコン(15種類)

wifi signal sim-card smartphone antenna search menu close check plus minus arrow-up arrow-down arrow-left arrow-right

プロンプト例:アイコンをReactコンポーネント化

プロンプト
misora-design-system/icons/svg/ にあるSVGアイコンを参照して、
Next.jsで使えるReactコンポーネントを作成してください。

要件:
- 各アイコンをReactコンポーネント化(WifiIcon, SearchIcon など)
- size props で 16, 20, 24, 32, 48px のサイズ指定
- color props で色を指定可能(デフォルトは currentColor)
- TypeScript対応

プロンプト例:アイコン付きボタン

プロンプト
misora-design-systemを参照して、以下のアイコン付きUIを作成:

1. 検索バー
   - 左側にsearchアイコン
   - InputコンポーネントにMisoraのスタイル適用

2. ナビゲーションメニュー
   - menuアイコンでハンバーガーメニュー
   - closeアイコンで閉じる

3. アクションボタン
   - plusアイコン付き「新規追加」ボタン
   - arrow-rightアイコン付き「次へ」ボタン

アイコンファイルの参照パス

形式 パス 用途
個別SVG icons/svg/{icon-name}.svg Reactコンポーネント化、インラインSVG
SVGスプライト icons/sprite/misora-icons.svg 複数アイコンをまとめて使用
アイコンフォント icons/font/misora-icons.css CSSクラスで使用
TypeScript型 icons/font/misora-icons.ts アイコン名の型定義

💡 Tips

  • コンポーネント名は正確に指定(Button、Input など)
  • CSS Modulesのスタイルも自動的に参照されます
  • Storybookのstoriesファイルも参照すると、使用例がわかりやすくなります
  • 複雑な画面は段階的に依頼すると精度が上がります
  • アイコンは icons/svg/ を参照してReactコンポーネント化すると便利です

コンポーネントの移植方法

📦 他のReactプロジェクトへの移植

Misora Design SystemのReactコンポーネントは、他のプロジェクトに簡単に移植できるよう設計されています。 各コンポーネントは独立しており、相互依存がありません。

コンポーネントの構造

各コンポーネントは以下の構造で整理されています:

フォルダ構成
ComponentName/
├── ComponentName.tsx          # メインコンポーネント
├── ComponentName.module.css   # スコープされたスタイル
├── ComponentName.stories.tsx  # Storybook用(移植時は不要)
└── index.ts                   # エクスポート

ポイント: コンポーネント間に相互依存がないため、必要なコンポーネントだけを選んで移植できます。

移植に必要なファイル

コンポーネントを移植する際は、以下のファイルが必要です:

ファイル パス 必須 説明
コンポーネントフォルダ react/src/components/ComponentName/ 移植したいコンポーネント
グローバルスタイル react/src/styles/globals.css 基本スタイルとユーティリティ
CSS変数 react/src/styles/variables.css カラー、スペーシング、フォント等
TypeScript型定義 react/src/types/css-modules.d.ts TypeScript使用時のみ

移植手順

  1. Step 1: コンポーネントフォルダをコピー
    Terminal
    # 例: Buttonコンポーネントを移植
    cp -r react/src/components/Button 移植先/src/components/
    
    # 複数コンポーネントを移植する場合
    cp -r react/src/components/Button 移植先/src/components/
    cp -r react/src/components/Input 移植先/src/components/
    cp -r react/src/components/Card 移植先/src/components/
  2. Step 2: スタイルファイルをコピー
    Terminal
    # stylesフォルダを作成してコピー
    mkdir -p 移植先/src/styles
    cp react/src/styles/globals.css 移植先/src/styles/
    cp react/src/styles/variables.css 移植先/src/styles/
  3. Step 3: グローバルスタイルをインポート

    アプリケーションのエントリーポイントでスタイルをインポートします。

    App.tsx / _app.tsx
    // Next.js の場合: pages/_app.tsx または app/layout.tsx
    import '../styles/globals.css';
    
    // Create React App の場合: src/App.tsx または src/index.tsx
    import './styles/globals.css';
  4. Step 4: コンポーネントを使用
    TSX
    import { Button } from './components/Button';
    import { Input } from './components/Input';
    import { Card } from './components/Card';
    
    function LoginForm() {
      return (
        <Card>
          <Input label="メールアドレス" type="email" required />
          <Input label="パスワード" type="password" required />
          <Button variant="primary" fullWidth>ログイン</Button>
        </Card>
      );
    }

⚠️ 注意事項

  • CSS変数は必須: variables.css をコピーしないと、色やスペーシングが正しく表示されません。 スタイルが崩れる場合は、まずこのファイルがインポートされているか確認してください。
  • React 18+ が必要: コンポーネントはReact 18以上を前提に設計されています。
  • CSS Modulesのサポート: ビルドツール(Vite、Next.js、Create React App等)がCSS Modulesをサポートしている必要があります。
  • Storybookファイルは不要: .stories.tsx ファイルは開発ドキュメント用なので、移植時は削除して構いません。

移植チェックリスト

移植が完了したら、以下を確認してください:

  • ☐ コンポーネントフォルダがコピーされている
  • globals.cssvariables.css がコピーされている
  • ☐ エントリーポイントで globals.css をインポートしている
  • ☐ TypeScript使用時は css-modules.d.ts がある
  • ☐ ボタンやカードが正しい色で表示される
  • ☐ ダークモード切り替えが動作する(使用する場合)

Tips

1. コンポーネント名は正確に

Button、Input、Card など、正確な名前を指定

2. Props を明示

variant="primary" のように、期待するPropsを指定

3. CSS Variables を活用

var(--color-primary) などを使用

4. レスポンシブを意識

モバイル、タブレット、デスクトップでの表示を指定

5. Storybookを参照

実際のコンポーネントの動作を確認

6. 段階的に指示

複雑な画面は段階的に構築

参考リンク

Storybook

コンポーネントのライブプレビュー

npm run storybook

HTML版

コンポーネント一覧

components.html →

概要

デザインシステム概要

README →

Vibe Codingで効率的に開発!

Misora Design Systemに沿った美しいUIを、AIと一緒に構築しましょう。