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.md | Claude 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/ML | Claude、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分かけてデザインルールを定義すれば、その後の開発でデザインの手戻りを大幅に削減できます。