material-design-3
Material Design 3の知識を活用し、最新のウェブやAngularアプリでテーマ、コンポーネント、アクセシビリティなどを実装するSkill。
📜 元の英語説明(参考)
Material Design 3 (Material You) design system knowledge for modern web and Angular applications. Use when implementing Material Design 3 theming, components, typography, color systems, dynamic color, accessibility patterns, or migrating from Material Design 2. Covers design tokens, theming APIs, and Material You principles.
🇯🇵 日本人クリエイター向け解説
Material Design 3の知識を活用し、最新のウェブやAngularアプリでテーマ、コンポーネント、アクセシビリティなどを実装するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Material Design 3 (Material You) スキル
🎯 目的
このスキルは、Angular アプリケーション向けにパーソナライゼーション、アクセシビリティ、最新の UI パターンを重視した Google の最新デザインシステムである Material Design 3 (Material You とも呼ばれます) に関する包括的なガイダンスを提供します。
📦 Material Design 3 とは?
Material Design 3 は、Google の最新デザイン言語であり、以下を導入しています。
- ダイナミックカラー: ユーザーの好みに基づく適応型カラーパレット
- 強化されたアクセシビリティ: デフォルトで WCAG 2.1 AA に準拠
- 柔軟なテーマ設定: トークンベースのテーマシステム
- モダンなコンポーネント: カスタマイズ性が向上した更新されたコンポーネントデザイン
- パーソナライゼーション: 好みに合わせて適応するユーザー中心のデザイン
🎨 このスキルを使用するタイミング
Material Design 3 のガイダンスは、次のような場合に使用してください。
- Material Design を使用して新しい Angular アプリケーションを実装する場合
- Material Design 2 から Material Design 3 に移行する場合
- Material Design 3 トークンを使用してカスタムテーマを作成する場合
- ダイナミックカラーテーマを実装する場合
- アクセシブルでモダンな UI コンポーネントを構築する場合
- Material You のデザイン原則に従う場合
- Material Design 3 のタイポグラフィおよびスペーシングシステムを使用する場合
🛠️ コアコンセプト
1. カラーシステム
Material Design 3 は、洗練されたカラーシステムを導入しています。
カラーロール:
- Primary: 主要なアクションのメインブランドカラー
- Secondary: あまり目立たないアクションの補助カラー
- Tertiary: ハイライトとコントラストのためのアクセントカラー
- Error: エラーステートのカラー
- Surface: コンポーネントの背景色
- On-colors: 対照的なテキスト/アイコンの色 (on-primary、on-secondary など)
カラーバリアント:
- コンテナカラー (例:
primary-container) - オンコンテナカラー (例:
on-primary-container) - サーフェスバリアント (surface-dim、surface-bright、surface-container)
2. ダイナミックカラー
Material Design 3 の特徴的な機能です。
- ソースカラーからカラースキームを生成します
- ライトテーマとダークテーマの両方をサポートします
- 自動コントラスト調整
- システムレベルのカラー抽出 (サポートされているプラットフォームでは壁紙から)
3. タイポグラフィ
5つのタイポグラフィスケールがあります。
- Display: 最大のテキスト (display-large、display-medium、display-small)
- Headline: セクションヘッダー (headline-large から headline-small)
- Title: サブセクションのタイトル (title-large から title-small)
- Body: メインコンテンツ (body-large、body-medium、body-small)
- Label: UI ラベル (label-large から label-small)
4. エレベーション
3つのエレベーション戦略があります。
- Shadow: 影による従来のエレベーション
- Overlay: トーナルサーフェスオーバーレイ
- Combined: 影 + オーバーレイによる奥行き知覚の向上
5. シェイプ
4つのスケールを持つ角丸システムです。
- None: 0dp (シャープな角)
- Extra Small: 4dp
- Small: 8dp
- Medium: 12dp
- Large: 16dp
- Extra Large: 28dp
📚 Angular での実装
Material Design 3 テーマの設定
// Define your theme using M3 tokens
@use '@angular/material' as mat;
// Include core Material Design 3 styles
@include mat.core();
// Define your color palette
$my-primary: mat.define-palette(mat.$azure-palette);
$my-accent: mat.define-palette(mat.$blue-palette);
$my-warn: mat.define-palette(mat.$red-palette);
// Create the theme
$my-theme: mat.define-theme((
color: (
theme-type: light,
primary: $my-primary,
tertiary: $my-accent,
),
typography: (
brand-family: 'Roboto',
bold-weight: 700
),
density: (
scale: 0
)
));
// Apply the theme
@include mat.all-component-themes($my-theme);
// Dark theme variant
$my-dark-theme: mat.define-theme((
color: (
theme-type: dark,
primary: $my-primary,
tertiary: $my-accent,
)
));
// Apply dark theme when needed
.dark-theme {
@include mat.all-component-colors($my-dark-theme);
}
カラー・トークンの使用
// Access theme colors in your components
.my-component {
background-color: var(--mat-sys-primary);
color: var(--mat-sys-on-primary);
&:hover {
background-color: var(--mat-sys-primary-container);
color: var(--mat-sys-on-primary-container);
}
}
// Surface variants
.surface {
background-color: var(--mat-sys-surface);
color: var(--mat-sys-on-surface);
}
.surface-container {
background-color: var(--mat-sys-surface-container);
}
タイポグラフィの使用
// Using typography tokens
.heading {
font: var(--mat-sys-headline-large);
}
.body-text {
font: var(--mat-sys-body-medium);
}
.label {
font: var(--mat-sys-label-small);
}
エレベーションとシャドウ
.elevated-card {
// Level 1 elevation
box-shadow: var(--mat-sys-level1);
&:hover {
// Level 2 elevation on hover
box-shadow: var(--mat-sys-level2);
}
}
🎯 ベストプラクティス
1. テーマの一貫性
- ハードコードされた値の代わりにデザイン・トークンを使用してください
- コンポーネント間で一貫した色の使用を維持してください
- Material Design 3 のカラーロールガイドラインに従ってください
2. アクセシビリティ
- テキストのコントラスト比が最低 4.5:1 であることを確認してください
- セマンティックなカラーロール (primary、secondary、error) を使用してください
- ライトテーマとダークテーマの両方をサポートしてください
- 十分なタッチターゲットサイズ (最低 48x48dp) を提供してください
3. レスポンシブデザイン
- Material Design 3 のブレークポイントを使用してください
- さまざまな画面サイズに合わせてレイアウトを調整してください
- モバイル、タブレット、デスクトップのビューポートでテストしてください
4. ダイナミックテーマ設定
// Example: Dynamic theme switching in Angular
export class ThemeService {
private isDark = signal(false);
toggleTheme() {
this.isDark.update(dark => !dark);
document.body.classList.toggle('dark-theme', this.isDark());
}
applyCustomColors(sourceColor: string) {
// Generate M3 palette from source color
const palette = this.generateM3Palette(sourceColor);
this.applyCSSVariables(palette);
}
}
🔧 一般的なパターン
M3 トークンを使用したカスタムコンポーネント
@Component({
selector: 'app-custom-button',
template: `
<button class="m3-button" [class.filled]="variant === 'filled'">
<ng-content></ng-content>
</button>
`,
styles: [`
.m3-button {
padd 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Material Design 3 (Material You) Skill
🎯 Purpose
This skill provides comprehensive guidance on Material Design 3 (also known as Material You), Google's latest design system that emphasizes personalization, accessibility, and modern UI patterns for Angular applications.
📦 What is Material Design 3?
Material Design 3 is Google's latest design language that introduces:
- Dynamic Color: Adaptive color palettes based on user preferences
- Enhanced Accessibility: WCAG 2.1 AA compliance by default
- Flexible Theming: Token-based theming system
- Modern Components: Updated component designs with better customization
- Personalization: User-centric design that adapts to preferences
🎨 When to Use This Skill
Use Material Design 3 guidance when:
- Implementing a new Angular application with Material Design
- Migrating from Material Design 2 to Material Design 3
- Creating custom themes using Material Design 3 tokens
- Implementing dynamic color theming
- Building accessible, modern UI components
- Following Material You design principles
- Working with Material Design 3 typography and spacing systems
🛠️ Core Concepts
1. Color System
Material Design 3 introduces a sophisticated color system:
Color Roles:
- Primary: Main brand color for prominent actions
- Secondary: Supporting color for less prominent actions
- Tertiary: Accent color for highlights and contrasts
- Error: Color for error states
- Surface: Background colors for components
- On-colors: Contrasting text/icon colors (on-primary, on-secondary, etc.)
Color Variants:
- Container colors (e.g.,
primary-container) - On-container colors (e.g.,
on-primary-container) - Surface variants (surface-dim, surface-bright, surface-container)
2. Dynamic Color
Material Design 3's signature feature:
- Generate color schemes from source colors
- Support both light and dark themes
- Automatic contrast adjustments
- System-level color extraction (from wallpaper on supported platforms)
3. Typography
Five typography scales:
- Display: Largest text (display-large, display-medium, display-small)
- Headline: Section headers (headline-large to headline-small)
- Title: Subsection titles (title-large to title-small)
- Body: Main content (body-large, body-medium, body-small)
- Label: UI labels (label-large to label-small)
4. Elevation
Three elevation strategies:
- Shadow: Traditional elevation with shadows
- Overlay: Tonal surface overlays
- Combined: Shadow + overlay for enhanced depth perception
5. Shape
Rounded corner system with four scales:
- None: 0dp (sharp corners)
- Extra Small: 4dp
- Small: 8dp
- Medium: 12dp
- Large: 16dp
- Extra Large: 28dp
📚 Implementation in Angular
Setting Up Material Design 3 Theme
// Define your theme using M3 tokens
@use '@angular/material' as mat;
// Include core Material Design 3 styles
@include mat.core();
// Define your color palette
$my-primary: mat.define-palette(mat.$azure-palette);
$my-accent: mat.define-palette(mat.$blue-palette);
$my-warn: mat.define-palette(mat.$red-palette);
// Create the theme
$my-theme: mat.define-theme((
color: (
theme-type: light,
primary: $my-primary,
tertiary: $my-accent,
),
typography: (
brand-family: 'Roboto',
bold-weight: 700
),
density: (
scale: 0
)
));
// Apply the theme
@include mat.all-component-themes($my-theme);
// Dark theme variant
$my-dark-theme: mat.define-theme((
color: (
theme-type: dark,
primary: $my-primary,
tertiary: $my-accent,
)
));
// Apply dark theme when needed
.dark-theme {
@include mat.all-component-colors($my-dark-theme);
}
Using Color Tokens
// Access theme colors in your components
.my-component {
background-color: var(--mat-sys-primary);
color: var(--mat-sys-on-primary);
&:hover {
background-color: var(--mat-sys-primary-container);
color: var(--mat-sys-on-primary-container);
}
}
// Surface variants
.surface {
background-color: var(--mat-sys-surface);
color: var(--mat-sys-on-surface);
}
.surface-container {
background-color: var(--mat-sys-surface-container);
}
Typography Usage
// Using typography tokens
.heading {
font: var(--mat-sys-headline-large);
}
.body-text {
font: var(--mat-sys-body-medium);
}
.label {
font: var(--mat-sys-label-small);
}
Elevation and Shadows
.elevated-card {
// Level 1 elevation
box-shadow: var(--mat-sys-level1);
&:hover {
// Level 2 elevation on hover
box-shadow: var(--mat-sys-level2);
}
}
🎯 Best Practices
1. Theme Consistency
- Use design tokens instead of hardcoded values
- Maintain consistent color usage across components
- Follow Material Design 3 color role guidelines
2. Accessibility
- Ensure minimum 4.5:1 contrast ratio for text
- Use semantic color roles (primary, secondary, error)
- Support both light and dark themes
- Provide sufficient touch target sizes (48x48dp minimum)
3. Responsive Design
- Use Material Design 3 breakpoints
- Adapt layouts for different screen sizes
- Test on mobile, tablet, and desktop viewports
4. Dynamic Theming
// Example: Dynamic theme switching in Angular
export class ThemeService {
private isDark = signal(false);
toggleTheme() {
this.isDark.update(dark => !dark);
document.body.classList.toggle('dark-theme', this.isDark());
}
applyCustomColors(sourceColor: string) {
// Generate M3 palette from source color
const palette = this.generateM3Palette(sourceColor);
this.applyCSSVariables(palette);
}
}
🔧 Common Patterns
Custom Component with M3 Tokens
@Component({
selector: 'app-custom-button',
template: `
<button class="m3-button" [class.filled]="variant === 'filled'">
<ng-content></ng-content>
</button>
`,
styles: [`
.m3-button {
padding: 10px 24px;
border-radius: var(--mat-sys-corner-full);
font: var(--mat-sys-label-large);
border: none;
cursor: pointer;
&.filled {
background-color: var(--mat-sys-primary);
color: var(--mat-sys-on-primary);
&:hover {
background-color: var(--mat-sys-primary-container);
color: var(--mat-sys-on-primary-container);
}
}
&.outlined {
background-color: transparent;
border: 1px solid var(--mat-sys-outline);
color: var(--mat-sys-primary);
}
}
`]
})
export class CustomButtonComponent {
@Input() variant: 'filled' | 'outlined' = 'filled';
}
🐛 Troubleshooting
| Issue | Solution |
|---|---|
| Colors not applying | Ensure @include mat.core() is called first |
| Theme tokens undefined | Check Angular Material version (requires v15+) |
| Dark theme not working | Verify .dark-theme class is applied to parent element |
| Custom colors not working | Use define-palette() with proper Material color palette |
| Typography not loading | Include Material Design fonts (Roboto) in index.html |
| Accessibility contrast issues | Use Material's built-in color roles instead of custom colors |
📖 References
- Material Design 3 Official Guidelines
- Angular Material Theming Guide
- Material Design Color System
- Material Design Typography
- Accessibility Guidelines
💡 Migration from Material Design 2
Key changes when migrating from M2 to M3:
- Replace color palette with theme-type approach
- Update component styles to use design tokens
- Migrate custom themes to new theming API
- Update typography from mat-typography-level to M3 tokens
- Replace elevation mixins with CSS custom properties
- Test accessibility with new contrast requirements
📂 Recommended Placement
Project-level skill:
/.github/skills/material-design-3/SKILL.md
Personal global skill:
~/.github/skills/material-design-3/SKILL.md
Copilot will automatically load this skill when Material Design 3 topics are mentioned.