Community画像github.com

マテリアルデザイン

UIやグラフィックレイアウトを生成する際に、マテリアルデザイン(2014年〜現在)スタイルを適用します。ユーザーが「マテリアルデザイン」「マテリアルUI」「Googleマテリアル」「エレベーション」「フローティングアクションボタン」「FAB」などを要求した場合にロードします。

マテリアルデザイン とは?

このスキルは、AIエージェント(Claude Code、Cursor、Codexなど)がUIやグラフィックレイアウトを生成する際に、Googleが2014年に発表したマテリアルデザイン(Material Design)スタイルを適用するための包括的なガイドラインを提供します。マテリアルデザインは、紙のような表面、定義された高さ(エレベーション)による影、8dpグリッド、大胆な色彩、目的を持った動きを特徴としています。このスキルは、Androidアプリ、管理ダッシュボード、多機能Webアプリ、デザインシステム、プロダクティビティツールに最適で、タイポグラフィ(Robotoフォント、特定のスケールとウェイト)、カラーパレット(プライマリ色とアクセント色)、エレベーション(0〜24dpの25段階)、モーション(300msのイージング、リップルエフェクト)、グリッドシステム(8dpベース、4/8/12カラム)など、あらゆる側面を詳細に定義しています。また、スタイルを破る禁止事項(グラデーション、テクスチャ、一貫性のない影、48dp未満のタッチターゲットなど)や、隣接するスタイル(フラットデザイン、スキューモーフィズム)への系統的フォールバックも提供しています。さらに、CSS変数やTailwind CSSパターンを使った具体的なコードスニペットも含まれており、実装を容易にします。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/musicalbee/design-ontology/tree/HEAD/skills/material-design

Installed? Explore more 画像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

マテリアルデザイン は何をしますか?

デジタル表面は、厚みと影を持つ紙のシートのように振る舞い、奥行きと動きがインターフェースの階層を説明します。

定義された高さに配置され、左上からのキーライトによって影を落とすフラットな色付き表面のシステム。大胆な色彩、8dpグリッド、目的を持った動きを特徴とします。Googleが2014年6月のI/Oで発表しました。

期間: 2014年〜現在 · 時代: タッチスクリーン · 分野: グラフィック&UIデザイン · 別名: マテリアル、Googleマテリアル、マテリアル2

このスキルをロードするタイミング

ユーザーが次のように要求した場合にロードします: 「マテリアルデザイン」「マテリアルUI」「Googleマテリアル」「エレベーション」「フローティングアクションボタン」「FAB」「Androidスタイル」「リップルエフェクト」「アプリバー」「ペーパーアンドインク」「md2」。

適している用途: Androidアプリケーション、管理ダッシュボード、多くのコンポーネントを持つWebアプリ、デザインシステム、プロダクティビティツール。

使用すべきでない場合:

  • ブランドに明確な個性が必要な場合(デフォルトの外観は明らかにGoogleのものになるため)
  • ページがエディトリアルで、インタラクティブコンポーネントが少ない場合
  • デザインに影が一切ない純粋な2Dルックが必要な場合

システムディレクティブ

マテリアルデザインでUIやグラフィックレイアウトを生成する場合、次のことを必ず実行しなければなりません:

  1. すべての表面を、決して曲がらず、引き伸ばされてサイズが変わらず、他の表面を通過しない、1dpの厚さの紙のシートとして扱うこと。
  2. 階層をdp単位のエレベーションで表現すること: ページは0、カードは1、アプリバーは4、フローティングボタンの通常状態は6、メニューは8、ナビゲーションドロワーは16、ダイアログは24。
  3. すべてのレイアウトを8dpグリッド上に構築すること。小さなテキストとアイコンの配置には4dp、タッチターゲットには48dpを使用すること。
  4. プライマリ色とアクセント色から大胆な色を使用し、ステータスバーにはプライマリ色の700シェード、アプリバーには500シェードを使用すること。
  5. Robotoで12、14、16、20、34、45、56spの定義されたスケールを持つ大きなタイポグラフィを使用すること。
  6. すべてのタッチに応答を与えること: タッチポイントから300msかけて成長する円形のリップル。
  7. 要素を曲線的なパスに沿って、高速で始まり低速で終わるイージングで移動させ、各動きがその要素がどこから来たのかを説明すること。

ガードレール

以下の各項目はスタイルを破ります。出力を返す前に、リストと照らし合わせて確認してください。

  • 絶対に避けること: 表面のグラデーションとテクスチャ。
  • 絶対に避けること: 一貫性のないエレベーションレベルや異なる光源方向を持つ影。
  • 絶対に避けること: 同じ高さで重なる表面。
  • 絶対に避けること: 48dp未満のタッチターゲット。
  • 絶対に避けること: 4.5:1未満の、色付き背景上の色付きテキスト。
  • 絶対に避けること: モーションやリップルフィードバックのない、瞬間的な状態変化。
  • 絶対に避けること: 1つの画面に複数のフローティングアクションボタン。

ベクタープロファイル

軸スコア1の意味5の意味
装飾性■■□□□ 2/5純粋なミニマルマキシマリスト
次元性■■■□□ 3/5厳密に2Dフル3D/空間的
グリッドの厳密さ■■■■□ 4/5混沌/有機的厳密な数学的グリッド
スキューモーフィックなリアリズム■■□□□ 2/5抽象的なデジタルphotorealisticな素材
タイポグラフィの表現力■■□□□ 2/5ニュートラル/不可視実験的/イラスト的

これらのスコアを維持してください。リクエストがいずれかの軸を2ポイント以上動かした場合、スタイルから逸脱しています: 「系統的フォールバック」に進んでください。

空間&グリッドロジック

  • グリッドメカニクス: 8dpベースライングリッド、アイコンとタイプには4dp、16dpマージンの4カラム電話グリッド、24dpマージンの8カラムタブレットグリッド、12カラムデスクトップグリッド、アプリバーは電話で56dp、デスクトップで64dp。
  • ホワイトスペース比率: 表面の25〜40%は空のまま。スペーシングスケールは4、8、16、24、32、48、56dp、カードのパディングは16dp。
  • 配置ルール: アバターのあるリストでは、コンテンツは左端から72dpのキーラインに揃え、それ以外では16dpのキーラインに揃える。フローティングアクションボタンは右端と下端から16dpの位置に配置する。
  • コンテナの形状: カードとボタンは2dpの角丸半径を使用。フローティングアクションボタンは56dpの円、ミニボタンは40dp。ダイアログは最小で280dp幅。

タイポグラフィ

  • 分類: ネオグロテスクサンセリフ · ヒューマニストサンセリフ
  • トラッキング: 34sp以上のディスプレイサイズは0em〜-0.01em。本文は+0.01em。ボタンは大文字で+0.09em。
  • 行間: 見出し 1.2。本文 1.4〜1.5(14sp、20dp行上)。リストテキストは16spで24dp。
  • 階層ルール:
    • スケール12、14、16、20、34、45、56spを使用し、これらの値の間のサイズは使用しないこと。
    • タイトルとボタンにはmedium(500)、本文にはregular(400)、45sp以上のディスプレイサイズにはlight(300)を使用すること。
    • 表面上のテキストは、プライマリは87%黒、セカンダリは54%黒、無効は38%黒に設定すること。
    • ボタンラベルは大文字で14sp、ウェイト500に設定すること。

フォントペアリング

表示本文備考
RobotoRobotoマテリアル1および2のシステム書体。ウェイト300から900の単一ファミリーで使用。
Roboto CondensedRoboto密度の高いヘッダー用のコンデンスドディスプレイフェイス。標準テキストフェイスと組み合わせる。
Noto SansNoto Sans非ラテン文字用のフォールバックファミリー。同じウェイトとメトリクス。

色彩&照明

  • パレット構造: 1つのプライマリ色相(500と700シェード付き)、1つのアクセント色相(A200〜A400範囲)、ニュートラルグレー。プライマリ色相はアプリバーと表面の10〜20%をカバー。
  • コントラストルール: 本文テキストは少なくとも4.5:1、大きなテキストは少なくとも3:1を維持。Indigo 500上の白テキストは7.5:1、Pink A200上では3.4:1に達するが、これは18spテキストのみに十分。
  • 表面処理: グラデーションやテクスチャのない、不透明でフラットな単色塗りつぶし。スクリムはダイアログの背後に32%不透明度の黒を使用。
  • 光と影: 上部からのキーライトとソフトなアンビエントライト。各影には半影、本影、アンビエントレイヤーがあり、ぼかしとオフセットはエレベーションとともに増加。

パレット

名前16進数役割
Surface#FFFFFFカードとシートの表面
Background#FAFAFAページ背景
Indigo 500#3F51B5プライマリ色とアプリバー
Indigo 700#303F9Fステータスバー
Pink A200#FF4081アクセント色とフローティングアクションボタン
Grey 900#21212187%不透明度のテキスト

マテリアリティ&テクスチャ

  • 表面シミュレーション: デジタルペーパー: 影を落とすが、木目、ベベル、テクスチャのない1dp厚のフラットシート。
  • 境界ルール: 表面に輪郭線はない。区切り線は1px黒、12%不透明度で、端から72dpまたは16dpインセット。テキストフィールドは1pxの下線を持ち、フォーカス時に2pxに拡大。
  • ぼかしとエレベーション: エレベーションシャドウ: 1dpは0 1px 3px(20%)+ 0 1px 1px(14%)、4dpは0 4px 5px(14%)+ 0 1px 10px(12%)、12dpは0 9px 12px(14%)。システムは0〜24dpの25段階を持つ。

装飾とアイコン

  • アイコン: 20dpのライブエリア上の24dpのシステムアイコン、2dpのストロークウェイト、2dpの角丸の正方形端子、ソリッド塗りつぶし、54%黒の単色。
  • イラスト: パレット内のフラットベクターシェイプ、20〜40%のスクリム下の全面写真。輪郭線とパースペクティブはなし。
  • 装飾要素: フローティングアクションボタン · リップル · エレベーションシャドウ · カラーブロックアプリバー · 全面ヒーロー画像 · カード

モーション&インタラクティビティ

  • 画面上で生まれたか: はい
  • トランジション物理: 表面はZ軸と画面平面に沿って曲線パスで移動。要素は高速で加速し、ソフトに減速する。共有要素は起点から終点へ移動。
  • イージング: cubic-bezier(0.4, 0, 0.2, 1)
  • 持続時間 (ms): 300
  • ホバーとアクティブ: ホバーは4%黒のオーバーレイを追加。プレスはタッチポイントから300msかけて成長する12%黒のリップルを表示。持ち上げボタンはプレス時に2dpから8dpに浮上。

コード&トークンプライマー

ルート要素に data-style="material-design" を設定し、トークンを貼り付けます。ファイル tokens.css には同じトークンと一連のリファレンスルールが含まれています。

[data-style="material-design"] {
  --color-bg: #FAFAFA;
  --color-surface: #FFFFFF;
  --color-text: rgba(0, 0, 0, 0.87);
  --color-muted: rgba(0, 0, 0, 0.54);
  --color-primary: #3F51B5;
  --color-accent: #FF4081;
  --color-border: rgba(0, 0, 0, 0.12);
  --font-sans: "Roboto", "Noto Sans", "Helvetica Neue", Arial, sans-serif;
  --font-display: "Roboto", "Noto Sans", "Helvetica Neue", Arial, sans-serif;
  --border-radius: 2px;
  --border-width: 1px;
  --shadow-elevation: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);
  --backdrop-filter: none;
  --space-unit: 8px;
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --duration: 300ms;
  --color-primary-dark: #303F9F;
  --shadow-1dp: 0 1px 3px 0 rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 2px 1px -1px rgba(0, 0, 0, 0.12);
  --shadow-24dp: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);
  --touch-target: 48px;
  --color-on-bg: #212121;
  --color-on-surface: #212121;
  --color-on-primary: #FAFAFA;
  --color-on-accent: #212121;
  --color-muted-on-bg: #737373;
  --color-muted-on-surface: #757575;
  --color-link: #3F51B5;
  --color-link-on-surface: #3F51B5;
  --display-weight: 300;
  --subhead-weight: 500;
  --body-weight: 400;
  --strong-weight: 500;
  --label-weight: 500;
  --display-tracking: 0em;
  --display-leading: 1.15;
  --display-case: none;
  --body-leading: 1.5;
  --body-size: 16px;
  --icon-stroke: 2;
}

Tailwind パターン:

要素クラス
ページmin-h-screen bg-[#FAFAFA] font-sans text-black/[0.87] antialiased
アプリバーflex h-14 md:h-16 items-center bg-[#3F51B5] px-4 text-xl font-medium text-white shadow-[0_2px_4px_-1px_rgba(0,0,0,0.2),0_4px_5px_0_rgba(0,0,0,0.14),0_1px_10px_0_rgba(0,0,0,0.12)]
カードrounded-sm bg-white p-4 shadow-[0_1px_3px_0_rgba(0,0,0,0.2),0_1px_1px_0_rgba(0,0,0,0.14),0_2px_1px_-1px_rgba(0,0,0,0.12)]
ボタンh-9 min-w-[64px] rounded-sm bg-[#3F51B5] px-4 text-sm font-medium uppercase tracking-[0.09em] text-white shadow-md transition-shadow duration-300 ease-[cubic-bezier(0.4,0,0.2,1)] hover:shadow-lg active:shadow-xl
FABh-14 w-14 rounded-full bg-[#FF4081] text-white shadow-[0_3px_5px_-1px_rgba(0,0,0,0.2),0_6px_10px_0_rgba(0,0,0,0.14),0_1px_18px_0_rgba(0,0,0,0.12)]

ビジュアルパック

このスタイルの画像とアイコンはファイルです。そのまま使用するか、仕様として読み取り、同じ言語で独自に描画してください。

ファイル内容
pack/hero.svgヒーロープレート、800 x 600。スタイルの視覚言語による抽象的な画像。
pack/pattern.svgパターンタイル、80 x 80。両方向に繰り返します。
pack/icons.svgアイコンスプライト: home, search, heart, star, bell, user, mail, calendar, image, bolt, play, check, close, sliders。
  • アイコン: ソリッド、24pxフィールド上でストローク2、バットキャップ、ラウンドジョイン、コンテナ: なし。使用法: <svg class="icon"><use href="pack/icons.svg#home"/></svg>。アイコンはcurrentColorを継承します。
  • アイコンファミリー: スプライトはGoogleのMaterial Symbols(Baseline, filled)から切り出されたもので、ライセンスはApache 2.0。理由: スタイル自体の塗りつぶしシステムセット、24dpグリッド上。デモ用のオープンソースの代替品です。製品では、ブランドのアイコンライブラリを使用し、以下のルールに従ってファミリーを選択してください。
  • 表示タイプ: ウェイト300、トラッキング0em、行間1.15、ケース: なし。
  • ウェイト: 表示300、小見出し500、本文400、テキスト内の太字500、ラベルとボタン500。このスタイルは3つのウェイト(300、400、500)のみを使用し、それ以外は使用しません。表示は本文より100軽く、サイズが階層を伝えます。アクセントはウェイト: より重い単語がアクセントとなるため、ウェイト間の段差は明確です。
  • 本文タイプ: 16px、行間1.5。
  • ページ: ヒーロー分割、左揃え、標準密度、アクセント傾き0°。
  • テキストカラー: --color-textはメインのリーディングフィールドのみに使用します。各フィールドでは、そのトークンを使用します: --color-on-bg、--color-on-surface、--color-on-primary、--color-on-accent。

アイコンパックの選び方

アイコンパックは絵のための書体です。テキストフェイスと同じ注意を払って選択してください。これらのルールは、オープンソースセットとライセンスライブラリの両方に適用されます。

  1. ストロークがステムと一致する。 アイコンをテキストサイズの本文テキストの隣に配置します。アイコンの線と文字のステムは同じウェイトを持ちます。
  2. 端子とコーナーは半径トークンに従う。 バットキャップとマイタージョインは半径ゼロに。ラウンドキャップとラウンドジョインはソフトな半径に。
  3. 塗りつぶしモードは時代のテクノロジーに従う。 印刷時代はソリッドフォームを切り抜きます。奥行きのあるスクリーン時代はフォームを塗りつぶし、シェーディングします。現在の製品インターフェースはアウトラインを描画します。
  4. メタファーはスタイルより新しいものであってはならない。 各画像はその時代が知っていたオブジェクトです。後の時代のメタファーを持つアイコンは時代を壊します。
  5. 1つのファミリー、1つのグリッド。 すべてのアイコンは1つのファミリーと1つのバリアントから、1つのフィールド上に描画されたものを使用します。1つの表面上でファミリーを混在させないでください。
  6. ファミリーは製品をカバーする。 コミットする前に、製品が必要とする各コンセプトをリストアップします。そのいずれかのアイコンを持たないファミリーは間違ったファミリーです。
  7. カラーはトークンである。 アイコンはcurrentColorを継承します。2番目のトーンはファイルではなくトークンから取得します。
  8. ライセンスが使用を許可する。 セットのライセンスを読みます。ライセンスが要求する場合はクレジットを記載します。ブランドを持つ製品はライセンスされたライブラリを使用し、同じルールを適用してファミリーを選択します。

系統的フォールバック

ユーザーがバリエーションを要求した場合、即興で作成しないでください。ここに名前のある隣接スタイルに向かってブレンドし、そのスキルをロードしてください。

  • ユーザーがよりフラットを要求した場合: flat-design(フラットデザイン)に向かって進みます。すべてのエレベーションシャドウを削除し、色のみで表面を分離し、カラーパレットと8dpグリッドを維持します。
  • ユーザーがより触感的を要求した場合: skeuomorphism(スキューモーフィズム)に向かって進みます。5〜10%のグラデーション、1pxのインナーハイライト、5%不透明度の表面テクスチャを追加し、エレベーションとレイアウトを維持します。
  • ユーザーが...

...

[翻訳のため省略]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル