DESIGN.mdの使い方 — AIコーディングでWebサイトのデザインを一貫させる方法

DESIGN.mdの使い方 — AIコーディングでWebサイトのデザインを一貫させる方法
目次

注意事項

  • 本記事の内容は試験的な実装であり、アイデアベースの検証です
  • 実務での利用を保証するものではありません
  • 実装についての責任は負いかねます。自己責任でご利用ください
  • AIの出力結果は常に検証が必要です

はじめに

AIコーディングツール(Claude Code、Cursorなど)でWebサイトを構築する際、デザインの一貫性を保つのは難しい課題です。ページごとに色やフォント、ボタンのスタイルがバラバラになったり、AIに毎回「前と同じデザインで」と指示し直す場面は少なくありません。

DESIGN.mdは、プロジェクトのデザインシステムをMarkdownで定義するファイルです。色、タイポグラフィ、コンポーネントのスタイルなどを1つのファイルにまとめることで、AIが自動的にデザインルールを読み取り、一貫したUIを生成できるようになります。

この記事では、新規でWebサイトを作る場合を想定し、DESIGN.mdの書き方から実際のワークフローまでを解説します。

DESIGN.mdとは

DESIGN.mdは、プロジェクトのビジュアルデザインをMarkdownで記述した仕様書です。GoogleのAIプロトタイピングツール「Stitch」が2026年3月に導入したフォーマットが、コミュニティで広く採用されています。

README.mdとの比較

ファイル役割対象
README.mdプロジェクトの概要・セットアップ手順人間向け
CLAUDE.mdClaude Codeへの指示・コーディング規約Claude Code向け
DESIGN.mdデザインシステム(色・フォント・コンポーネント)すべてのAIツール向け

ポイントは、DESIGN.mdがツールに依存しない点です。CLAUDE.mdはClaude Code専用、.cursorrulesはCursor専用ですが、DESIGN.mdはどのAIツールでも読み取れる汎用的な仕様書として機能します。

DESIGN.mdの構成(9セクション)

Google Stitch形式に基づく標準的な構成は以下の9セクションです。

1. Visual Theme & Atmosphere(ビジュアルテーマ)
2. Color Palette & Roles(カラーパレット)
3. Typography Rules(タイポグラフィ)
4. Component Stylings(コンポーネント)
5. Layout Principles(レイアウト)
6. Depth & Elevation(奥行き・影)
7. Do's and Don'ts(デザインルール)
8. Responsive Behavior(レスポンシブ対応)
9. Agent Prompt Guide(AI向けクイックリファレンス)

すべてを一度に書く必要はありません。最低限カラーパレット・タイポグラフィ・コンポーネントの3つがあれば、AIは十分に一貫したUIを生成できます。

実践: 新規WebサイトのDESIGN.mdを書く

コーポレートサイトを新規で作る場合を例に、DESIGN.mdを書いていきます。

1. Visual Theme & Atmosphere

プロジェクトのデザイン方針を言語化します。AIはこのセクションを読んで、全体のトーンを判断します。

# DESIGN.md

## Visual Theme & Atmosphere

- **テーマ**: モダンでクリーン、信頼感のあるビジネスサイト
- **雰囲気**: プロフェッショナルだが親しみやすい
- **角丸**: 8px を基本とし、柔らかい印象を与える
- **アニメーション**: 控えめ。トランジションは200ms ease-in-out

2. Color Palette & Roles

色は役割名(セマンティック名)HEX値 をセットで定義します。AIが「プライマリカラーで」という指示を正確に解釈できるようになります。

## Color Palette & Roles

### メインカラー

| 役割 | 色名 | HEX | 用途 |
|------|------|-----|------|
| Primary | ブルー | `#2563EB` | CTA、リンク、アクセントカラー |
| Primary Dark | ダークブルー | `#1D4ED8` | ホバー状態、強調 |
| Secondary | スレートグレー | `#475569` | サブテキスト、補助要素 |

### 背景・テキスト

| 役割 | HEX | 用途 |
|------|-----|------|
| Background | `#FFFFFF` | メイン背景 |
| Surface | `#F8FAFC` | カード、セクション背景 |
| Border | `#E2E8F0` | 区切り線、カード枠 |
| Text Primary | `#0F172A` | 見出し、本文 |
| Text Secondary | `#64748B` | 補助テキスト、キャプション |

### ステータスカラー

| 役割 | HEX | 用途 |
|------|-----|------|
| Success | `#16A34A` | 成功メッセージ |
| Warning | `#F59E0B` | 警告 |
| Error | `#DC2626` | エラー |

3. Typography Rules

フォントの優先順位とサイズ階層を定義します。

## Typography Rules

### フォントファミリー

- **見出し**: `"Noto Sans JP", "Helvetica Neue", Arial, sans-serif`
- **本文**: `"Noto Sans JP", "Helvetica Neue", Arial, sans-serif`
- **コード**: `"JetBrains Mono", "Source Code Pro", monospace`

### サイズ階層

| レベル | サイズ | ウェイト | 行間 | 用途 |
|--------|--------|----------|------|------|
| H1 | 36px / 2.25rem | 700 | 1.2 | ページタイトル |
| H2 | 28px / 1.75rem | 700 | 1.3 | セクション見出し |
| H3 | 22px / 1.375rem | 600 | 1.4 | サブセクション |
| Body | 16px / 1rem | 400 | 1.75 | 本文 |
| Small | 14px / 0.875rem | 400 | 1.5 | キャプション、注釈 |

4. Component Stylings

ボタンやカードなど、よく使うコンポーネントのスタイルを定義します。状態(ホバー、無効化など) も含めると、AIが状態変化まで正確に実装します。

## Component Stylings

### ボタン

#### Primary Button
- 背景: `#2563EB` → ホバー: `#1D4ED8`
- テキスト: `#FFFFFF`、16px、font-weight: 600
- パディング: `12px 24px`
- 角丸: `8px`
- トランジション: `background-color 200ms ease-in-out`
- 無効化時: opacity 0.5、cursor: not-allowed

#### Secondary Button
- 背景: `transparent` → ホバー: `#F1F5F9`
- ボーダー: `1px solid #E2E8F0`
- テキスト: `#475569`

### カード

- 背景: `#FFFFFF`
- ボーダー: `1px solid #E2E8F0`
- 角丸: `12px`
- パディング: `24px`
- シャドウ: `0 1px 3px rgba(0, 0, 0, 0.1)`
- ホバー: `0 4px 12px rgba(0, 0, 0, 0.1)`

### 入力フォーム

- 背景: `#FFFFFF`
- ボーダー: `1px solid #E2E8F0` → フォーカス: `2px solid #2563EB`
- 角丸: `8px`
- パディング: `10px 14px`
- プレースホルダー色: `#94A3B8`

5. Layout Principles

## Layout Principles

### スペーシング(8pxグリッド)

| トークン | 値 | 用途 |
|----------|------|------|
| xs | 4px | アイコンとテキストの間 |
| sm | 8px | 関連要素間 |
| md | 16px | カード内パディング |
| lg | 24px | セクション内余白 |
| xl | 48px | セクション間余白 |
| 2xl | 80px | ページセクション間 |

### コンテナ

- 最大幅: `1200px`
- 左右パディング: `24px`(モバイル: `16px`- センター配置: `margin: 0 auto`

6. Depth & Elevation

## Depth & Elevation

| レベル | シャドウ | 用途 |
|--------|---------|------|
| Level 0 | なし | フラットな要素 |
| Level 1 | `0 1px 3px rgba(0,0,0,0.1)` | カード、ドロップダウン |
| Level 2 | `0 4px 12px rgba(0,0,0,0.1)` | ホバー状態、モーダル |
| Level 3 | `0 8px 24px rgba(0,0,0,0.15)` | ダイアログ、ポップオーバー |

7. Do’s and Don’ts

AIが避けるべきパターンを明示します。このセクションがあるとデザインの「事故」を防げます。

## Do's and Don'ts

### Do(推奨)
- コントラスト比はWCAG AA基準(4.5:1以上)を守る
- ボタンのクリック領域は最低44x44px確保する
- 一画面のCTAは最大2つまでに絞る
- 余白を十分に取り、情報密度を下げる

### Don't(禁止)
- テキストに影をつけない
- 3色以上のグラデーションを使わない
- 本文テキストを14px未満にしない
- アニメーションの持続時間を500ms以上にしない
- Primary Buttonを1ページに3個以上配置しない

8. Responsive Behavior

## Responsive Behavior

### ブレークポイント

| 名称 | 幅 | 対象 |
|------|------|------|
| mobile | 〜639px | スマートフォン |
| tablet | 640px〜1023px | タブレット |
| desktop | 1024px〜 | デスクトップ |

### レスポンシブルール

- グリッドレイアウト: desktop 3列 → tablet 2列 → mobile 1列
- ナビゲーション: desktop 横並び → mobile ハンバーガーメニュー
- フォントサイズ: mobile では H1 を 28px、H2 を 22px に縮小
- タッチターゲット: mobile では最低48x48px確保

9. Agent Prompt Guide

AIが素早く参照できるクイックリファレンスです。

## Agent Prompt Guide

### カラーリファレンス(コピー用)

–color-primary: #2563EB; –color-primary-dark: #1D4ED8; –color-secondary: #475569; –color-bg: #FFFFFF; –color-surface: #F8FAFC; –color-border: #E2E8F0; –color-text: #0F172A; –color-text-secondary: #64748B; –color-success: #16A34A; –color-warning: #F59E0B; –color-error: #DC2626;


### よく使うプロンプト例

- 「DESIGN.mdに従って、ヒーローセクションを作って」
- 「DESIGN.mdのカードコンポーネントを使って、料金プラン表を作って」
- 「DESIGN.mdのレスポンシブルールに沿って、ナビゲーションを実装して」

DESIGN.mdの配置と連携

ファイル配置

DESIGN.mdはプロジェクトのルートディレクトリに配置します。

my-website/
├── DESIGN.md          ← デザインシステム
├── CLAUDE.md          ← Claude Code用の指示
├── package.json
├── src/
│   ├── components/
│   ├── pages/
│   └── styles/
└── public/

CLAUDE.mdからの参照

CLAUDE.mdにDESIGN.mdの参照を追加すると、Claude Codeが確実にデザインルールを適用します。

# CLAUDE.md

## デザインルール
- UI・スタイルに関する変更は、必ず DESIGN.md を参照すること
- DESIGN.md に定義されていない色やフォントを使わないこと
- 新しいコンポーネントを作る場合は DESIGN.md の既存パターンに合わせること

Cursorの場合

.cursorrulesに同様の参照を追加します。

Always refer to DESIGN.md when generating or modifying UI components.
Do not use colors or fonts not defined in DESIGN.md.

ワークフロー: DESIGN.mdを使ったWebサイト構築

新規Webサイトを作る際の実践的なワークフローです。

Step 1: DESIGN.mdを作成する

3つの方法があります。

方法向いているケース
AIに生成させるイメージはあるが具体的な値は決めていない
既存サイトから抽出する参考サイトのデザインを踏襲したい
手動で書くブランドガイドラインが既にある

AIに生成させる例(Claude Codeで実行):

「SaaSのランディングページを作りたい。モダンでクリーン、信頼感のある
デザインで、メインカラーは青系。DESIGN.mdを生成して」

Step 2: プロジェクトを初期化する

# Next.jsの場合
npx create-next-app@latest my-website --typescript --tailwind
cd my-website

# DESIGN.mdを配置(Step 1で作成済み)
# CLAUDE.mdにDESIGN.mdの参照を追加

Step 3: AIにページを生成させる

DESIGN.mdが配置されていれば、AIは自動的にデザインルールを読み取ります。

「DESIGN.mdに従って、トップページのヒーローセクションと
特徴紹介セクションを作って」

AIが生成するコードは、DESIGN.mdで定義した色・フォント・スペーシングを使ったものになります。

Step 4: デザインの一貫性を確認する

ページが増えても、AIはDESIGN.mdを参照し続けるため、デザインの一貫性が保たれます。もしズレが生じた場合は:

「このページのボタンがDESIGN.mdのスタイルと異なっている。修正して」

awesome-design-md: 既存サービスのデザインを活用する

ゼロからDESIGN.mdを書くのが面倒な場合、awesome-design-md(GitHub: VoltAgent/awesome-design-md)が便利です。Stripe、Notion、Vercel、Figmaなど58の有名サービスのDESIGN.mdが公開されています。

使い方

# リポジトリをクローン
git clone https://github.com/VoltAgent/awesome-design-md.git

# 使いたいデザインをコピー
cp awesome-design-md/stripe/DESIGN.md ./my-website/DESIGN.md

あとはAIに「DESIGN.mdに従ってページを作って」と指示するだけで、Stripeライクなデザインのサイトが生成されます。

収録されているデザイン(一部)

カテゴリサービス例
AI/MLClaude、Mistral AI、Ollama、Replicate
開発ツールCursor、Linear、Vercel、Supabase
デザインFigma、Notion、Framer、Webflow
フィンテックStripe、Coinbase、Wise
コンシューマーApple、Uber、Spotify、Airbnb

DESIGN.mdを使う際の注意点

更新を忘れない

デザインを変更したらDESIGN.mdも更新する必要があります。古いDESIGN.mdはAIを誤った方向に導きます。

過度に詳細にしない

すべてのコンポーネントを事前に定義する必要はありません。AIは基本パターンから応用できるため、主要なコンポーネント5〜10個を定義すれば十分です。

Tailwind CSSとの相性

Tailwind CSSを使う場合、DESIGN.mdのカラーパレットをtailwind.config.jsにも反映させると、AIがbg-primaryのようなクラス名で一貫したスタイルを適用できます。

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        primary: '#2563EB',
        'primary-dark': '#1D4ED8',
        secondary: '#475569',
        surface: '#F8FAFC',
      }
    }
  }
}

まとめ

DESIGN.mdは、AIコーディング時代のビジュアル仕様書です。

課題DESIGN.mdによる解決
ページごとにデザインがバラバラになるカラー・フォント・コンポーネントを一元定義
AIに毎回デザインを説明し直すファイルを自動読み取り、指示不要
ツールを乗り換えるとルールが失われるMarkdown形式でツール非依存
デザイナーとの認識ずれ同じファイルを共有して合意形成

新規Webサイトを作るなら、コードを書き始める前にDESIGN.mdを用意するのがおすすめです。最初に30分かけてデザインルールを定義すれば、その後の開発でデザインの手戻りを大幅に削減できます。

参考リンク