@mickey最終更新 2026年5月25日投稿 2026年5月18日
デザインシステムの語彙を知ることで、AIへの指示は「なんかGoogleっぽい感じで」から「Material Design 3のカラートークンを使って」に変わります。
デザインシステムの語彙を知ることで、AIへの指示は「なんかGoogleっぽい感じで」から「Material Design 3のカラートークンを使って」に変わります。
記事1・2でUIの部品名と状態の語彙を学びました。しかしまだ「雰囲気」で指示しているシーンが残っています。
| 指示のタイプ | 例文 | 問題点 |
|---|---|---|
| 雰囲気で伝える | 「なんかGoogleっぽいマテリアルな感じで作って」 | 解釈がブレる。影の深さ・色の使い方・アニメーションが人によって異なる |
| 仕様で伝える | 「Material Design 3のElevation Level 2・Primary Colorトークンを使って実装して」 | 仕様が一意に決まる。AIが迷わず実装できる |
デザインシステムとは、色・余白・タイポグラフィ・コンポーネントの設計ルールをまとめた「共通言語集」 です。開発元が異なるいくつかの主要なデザインシステムが存在し、それぞれ独自の世界観と語彙を持っています。
デザインシステムはただの「スタイルガイド」ではありません。それぞれ独自の世界観・哲学を持つ「設計思想」です。どのシステムを参照するかをAIに伝えるだけで、UIの方向性が一気に定まります。
主要なデザインシステムを7つ整理します。
| デザインシステム | 開発元 | ターゲット/主な用途 | 核となる世界観・特徴 |
|---|---|---|---|
| Material Design | Android・Web全般 | 「紙と影」現実世界の物理法則(光・影・アニメーション)を取り入れた直感的なデザイン | |
| Human Interface Guidelines | Apple | iOS・macOSなど自社製品 | 「洗練と体験」贅沢な余白・美しいタイポグラフィ・すりガラス効果を用いた高級感のあるデザイン |
| Fluent Design System | Microsoft | Windows 11・3D・VR空間 | 「光とアクリル」光の演出や半透明レイヤー(アクリル)を多用した奥行きを感じさせる多次元的なデザイン |
| Spectrum | Adobe | クリエイター向けツール | 「圧倒的な機能美」大量のツールを配置しても迷わない情報設計と長時間作業でも疲れない厳格なコントラスト管理 |
| Polaris | Shopify | ECサイト運営者(ビジネス) | 「実用性とタスク完了」ショップ運営者が迷わず売上管理・商品登録を行えるよう文字(言葉選び)のルールまで徹底定義 |
| Carbon Design System | IBM | 企業向けシステム・データ分析 | 「データと信頼感」無駄な装飾を削ぎ落とした硬派なデザイン。複雑なダッシュボードやグラフの美しさに特化 |
| Atlassian Design System | Atlassian | チームのコラボレーションツール | 「親しみやすさと軽快さ」仕事が楽しくなる明るい配色とイラスト、タスクの進捗を直感的に伝えるバッジなどの工夫 |
| デザインシステム | 公式ドキュメント |
|---|---|
| Material Design | https://m3.material.io |
| Human Interface Guidelines | https://developer.apple.com/design/human-interface-guidelines |
| Fluent Design System | https://fluent2.microsoft.design |
| Spectrum | https://spectrum.adobe.com |
| Polaris | https://polaris.shopify.com |
| Carbon Design System | https://carbondesignsystem.com |
| Atlassian Design System | https://atlassian.design |
作るものの「用途」と「ユーザー」で参照するデザインシステムが変わります。
「青っぽい色で」ではなく「Primary Color トークンで」と指示できるようになると、AIが出力するコードに一貫性が生まれます。デザイントークンはUIの仕様を数値・変数で定義する共通言語です。
デザイントークンとは、色・余白・フォントサイズ・角丸などのスタイル値に名前をつけて変数化したものです。マジックナンバー(#1976D2や16px)を直接使う代わりに、意味のある名前(primary-color・spacing-md)で管理します。
色を「役割」で名前をつけて管理します。色の見た目ではなく、使いどころで名前が決まります。
| トークン名 | 役割 | 使いどころ |
|---|---|---|
| Primary | ブランドのメインカラー | プライマリボタン・リンク・アクティブ状態 |
| Secondary | サブカラー | セカンダリボタン・補足情報 |
| Surface | 背景・カード面の色 | カード・モーダル・シート背景 |
| Background | ページ全体の背景色 | body背景 |
| Error | エラー状態の色 | エラーメッセージ・バリデーション |
| On Primary | Primary上に乗るテキスト色 | プライマリボタン内のテキスト |
| Outline | 枠線・区切り線の色 | ボーダー・ディバイダー |
AIへの指示例:「ボタンの背景色はPrimaryトークン、テキストはOn Primaryトークンを使って実装して」
余白を「段階的なスケール」で管理します。4px・8px基準のグリッドシステムが一般的です。
| トークン名 | 値(4px基準) | 使いどころ |
|---|---|---|
| spacing-xs | 4px | アイコンとテキストの間隔 |
| spacing-sm | 8px | 関連要素間の小さな余白 |
| spacing-md | 16px | カード内のパディング |
| spacing-lg | 24px | セクション間の余白 |
| spacing-xl | 32px | ページ上下の余白 |
| spacing-2xl | 48px | 大きなセクション間 |
AIへの指示例:「カード内のパディングはspacing-md(16px)、カード間のギャップはspacing-lg(24px)で統一して」
文字サイズ・太さ・行間を「役割」で管理します。見出し・本文・キャプションなど用途で名前が決まります。
| トークン名 | フォントサイズ | 使いどころ |
|---|---|---|
| display-lg | 57px | ヒーローエリアの大見出し |
| headline-md | 28px | セクション見出し(h2相当) |
| title-lg | 22px | カードタイトル・h3相当 |
| body-lg | 16px | 本文テキスト |
| body-sm | 14px | 補足テキスト・ラベル |
| label-sm | 11px | キャプション・タグ |
AIへの指示例:「記事タイトルはheadline-md、本文はbody-lg、投稿日時はlabel-smのタイポグラフィトークンを使って実装して」
デザイントークンは「グローバルトークン→エイリアストークン→コンポーネントトークン」の3階層で管理するのが一般的です。
「プライマリボタンの背景色」を例に3階層を追ってみます。
ブランドカラーを青から緑に変えたい場合、グローバルトークンの参照先を変えるだけでprimaryを使っている全箇所が一括で変わります。
TailwindCSSはトークンの概念をクラス名として実装しています。
| デザイントークンの概念 | Tailwindでの表現 |
|---|---|
spacing-md(16px) | p-4 m-4 gap-4 |
primary-color | bg-blue-500 text-blue-500 |
body-lg(16px) | text-base |
border-radius-md | rounded-md |
プロジェクト固有のブランドカラーはtailwind.config.jsでカスタムトークンとして定義します。
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
primary: '#1976D2',
'primary-hover': '#1565C0',
},
spacing: {
'sm': '8px',
'md': '16px',
'lg': '24px',
}
}
}
}
アトミックデザインはUIを「部品の階層」で考える強力なフレームワークです。ただし実装のフォルダ構成にそのまま適用すると、分類の曖昧さが混乱を招くことがあります。
アトミックデザインとは、UIを化学の原子(Atom)になぞらえて5つの階層に分解して考える設計思想です。Brad Frost氏が提唱しました。
| 階層 | 説明 | 例 |
|---|---|---|
| Atoms | これ以上分解できない最小の部品 | Button・Input・Icon・Label |
| Molecules | Atomを組み合わせた小さな部品群 | SearchBar(Input+Button)・FormField |
| Organisms | Moleculeを組み合わせた複雑な部品 | Header・ProductCard・CommentSection |
| Templates | ページのレイアウト骨格 | 2カラムレイアウト・ダッシュボードレイアウト |
| Pages | Templateにコンテンツを流し込んだ完成画面 | トップページ・商品詳細ページ |
アトミックデザインの本来の価値は「UIを階層で考える視点」を与えてくれることです。
AIへの指示でこの視点を使うとこうなります:
| 指示の場面 | アトミックデザインを使った指示例 |
|---|---|
| 部品の再利用性を伝える | 「ButtonはAtomとして、どのページでも使い回せる汎用コンポーネントにして」 |
| 複合部品の構造を伝える | 「SearchBarはInputとButtonを組み合わせたMolecule相当のコンポーネントにして」 |
| ページ構造を伝える | 「このページはHeaderとサイドバーとメインコンテンツで構成されるTemplateを先に作って」 |
「このコンポーネントはAtomかMoleculeか?」という問いに明確な答えは出ません。チームやAIとの間でも判断がブレやすくなります。
「共通で使うか、機能固有か」という軸で分けるのが実用的です。
「影をつけて」「角を丸くして」という指示を数値と用語で伝えられるようになると、AIが出力するUIの質感が一気に揃います。
視覚的な「奥行き」「柔らかさ」「立体感」を作り出す3つの語彙を整理します。
UIの要素が「どのくらい浮いているか」を表す概念です。Material Designが定義した語彙で、影の深さで奥行きを表現します。
| レベル | 影の深さ | 使いどころ |
|---|---|---|
| Level 0 | 影なし | フラットな背景・無効状態 |
| Level 1 | ごく薄い影 | カード・リスト |
| Level 2 | 薄い影 | ホバー時のカード・ドロップダウン |
| Level 3 | 中程度の影 | ナビゲーションドロワー・サイドバー |
| Level 4 | 濃い影 | モーダル・ダイアログ |
| Level 5 | 最も濃い影 | FAB・最前面の要素 |
AIへの指示例:「カードはElevation Level 1、ホバー時はLevel 2に上がるアニメーションをつけて、モーダルはLevel 4で実装して」
エレベーションを実現するための具体的なCSS表現です。種類と使い分けを知ることで、AIへの指示がより精密になります。
| 種類 | CSS | 説明 | 使いどころ |
|---|---|---|---|
| ドロップシャドウ | box-shadow | 要素の外側に落ちる影 | カード・ボタン・モーダル |
| インナーシャドウ | box-shadow: inset | 要素の内側に落ちる影 | 押し込まれた感・入力欄 |
| テキストシャドウ | text-shadow | テキストに落ちる影 | ヒーローエリアの文字・見出し |
AIへの指示例:「カードにはドロップシャドウ(shadow-md相当)、Active状態のボタンにはインナーシャドウで押し込まれた質感をつけて」
要素の角の丸みを指定する値です。数値が大きいほど丸くなります。角丸の大きさひとつでUIの印象が大きく変わります。
| 値 | 見た目 | 使いどころ |
|---|---|---|
| 0px | 完全な四角 | テーブル・グリッドライン・シャープなUI |
| 4px(rounded-sm) | わずかに丸い | 入力フィールド・タグ |
| 8px(rounded-md) | 標準的な丸み | カード・ボタン・モーダル |
| 16px(rounded-lg) | 大きめの丸み | カード・通知バナー |
| 9999px(rounded-full) | 完全な楕円・Pill形状 | バッジ・タグ・トグルスイッチ |
| 50%(rounded-full) | 完全な円 | アバター・FAB・アイコンボタン |
エレベーション・シャドウ・ボーダーラジウスを組み合わせることで、UIの質感を精密に伝えられます。
読み終えたら完了にしましょう
完了ボタンを押すと、モジュール「AIコーディングのためのデザイン用語」の進捗として記録されます。読んだ内容を振り返るときにも役立ちます。