Material Design 3 Guide
Overview
This is the master guide for implementing Material Design 3 (M3) — covering the full specification from Material You foundations through M3 Expressive enhancements. It explains the overall system and directs you to specialized skills for each aspect.
Keywords: Material Design 3, M3, Material Design, design system, Google design, Material You, expressive design, UI design, M3 Expressive, React, MUI, Angular Material, Vue, Vuetify, Svelte, SMUI, Tailwind CSS, Next.js, Flutter, Jetpack Compose, web components, Beer CSS, Ink, CLI, terminal UI
What is Material Design 3?
Material Design 3 is Google's open-source design system for creating digital products. It has evolved through two major phases:
Material You (M3 Baseline)
The foundational M3 system introduced:
- Dynamic Color: Adaptive themes derived from user wallpapers and preferences
- Tonal Palettes: Five key palettes with systematic tonal generation
- Type Scale: 15 baseline type styles across five roles
- Shape System: Semantic corner radius scale from none to full
- Elevation System: Five levels with tinting for depth
- Component Library: Complete set of accessible, themed components
- Token System: CSS custom properties for consistent theming
M3 Expressive (Latest Evolution)
Building on Material You, M3 Expressive adds:
- 30-Style Type Scale: 15 emphasized variants alongside the 15 baseline styles
- 35 Expressive Shapes: Decorative shape library with smooth morphing
- Physics-Based Motion: Spring parameters (stiffness, damping, velocity) replacing traditional easing
- Fixed Accent Colors: Colors that stay constant across light and dark themes
- Contrast Levels: Standardized standard, medium, and high contrast modes
- New Components: Split buttons, button groups, floating toolbars, FAB menus
- Background Blur: Depth effects for overlays and navigation
- Haptic Integration: Coordinated vibration with spring animations
The Seven Pillars of Material Design 3
Material Design 3 is built on seven interconnected design pillars:
1. Color and Dynamic Theming
What: Vibrant, adaptive color systems with 26+ roles, proper contrast, and accessibility
Use the material-design-3-color skill when:
- Setting up color palettes or themes
- Implementing dynamic color (Material You)
- Working with primary, secondary, tertiary color roles
- Ensuring color accessibility and contrast
- Creating light and dark themes
- Defining color tokens and variables
- Applying state layers (hover, focus, pressed)
- Implementing elevation tinting
- Setting up fixed accent colors for branding (M3 Expressive)
- Configuring contrast levels (standard, medium, high) (M3 Expressive)
- Defining surface container hierarchy
Key concepts: Tonal palettes, color roles, dynamic color, accessibility, theming, fixed accents, contrast levels, surface containers
2. Motion and Animation
What: Physics-based, natural animations that guide attention and provide feedback
Use the material-design-3-motion skill when:
- Adding transitions between screens or states
- Implementing micro-interactions (hover, focus, press)
- Creating page or view transitions
- Animating component states
- Building loading states or progress indicators
- Implementing ripple effects
- Creating stagger animations for lists
- Morphing containers or shapes
- Choosing between expressive and standard motion (M3 Expressive)
- Integrating haptic feedback with animations (M3 Expressive)
Key concepts: Spring physics, stiffness/damping/velocity, easing curves, duration, transitions, haptics
3. Typography
What: Clear, readable type hierarchy using variable fonts and defined scales
Use the material-design-3-typography skill when:
- Setting up text styles and hierarchy
- Defining font families and weights
- Implementing the type scale (display, headline, title, body, label)
- Working with variable fonts
- Ensuring text readability and accessibility
- Setting line heights and letter spacing
- Creating responsive typography
- Using emphasized type styles for key moments (M3 Expressive)
Key concepts: Type scale (15 baseline + 15 emphasized), variable fonts, hierarchy, readability, medium contrast
4. Shape and Containment
What: Rounded corners, morphing shapes, and expressive decorative forms
Use the material-design-3-shape skill when:
- Defining border radius for components
- Creating rounded corners on cards, buttons, dialogs
- Implementing shape tokens (updated: Large 20dp, XL 32dp, XXL 48dp)
- Morphing shapes between states
- Working with containers and containment
- Styling buttons, FABs, chips, or input fields
- Using the 35 expressive shape library (M3 Expressive)
- Implementing expressive shape morphing (M3 Expressive)
Key concepts: Border radius, shape scale, morphing, containment, 35 expressive shapes, rounded corners
5. Layout and Size Hierarchy
What: Strategic use of spacing, size, containment, and depth to create visual flow
Use the material-design-3-layout skill when:
- Setting up page layouts and grids
- Defining spacing systems
- Creating responsive layouts
- Implementing size-based hierarchy
- Working with breakpoints
- Positioning components
- Creating visual emphasis through size
- Implementing elevation and depth
- Using background blur for overlays (M3 Expressive)
- Defining explicit vs implicit containment
- Implementing interaction states (hover, focus, pressed, disabled)
Key concepts: Spacing scale, grid systems, responsive design, visual hierarchy, background blur, containment, state layers
6. Components
What: Complete library of accessible, themed UI components
Use the material-design-3-components skill when:
- Building buttons, cards, dialogs, navigation, or any UI component
- Looking up component specifications (sizing, spacing, colors)
- Implementing new M3 Expressive components (split buttons, button groups, toolbars)
- Understanding component interaction states
- Choosing the right component for a use case
- Implementing FABs, chips, text fields, tabs, or menus
Key concepts: Action, containment, communication, navigation, selection, text input components
7. Icons
What: Material Symbols variable font icon system with 2,500+ icons
Use the material-design-3-icons skill when:
- Adding icons to an interface
- Configuring Material Symbols (fill, weight, grade, optical size)
- Implementing icon accessibility
- Using icon fill transitions for selection state
- Sizing icons correctly for different components
- Choosing an icon style (outlined, rounded, sharp)
Key concepts: Material Symbols, variable font axes (FILL, wght, GRAD, opsz), icon accessibility
When to Use Which Skill
Starting a New Material Design 3 Project
Step 1: Color Foundation
- Use
material-design-3-color first
- Set up your color palette and theme
- Define all color tokens (primary, secondary, tertiary, surfaces, fixed accents)
- Implement both light and dark themes
- Configure contrast levels
Step 2: Typography System
- Use
material-design-3-typography
- Define your type scale and font families (baseline + emphasized)
- Set up typography tokens
- Choose Roboto or custom brand fonts
Step 3: Shape System
- Use
material-design-3-shape
- Define shape tokens for all corner radii (updated values)
- Set up component-specific shapes
Step 4: Icons
- Use
material-design-3-icons
- Load Material Symbols (choose one style)
- Configure default variable font axes
Step 5: Layout Foundation
- Use
material-design-3-layout
- Set up spacing scale and grid system
- Define breakpoints for responsive design
- Set up containment patterns and interaction states
Step 6: Build Components
- Use
material-design-3-components
- Build all UI components using the established tokens
- Follow component-specific specifications
Step 7: Add Motion
- Use
material-design-3-motion
- Implement transitions and animations (choose expressive vs standard)
- Add micro-interactions to interactive elements
- Integrate haptic feedback where appropriate
Working on Specific Components
Buttons:
- Components:
material-design-3-components (specs, variants, button groups)
- Shape:
material-design-3-shape (full radius, pill shape)
- Color:
material-design-3-color (primary/secondary/tertiary)
- Typography:
material-design-3-typography (label-large)
- Motion:
material-design-3-motion (hover, focus, press states)
- Layout:
material-design-3-layout (spacing, sizing)
- Icons:
material-design-3-icons (button icons)
Cards:
- Components:
material-design-3-components (elevated, filled, outlined)
- Shape:
material-design-3-shape (medium radius, 12dp)
- Color:
material-design-3-color (surface container variants)
- Typography:
material-design-3-typography (title + body text)
- Motion:
material-design-3-motion (elevation change on hover)
- Layout:
material-design-3-layout (padding, content flow)
Dialogs/Modals:
- Components:
material-design-3-components (dialog specs)
- Shape:
material-design-3-shape (extra-large radius, 32dp)
- Color:
material-design-3-color (surface-container-high)
- Typography:
material-design-3-typography (headline + body)
- Motion:
material-design-3-motion (enter/exit animations)
- Layout:
material-design-3-layout (centered, max-width, background blur)
Navigation:
- Components:
material-design-3-components (bar, rail, drawer, tabs)
- Color:
material-design-3-color (surface variant, active states)
- Typography:
material-design-3-typography (label-large)
- Shape:
material-design-3-shape (indicators, pills)
- Motion:
material-design-3-motion (transition animations)
- Layout:
material-design-3-layout (nav structure)
- Icons:
material-design-3-icons (navigation icons with fill toggle)
Forms/Inputs:
- Components:
material-design-3-components (text fields, selectors)
- Shape:
material-design-3-shape (extra-small radius, 4dp)
- Color:
material-design-3-color (surface variant, outlines)
- Typography:
material-design-3-typography (body text, labels)
- Motion:
material-design-3-motion (focus animations)
- Layout:
material-design-3-layout (field spacing, alignment)
Common Scenarios
"Make it look Material Design 3":
- Start with
material-design-3-color - set up the color system
- Apply
material-design-3-shape - add rounded corners
- Use
material-design-3-typography - implement the type scale
- Load
material-design-3-icons - set up Material Symbols
- Build with
material-design-3-components - use M3 component specs
- Add
material-design-3-motion - implement spring animations
- Apply
material-design-3-layout - ensure proper spacing
"Make it M3 Expressive":
- Follow the standard M3 setup above
- Add emphasized type styles from
material-design-3-typography
- Use expressive shapes from
material-design-3-shape for decorative moments
- Switch to expressive motion mode from
material-design-3-motion
- Implement new components (split buttons, button groups, toolbars) from
material-design-3-components
- Add fixed accent colors and contrast levels from
material-design-3-color
- Use background blur from
material-design-3-layout
"Add Material Design animations":
- Primarily use
material-design-3-motion
- May need
material-design-3-color for state layers
- May need
material-design-3-shape for morphing shapes
"Fix Material Design colors":
- Use
material-design-3-color exclusively
- Focus on color roles, contrast, and theming
"Style this button/card/dialog":
- Start with
material-design-3-components for specs
- Then apply shape + color + typography as needed
"Make it responsive":
- Primarily
material-design-3-layout
- May need
material-design-3-typography for responsive text
- May need
material-design-3-shape for responsive radii
"Implement dark mode":
- Use
material-design-3-color for theme switching
- Ensure all color tokens are defined for both themes
- Adjust icon grade for dark mode via
material-design-3-icons
"Add icons":
- Use
material-design-3-icons for Material Symbols setup
- Use
material-design-3-color for icon color tokens
Integration Principles
All Skills Work Together
Material Design 3 is a holistic system - the skills are designed to be used together:
- Color defines the palette
- Typography defines the text
- Shape defines the form
- Motion defines the behavior
- Layout defines the structure
- Components define the building blocks
- Icons define the visual language
Consistency is Key
When using multiple skills:
- Use tokens/variables defined in each skill
- Don't hard-code values
- Maintain consistency across all design aspects
- Test the combined result, not just individual parts
Example: Complete Button Implementation
/* Uses all seven pillars */
.md3-button {
/* Shape */
border-radius: var(--md-sys-shape-corner-full);
/* Color */
background-color: var(--md-sys-color-primary);
color: var(--md-sys-color-on-primary);
/* Typography */
font-family: var(--md-sys-typescale-label-large-font);
font-size: var(--md-sys-typescale-label-large-size);
font-weight: var(--md-sys-typescale-label-large-weight);
letter-spacing: var(--md-sys-typescale-label-large-tracking);
/* Layout */
padding: var(--md-sys-spacing-2) var(--md-sys-spacing-6);
min-height: 40px;
display: inline-flex;
align-items: center;
gap: var(--md-sys-spacing-2);
/* Motion */
transition:
background-color var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard),
box-shadow var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard),
transform var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard);
}
.md3-button:hover {
/* Color - state layer */
background-color: var(--md-sys-color-primary);
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
/* Motion */
transform: translateY(-1px);
}
/* Icons in button */
.md3-button .material-symbols-outlined {
font-size: 18px;
font-variation-settings: 'opsz' 20;
}
Quick Reference
Which Skill for Which Property?
| Property |
Skill |
color, background-color |
material-design-3-color |
font-size, font-family, line-height, font-weight, letter-spacing |
material-design-3-typography |
border-radius, clip-path |
material-design-3-shape |
transition, animation, @keyframes |
material-design-3-motion |
margin, padding, gap, width, height, display, grid |
material-design-3-layout |
box-shadow (elevation) |
material-design-3-layout (+ motion for transitions) |
backdrop-filter (blur) |
material-design-3-layout |
font-variation-settings (icons) |
material-design-3-icons |
| Component-specific specs |
material-design-3-components |
Which Skill for Which Component?
| Component |
Primary Skill |
Supporting Skills |
| Buttons |
components |
color, shape, typography, motion |
| Cards |
components |
color, shape, layout |
| Dialogs |
components |
color, shape, layout, motion |
| Navigation |
components |
color, icons, layout, motion |
| Text Fields |
components |
color, shape, typography |
| FABs |
components |
color, shape, icons, motion |
| Chips |
components |
color, shape, typography |
| Tabs |
components |
color, typography, icons, motion |
| Lists |
components |
color, typography, layout |
| Menus |
components |
color, shape, layout |
File Organization
When implementing M3, organize your code:
styles/
├── tokens/
│ ├── color.css # From material-design-3-color
│ ├── typography.css # From material-design-3-typography
│ ├── shape.css # From material-design-3-shape
│ ├── motion.css # From material-design-3-motion
│ ├── layout.css # From material-design-3-layout
│ └── icons.css # From material-design-3-icons
├── components/
│ ├── button.css # Uses all skills
│ ├── card.css # Uses all skills
│ ├── dialog.css # Uses all skills
│ ├── navigation.css # Uses all skills
│ └── text-field.css # Uses all skills
└── main.css # Imports all tokens
Best Practices
Do's
- ✅ Use all seven pillars - M3 works best when all aspects are implemented
- ✅ Start with tokens - Define all design tokens before building components
- ✅ Follow the skills - Each skill provides tested, research-backed guidelines
- ✅ Test accessibility - All skills include accessibility requirements
- ✅ Support both themes - Always implement light and dark modes
- ✅ Use semantic names - Use token names, not hard-coded values
- ✅ Be consistent - Apply the same patterns across all components
- ✅ Cover the full spec - Include Material You baseline and M3 Expressive additions
Don'ts
- ❌ Don't cherry-pick - Using only color without shape/motion isn't really M3
- ❌ Don't hard-code - Always use the defined tokens and variables
- ❌ Don't skip accessibility - Contrast, sizing, and motion preferences matter
- ❌ Don't ignore dark mode - It's a core part of M3
- ❌ Don't improvise values - Use the scales provided in each skill
- ❌ Don't mix design systems - Don't combine M3 with other design languages
- ❌ Don't forget motion - Static M3 misses the "expressive" part
- ❌ Don't skip icons - Material Symbols are integral to the M3 visual language
Material Design 3 for Different Web Stacks
M3 can be implemented across many web stacks. Each framework has a dedicated library-specific skill with full setup, theming, and component examples. Use the overview table below to find the right skill for your project.
Web Stack Overview
| Stack |
Primary Library |
M3 Support |
Skill |
| Vanilla CSS |
CSS custom properties |
Full (manual) |
m3-web-vanilla |
| Web Components |
@material/web (Lit) |
Full M3 |
m3-web-webcomponents |
| React / Next.js |
MUI (@mui/material) |
M3 theming |
m3-web-react |
| Angular |
@angular/material |
Full M3 (official) |
m3-web-angular |
| Vue |
Vuetify 3 |
Full M3 |
m3-web-vue |
| Svelte |
SMUI / @material/web |
Partial M3 |
m3-web-svelte |
| Tailwind CSS |
tailwind-material-3 plugin |
Token-based M3 |
m3-web-tailwind |
| Ink (React CLI) |
ink + @inkjs/ui |
Token-based M3 |
m3-web-ink |
| Flutter |
material / m3e_design |
Full M3 |
m3-web-flutter |
| Android |
Jetpack Compose Material 3 |
Full M3 + Expressive |
m3-web-android |
Choosing the Right Stack
| If your project uses... |
Recommended Skill |
Why |
| No framework (vanilla) |
m3-web-vanilla |
Full control, zero dependencies |
| React or Next.js |
m3-web-react |
Largest ecosystem, SSR support |
| Angular |
m3-web-angular |
Official, best M3 integration |
| Vue |
m3-web-vue |
Enterprise-ready, excellent docs |
| Svelte / SvelteKit |
m3-web-svelte |
Best available for Svelte |
| Tailwind CSS |
m3-web-tailwind |
Utility-first with M3 tokens |
| Any framework |
m3-web-webcomponents |
Official, framework-agnostic |
| CLI / Terminal |
m3-web-ink |
React-based, themeable |
| Flutter |
m3-web-flutter |
Official, cross-platform |
| Android |
m3-web-android |
Official, most complete M3 |
Tips for choosing:
- Angular projects: Use
m3-web-angular — best official M3 support of any web framework
- React projects: Use
m3-web-react for MUI, or m3-web-webcomponents for Google's official components
- Vue projects: Use
m3-web-vue — Vuetify 3 is mature and well-documented
- Framework-agnostic: Use
m3-web-webcomponents or m3-web-vanilla
- Prototype quickly: Use
m3-web-vanilla (Beer CSS) or m3-web-webcomponents via CDN
- Need Tailwind: Use
m3-web-tailwind to map M3 tokens to Tailwind config
- Mobile + Web: Use
m3-web-flutter for cross-platform M3
- CLI / Terminal: Use
m3-web-ink with M3 color tokens mapped to terminal colors
Resources
Material Design 3 Core Skills
material-design-3-color - Color palettes, theming, accessibility, fixed accents, contrast levels
material-design-3-motion - Animations, transitions, micro-interactions, spring physics, haptics
material-design-3-typography - Type scale (30 styles), fonts, hierarchy, emphasized variants
material-design-3-shape - Border radius, containment, morphing, 35 expressive shapes
material-design-3-layout - Spacing, grids, responsive design, background blur, interaction states
material-design-3-components - Complete component catalog with specs and implementation
material-design-3-icons - Material Symbols, variable font axes, icon accessibility
Library-Specific Skills
m3-web-vanilla - Vanilla CSS custom properties, Beer CSS, zero-dependency M3
m3-web-webcomponents - Google's official @material/web Lit-based components
m3-web-react - React / MUI / Next.js M3 theming and SSR integration
m3-web-angular - Angular Material M3 theming, SCSS mixins, schematics
m3-web-vue - Vuetify 3 M3 theming, components, dark mode
m3-web-svelte - SMUI + direct @material/web in Svelte/SvelteKit
m3-web-tailwind - Tailwind CSS M3 token mapping and plugin setup
m3-web-ink - Ink React CLI with @inkjs/ui M3 theming
m3-web-flutter - Flutter M3 theming, dynamic color, M3 Expressive packages
m3-web-android - Jetpack Compose Material 3, dynamic color, M3 Expressive
External Resources
Checklist for Material Design 3 Projects
Starting a new M3 project? Follow this checklist:
Foundation
Implementation
M3 Expressive Enhancements (Optional)
Quality Assurance
Summary
Material Design 3 is a complete design system covering the full specification from Material You foundations through M3 Expressive enhancements. It is built on seven interconnected pillars, each with a dedicated skill:
- Color - The palette, themes, and accessibility
- Motion - The behavior, physics, and haptics
- Typography - The voice, hierarchy, and emphasis
- Shape - The personality, form, and expression
- Layout - The structure, depth, and containment
- Components - The building blocks and interactions
- Icons - The visual language and symbols
Use this guide to understand which skill to apply for your specific needs, and remember that M3 works best when all seven pillars work together in harmony.
1---2name: material-design-3-guide3description: Master guide for Material Design 3 — covering the full specification from Material You foundations through M3 Expressive. Explains when to use each Material Design 3 skill subset (color, motion, typography, shape, layout, components, icons). Use this when starting a Material Design 3 project, when you need to understand which M3 skill to apply, or when the user asks about Material Design 3 in general.4license: Apache-2.05---67# Material Design 3 Guide89## Overview1011This is the master guide for implementing Material Design 3 (M3) — covering the full specification from Material You foundations through M3 Expressive enhancements. It explains the overall system and directs you to specialized skills for each aspect.1213**Keywords**: Material Design 3, M3, Material Design, design system, Google design, Material You, expressive design, UI design, M3 Expressive, React, MUI, Angular Material, Vue, Vuetify, Svelte, SMUI, Tailwind CSS, Next.js, Flutter, Jetpack Compose, web components, Beer CSS, Ink, CLI, terminal UI1415## What is Material Design 3?1617Material Design 3 is Google's open-source design system for creating digital products. It has evolved through two major phases:1819### Material You (M3 Baseline)20The foundational M3 system introduced:21- **Dynamic Color**: Adaptive themes derived from user wallpapers and preferences22- **Tonal Palettes**: Five key palettes with systematic tonal generation23- **Type Scale**: 15 baseline type styles across five roles24- **Shape System**: Semantic corner radius scale from none to full25- **Elevation System**: Five levels with tinting for depth26- **Component Library**: Complete set of accessible, themed components27- **Token System**: CSS custom properties for consistent theming2829### M3 Expressive (Latest Evolution)30Building on Material You, M3 Expressive adds:31- **30-Style Type Scale**: 15 emphasized variants alongside the 15 baseline styles32- **35 Expressive Shapes**: Decorative shape library with smooth morphing33- **Physics-Based Motion**: Spring parameters (stiffness, damping, velocity) replacing traditional easing34- **Fixed Accent Colors**: Colors that stay constant across light and dark themes35- **Contrast Levels**: Standardized standard, medium, and high contrast modes36- **New Components**: Split buttons, button groups, floating toolbars, FAB menus37- **Background Blur**: Depth effects for overlays and navigation38- **Haptic Integration**: Coordinated vibration with spring animations3940## The Seven Pillars of Material Design 34142Material Design 3 is built on seven interconnected design pillars:4344### 1. Color and Dynamic Theming45**What**: Vibrant, adaptive color systems with 26+ roles, proper contrast, and accessibility46**Use the `material-design-3-color` skill when**:47- Setting up color palettes or themes48- Implementing dynamic color (Material You)49- Working with primary, secondary, tertiary color roles50- Ensuring color accessibility and contrast51- Creating light and dark themes52- Defining color tokens and variables53- Applying state layers (hover, focus, pressed)54- Implementing elevation tinting55- Setting up fixed accent colors for branding (M3 Expressive)56- Configuring contrast levels (standard, medium, high) (M3 Expressive)57- Defining surface container hierarchy5859**Key concepts**: Tonal palettes, color roles, dynamic color, accessibility, theming, fixed accents, contrast levels, surface containers6061### 2. Motion and Animation62**What**: Physics-based, natural animations that guide attention and provide feedback63**Use the `material-design-3-motion` skill when**:64- Adding transitions between screens or states65- Implementing micro-interactions (hover, focus, press)66- Creating page or view transitions67- Animating component states68- Building loading states or progress indicators69- Implementing ripple effects70- Creating stagger animations for lists71- Morphing containers or shapes72- Choosing between expressive and standard motion (M3 Expressive)73- Integrating haptic feedback with animations (M3 Expressive)7475**Key concepts**: Spring physics, stiffness/damping/velocity, easing curves, duration, transitions, haptics7677### 3. Typography78**What**: Clear, readable type hierarchy using variable fonts and defined scales79**Use the `material-design-3-typography` skill when**:80- Setting up text styles and hierarchy81- Defining font families and weights82- Implementing the type scale (display, headline, title, body, label)83- Working with variable fonts84- Ensuring text readability and accessibility85- Setting line heights and letter spacing86- Creating responsive typography87- Using emphasized type styles for key moments (M3 Expressive)8889**Key concepts**: Type scale (15 baseline + 15 emphasized), variable fonts, hierarchy, readability, medium contrast9091### 4. Shape and Containment92**What**: Rounded corners, morphing shapes, and expressive decorative forms93**Use the `material-design-3-shape` skill when**:94- Defining border radius for components95- Creating rounded corners on cards, buttons, dialogs96- Implementing shape tokens (updated: Large 20dp, XL 32dp, XXL 48dp)97- Morphing shapes between states98- Working with containers and containment99- Styling buttons, FABs, chips, or input fields100- Using the 35 expressive shape library (M3 Expressive)101- Implementing expressive shape morphing (M3 Expressive)102103**Key concepts**: Border radius, shape scale, morphing, containment, 35 expressive shapes, rounded corners104105### 5. Layout and Size Hierarchy106**What**: Strategic use of spacing, size, containment, and depth to create visual flow107**Use the `material-design-3-layout` skill when**:108- Setting up page layouts and grids109- Defining spacing systems110- Creating responsive layouts111- Implementing size-based hierarchy112- Working with breakpoints113- Positioning components114- Creating visual emphasis through size115- Implementing elevation and depth116- Using background blur for overlays (M3 Expressive)117- Defining explicit vs implicit containment118- Implementing interaction states (hover, focus, pressed, disabled)119120**Key concepts**: Spacing scale, grid systems, responsive design, visual hierarchy, background blur, containment, state layers121122### 6. Components123**What**: Complete library of accessible, themed UI components124**Use the `material-design-3-components` skill when**:125- Building buttons, cards, dialogs, navigation, or any UI component126- Looking up component specifications (sizing, spacing, colors)127- Implementing new M3 Expressive components (split buttons, button groups, toolbars)128- Understanding component interaction states129- Choosing the right component for a use case130- Implementing FABs, chips, text fields, tabs, or menus131132**Key concepts**: Action, containment, communication, navigation, selection, text input components133134### 7. Icons135**What**: Material Symbols variable font icon system with 2,500+ icons136**Use the `material-design-3-icons` skill when**:137- Adding icons to an interface138- Configuring Material Symbols (fill, weight, grade, optical size)139- Implementing icon accessibility140- Using icon fill transitions for selection state141- Sizing icons correctly for different components142- Choosing an icon style (outlined, rounded, sharp)143144**Key concepts**: Material Symbols, variable font axes (FILL, wght, GRAD, opsz), icon accessibility145146## When to Use Which Skill147148### Starting a New Material Design 3 Project149150**Step 1: Color Foundation**151- Use `material-design-3-color` first152- Set up your color palette and theme153- Define all color tokens (primary, secondary, tertiary, surfaces, fixed accents)154- Implement both light and dark themes155- Configure contrast levels156157**Step 2: Typography System**158- Use `material-design-3-typography`159- Define your type scale and font families (baseline + emphasized)160- Set up typography tokens161- Choose Roboto or custom brand fonts162163**Step 3: Shape System**164- Use `material-design-3-shape`165- Define shape tokens for all corner radii (updated values)166- Set up component-specific shapes167168**Step 4: Icons**169- Use `material-design-3-icons`170- Load Material Symbols (choose one style)171- Configure default variable font axes172173**Step 5: Layout Foundation**174- Use `material-design-3-layout`175- Set up spacing scale and grid system176- Define breakpoints for responsive design177- Set up containment patterns and interaction states178179**Step 6: Build Components**180- Use `material-design-3-components`181- Build all UI components using the established tokens182- Follow component-specific specifications183184**Step 7: Add Motion**185- Use `material-design-3-motion`186- Implement transitions and animations (choose expressive vs standard)187- Add micro-interactions to interactive elements188- Integrate haptic feedback where appropriate189190### Working on Specific Components191192**Buttons**:193- Components: `material-design-3-components` (specs, variants, button groups)194- Shape: `material-design-3-shape` (full radius, pill shape)195- Color: `material-design-3-color` (primary/secondary/tertiary)196- Typography: `material-design-3-typography` (label-large)197- Motion: `material-design-3-motion` (hover, focus, press states)198- Layout: `material-design-3-layout` (spacing, sizing)199- Icons: `material-design-3-icons` (button icons)200201**Cards**:202- Components: `material-design-3-components` (elevated, filled, outlined)203- Shape: `material-design-3-shape` (medium radius, 12dp)204- Color: `material-design-3-color` (surface container variants)205- Typography: `material-design-3-typography` (title + body text)206- Motion: `material-design-3-motion` (elevation change on hover)207- Layout: `material-design-3-layout` (padding, content flow)208209**Dialogs/Modals**:210- Components: `material-design-3-components` (dialog specs)211- Shape: `material-design-3-shape` (extra-large radius, 32dp)212- Color: `material-design-3-color` (surface-container-high)213- Typography: `material-design-3-typography` (headline + body)214- Motion: `material-design-3-motion` (enter/exit animations)215- Layout: `material-design-3-layout` (centered, max-width, background blur)216217**Navigation**:218- Components: `material-design-3-components` (bar, rail, drawer, tabs)219- Color: `material-design-3-color` (surface variant, active states)220- Typography: `material-design-3-typography` (label-large)221- Shape: `material-design-3-shape` (indicators, pills)222- Motion: `material-design-3-motion` (transition animations)223- Layout: `material-design-3-layout` (nav structure)224- Icons: `material-design-3-icons` (navigation icons with fill toggle)225226**Forms/Inputs**:227- Components: `material-design-3-components` (text fields, selectors)228- Shape: `material-design-3-shape` (extra-small radius, 4dp)229- Color: `material-design-3-color` (surface variant, outlines)230- Typography: `material-design-3-typography` (body text, labels)231- Motion: `material-design-3-motion` (focus animations)232- Layout: `material-design-3-layout` (field spacing, alignment)233234### Common Scenarios235236**"Make it look Material Design 3"**:2371. Start with `material-design-3-color` - set up the color system2382. Apply `material-design-3-shape` - add rounded corners2393. Use `material-design-3-typography` - implement the type scale2404. Load `material-design-3-icons` - set up Material Symbols2415. Build with `material-design-3-components` - use M3 component specs2426. Add `material-design-3-motion` - implement spring animations2437. Apply `material-design-3-layout` - ensure proper spacing244245**"Make it M3 Expressive"**:2461. Follow the standard M3 setup above2472. Add emphasized type styles from `material-design-3-typography`2483. Use expressive shapes from `material-design-3-shape` for decorative moments2494. Switch to expressive motion mode from `material-design-3-motion`2505. Implement new components (split buttons, button groups, toolbars) from `material-design-3-components`2516. Add fixed accent colors and contrast levels from `material-design-3-color`2527. Use background blur from `material-design-3-layout`253254**"Add Material Design animations"**:255- Primarily use `material-design-3-motion`256- May need `material-design-3-color` for state layers257- May need `material-design-3-shape` for morphing shapes258259**"Fix Material Design colors"**:260- Use `material-design-3-color` exclusively261- Focus on color roles, contrast, and theming262263**"Style this button/card/dialog"**:264- Start with `material-design-3-components` for specs265- Then apply shape + color + typography as needed266267**"Make it responsive"**:268- Primarily `material-design-3-layout`269- May need `material-design-3-typography` for responsive text270- May need `material-design-3-shape` for responsive radii271272**"Implement dark mode"**:273- Use `material-design-3-color` for theme switching274- Ensure all color tokens are defined for both themes275- Adjust icon grade for dark mode via `material-design-3-icons`276277**"Add icons"**:278- Use `material-design-3-icons` for Material Symbols setup279- Use `material-design-3-color` for icon color tokens280281## Integration Principles282283### All Skills Work Together284285Material Design 3 is a holistic system - the skills are designed to be used together:286287- **Color** defines the palette288- **Typography** defines the text289- **Shape** defines the form290- **Motion** defines the behavior291- **Layout** defines the structure292- **Components** define the building blocks293- **Icons** define the visual language294295### Consistency is Key296297When using multiple skills:298- Use tokens/variables defined in each skill299- Don't hard-code values300- Maintain consistency across all design aspects301- Test the combined result, not just individual parts302303### Example: Complete Button Implementation304305```css306/* Uses all seven pillars */307.md3-button {308 /* Shape */309 border-radius: var(--md-sys-shape-corner-full);310 311 /* Color */312 background-color: var(--md-sys-color-primary);313 color: var(--md-sys-color-on-primary);314 315 /* Typography */316 font-family: var(--md-sys-typescale-label-large-font);317 font-size: var(--md-sys-typescale-label-large-size);318 font-weight: var(--md-sys-typescale-label-large-weight);319 letter-spacing: var(--md-sys-typescale-label-large-tracking);320 321 /* Layout */322 padding: var(--md-sys-spacing-2) var(--md-sys-spacing-6);323 min-height: 40px;324 display: inline-flex;325 align-items: center;326 gap: var(--md-sys-spacing-2);327 328 /* Motion */329 transition: 330 background-color var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard),331 box-shadow var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard),332 transform var(--md-sys-motion-duration-short2) var(--md-sys-motion-easing-standard);333}334335.md3-button:hover {336 /* Color - state layer */337 background-color: var(--md-sys-color-primary);338 box-shadow: 0 2px 4px rgba(0,0,0,0.1);339 340 /* Motion */341 transform: translateY(-1px);342}343344/* Icons in button */345.md3-button .material-symbols-outlined {346 font-size: 18px;347 font-variation-settings: 'opsz' 20;348}349```350351## Quick Reference352353### Which Skill for Which Property?354355| Property | Skill |356|----------|-------|357| `color`, `background-color` | material-design-3-color |358| `font-size`, `font-family`, `line-height`, `font-weight`, `letter-spacing` | material-design-3-typography |359| `border-radius`, `clip-path` | material-design-3-shape |360| `transition`, `animation`, `@keyframes` | material-design-3-motion |361| `margin`, `padding`, `gap`, `width`, `height`, `display`, `grid` | material-design-3-layout |362| `box-shadow` (elevation) | material-design-3-layout (+ motion for transitions) |363| `backdrop-filter` (blur) | material-design-3-layout |364| `font-variation-settings` (icons) | material-design-3-icons |365| Component-specific specs | material-design-3-components |366367### Which Skill for Which Component?368369| Component | Primary Skill | Supporting Skills |370|-----------|--------------|-------------------|371| Buttons | components | color, shape, typography, motion |372| Cards | components | color, shape, layout |373| Dialogs | components | color, shape, layout, motion |374| Navigation | components | color, icons, layout, motion |375| Text Fields | components | color, shape, typography |376| FABs | components | color, shape, icons, motion |377| Chips | components | color, shape, typography |378| Tabs | components | color, typography, icons, motion |379| Lists | components | color, typography, layout |380| Menus | components | color, shape, layout |381382### File Organization383384When implementing M3, organize your code:385386```387styles/388├── tokens/389│ ├── color.css # From material-design-3-color390│ ├── typography.css # From material-design-3-typography391│ ├── shape.css # From material-design-3-shape392│ ├── motion.css # From material-design-3-motion393│ ├── layout.css # From material-design-3-layout394│ └── icons.css # From material-design-3-icons395├── components/396│ ├── button.css # Uses all skills397│ ├── card.css # Uses all skills398│ ├── dialog.css # Uses all skills399│ ├── navigation.css # Uses all skills400│ └── text-field.css # Uses all skills401└── main.css # Imports all tokens402```403404## Best Practices405406### Do's4074081. ✅ **Use all seven pillars** - M3 works best when all aspects are implemented4092. ✅ **Start with tokens** - Define all design tokens before building components4103. ✅ **Follow the skills** - Each skill provides tested, research-backed guidelines4114. ✅ **Test accessibility** - All skills include accessibility requirements4125. ✅ **Support both themes** - Always implement light and dark modes4136. ✅ **Use semantic names** - Use token names, not hard-coded values4147. ✅ **Be consistent** - Apply the same patterns across all components4158. ✅ **Cover the full spec** - Include Material You baseline and M3 Expressive additions416417### Don'ts4184191. ❌ **Don't cherry-pick** - Using only color without shape/motion isn't really M34202. ❌ **Don't hard-code** - Always use the defined tokens and variables4213. ❌ **Don't skip accessibility** - Contrast, sizing, and motion preferences matter4224. ❌ **Don't ignore dark mode** - It's a core part of M34235. ❌ **Don't improvise values** - Use the scales provided in each skill4246. ❌ **Don't mix design systems** - Don't combine M3 with other design languages4257. ❌ **Don't forget motion** - Static M3 misses the "expressive" part4268. ❌ **Don't skip icons** - Material Symbols are integral to the M3 visual language427428## Material Design 3 for Different Web Stacks429430M3 can be implemented across many web stacks. Each framework has a **dedicated library-specific skill** with full setup, theming, and component examples. Use the overview table below to find the right skill for your project.431432### Web Stack Overview433434| Stack | Primary Library | M3 Support | Skill |435|-------|----------------|------------|-------|436| **Vanilla CSS** | CSS custom properties | Full (manual) | `m3-web-vanilla` |437| **Web Components** | `@material/web` (Lit) | Full M3 | `m3-web-webcomponents` |438| **React / Next.js** | MUI (`@mui/material`) | M3 theming | `m3-web-react` |439| **Angular** | `@angular/material` | Full M3 (official) | `m3-web-angular` |440| **Vue** | Vuetify 3 | Full M3 | `m3-web-vue` |441| **Svelte** | SMUI / `@material/web` | Partial M3 | `m3-web-svelte` |442| **Tailwind CSS** | `tailwind-material-3` plugin | Token-based M3 | `m3-web-tailwind` |443| **Ink (React CLI)** | `ink` + `@inkjs/ui` | Token-based M3 | `m3-web-ink` |444| **Flutter** | `material` / `m3e_design` | Full M3 | `m3-web-flutter` |445| **Android** | Jetpack Compose Material 3 | Full M3 + Expressive | `m3-web-android` |446447### Choosing the Right Stack448449| If your project uses... | Recommended Skill | Why |450|-------------------------|------------------|-----|451| No framework (vanilla) | `m3-web-vanilla` | Full control, zero dependencies |452| React or Next.js | `m3-web-react` | Largest ecosystem, SSR support |453| Angular | `m3-web-angular` | Official, best M3 integration |454| Vue | `m3-web-vue` | Enterprise-ready, excellent docs |455| Svelte / SvelteKit | `m3-web-svelte` | Best available for Svelte |456| Tailwind CSS | `m3-web-tailwind` | Utility-first with M3 tokens |457| Any framework | `m3-web-webcomponents` | Official, framework-agnostic |458| CLI / Terminal | `m3-web-ink` | React-based, themeable |459| Flutter | `m3-web-flutter` | Official, cross-platform |460| Android | `m3-web-android` | Official, most complete M3 |461462**Tips for choosing**:4631. **Angular projects**: Use `m3-web-angular` — best official M3 support of any web framework4642. **React projects**: Use `m3-web-react` for MUI, or `m3-web-webcomponents` for Google's official components4653. **Vue projects**: Use `m3-web-vue` — Vuetify 3 is mature and well-documented4664. **Framework-agnostic**: Use `m3-web-webcomponents` or `m3-web-vanilla`4675. **Prototype quickly**: Use `m3-web-vanilla` (Beer CSS) or `m3-web-webcomponents` via CDN4686. **Need Tailwind**: Use `m3-web-tailwind` to map M3 tokens to Tailwind config4697. **Mobile + Web**: Use `m3-web-flutter` for cross-platform M34708. **CLI / Terminal**: Use `m3-web-ink` with M3 color tokens mapped to terminal colors471472## Resources473474### Material Design 3 Core Skills475476- `material-design-3-color` - Color palettes, theming, accessibility, fixed accents, contrast levels477- `material-design-3-motion` - Animations, transitions, micro-interactions, spring physics, haptics478- `material-design-3-typography` - Type scale (30 styles), fonts, hierarchy, emphasized variants479- `material-design-3-shape` - Border radius, containment, morphing, 35 expressive shapes480- `material-design-3-layout` - Spacing, grids, responsive design, background blur, interaction states481- `material-design-3-components` - Complete component catalog with specs and implementation482- `material-design-3-icons` - Material Symbols, variable font axes, icon accessibility483484### Library-Specific Skills485486- `m3-web-vanilla` - Vanilla CSS custom properties, Beer CSS, zero-dependency M3487- `m3-web-webcomponents` - Google's official `@material/web` Lit-based components488- `m3-web-react` - React / MUI / Next.js M3 theming and SSR integration489- `m3-web-angular` - Angular Material M3 theming, SCSS mixins, schematics490- `m3-web-vue` - Vuetify 3 M3 theming, components, dark mode491- `m3-web-svelte` - SMUI + direct `@material/web` in Svelte/SvelteKit492- `m3-web-tailwind` - Tailwind CSS M3 token mapping and plugin setup493- `m3-web-ink` - Ink React CLI with `@inkjs/ui` M3 theming494- `m3-web-flutter` - Flutter M3 theming, dynamic color, M3 Expressive packages495- `m3-web-android` - Jetpack Compose Material 3, dynamic color, M3 Expressive496497### External Resources498499- **Official M3 Site**: https://m3.material.io/500- **M3 Components**: https://m3.material.io/components501- **M3 Styles**: https://m3.material.io/styles502- **M3 Foundations**: https://m3.material.io/foundations503- **M3 for Web**: https://m3.material.io/develop/web504- **M3 for Android**: https://m3.material.io/develop/android/jetpack-compose505- **M3 for Flutter**: https://m3.material.io/develop/flutter506- **M3 Design Kit (Figma)**: https://www.figma.com/community/file/1035203688168086460 — Official M3 component library with styles, variants, dynamic color, and expressive features507- **Material Web Components** (@material/web): https://github.com/material-components/material-web508- **Material Color Utilities**: https://github.com/material-foundation/material-color-utilities509- **Material Theme Builder**: https://github.com/material-foundation/material-theme-builder510- **Material Design Tokens**: https://github.com/material-foundation/material-tokens511- **Angular Material**: https://github.com/angular/components512- **Material Symbols**: https://fonts.google.com/icons513- **MUI** (React): https://mui.com/material-ui/514- **Vuetify** (Vue): https://vuetifyjs.com/515- **SMUI** (Svelte): https://sveltematerialui.com/516- **Beer CSS** (CSS-only M3): https://www.beercss.com/517- **Tailwind M3 Plugin**: https://github.com/rinturaj/tailwind-material-3518519## Checklist for Material Design 3 Projects520521Starting a new M3 project? Follow this checklist:522523### Foundation524- [ ] Review this guide to understand the seven pillars525- [ ] Set up color system using `material-design-3-color`526- [ ] Define typography using `material-design-3-typography`527- [ ] Create shape tokens using `material-design-3-shape`528- [ ] Load Material Symbols using `material-design-3-icons`529- [ ] Establish spacing/layout system using `material-design-3-layout`530531### Implementation532- [ ] Build components using `material-design-3-components` specs533- [ ] Implement both light and dark themes534- [ ] Add motion and transitions using `material-design-3-motion`535- [ ] Test on multiple screen sizes (responsive)536- [ ] Verify accessibility (contrast, sizing, motion preferences)537538### M3 Expressive Enhancements (Optional)539- [ ] Add emphasized type styles for key moments540- [ ] Use expressive shapes for decorative delight541- [ ] Switch to expressive motion mode for hero interactions542- [ ] Implement fixed accent colors for branding543- [ ] Add contrast level support544- [ ] Use new components (split buttons, button groups, toolbars)545- [ ] Add background blur for overlays and navigation546547### Quality Assurance548- [ ] All colors use semantic tokens (no hard-coded hex)549- [ ] All text uses the type scale (baseline or emphasized)550- [ ] All shapes use the shape scale551- [ ] All animations use spring physics552- [ ] All spacing uses the spacing scale553- [ ] All icons use Material Symbols with correct axes554- [ ] Dark mode works correctly555- [ ] Reduced motion is respected556- [ ] Touch targets are 48×48dp minimum557- [ ] Text contrast meets WCAG AA (4.5:1)558- [ ] All components have proper interaction states559- [ ] Fixed accent colors remain consistent across themes560561## Summary562563Material Design 3 is a complete design system covering the full specification from Material You foundations through M3 Expressive enhancements. It is built on seven interconnected pillars, each with a dedicated skill:5645651. **Color** - The palette, themes, and accessibility5662. **Motion** - The behavior, physics, and haptics5673. **Typography** - The voice, hierarchy, and emphasis5684. **Shape** - The personality, form, and expression5695. **Layout** - The structure, depth, and containment5706. **Components** - The building blocks and interactions5717. **Icons** - The visual language and symbols572573Use this guide to understand which skill to apply for your specific needs, and remember that M3 works best when all seven pillars work together in harmony.