name: material-design
| Topic | Reference | When to read |
|---|---|---|
| Color system | color-system.md | Theme creation, dynamic color, dark mode |
| Typography | typography.md | Font scales, responsive text |
| Components | components.md | Specific component implementation |
| Layout | layout.md | Spacing, grids, responsive breakpoints |
| Motion | motion.md | Animations, transitions, easing |
| Dynamic color theme | example-dynamic-color-theme.ts | MUI v6+ theme setup with seed color |
| MUI patterns | example-mui-patterns.ts | Props interface, theme extension, breakpoints |
| CSS patterns | example-css-patterns.css | Surface tint, state layers |
Generate color scheme from a single seed color using HCT color space. See example-dynamic-color-theme.ts for MUI v6+ implementation.
Key color roles:
M3 uses tonal elevation (color tint) instead of shadows. See example-css-patterns.css for CSS implementation.
| Elevation | Use case | Surface tint |
|---|---|---|
| 0 | Background | None |
| 1 | Cards, raised buttons | +5% primary |
| 2 | Menus, dialogs | +8% primary |
| 3 | Navigation drawer | +11% primary |
| 4 | App bar | +12% primary |
| 5 | FAB | +14% primary |
M3 defines 15 text styles across 5 categories:
| Category | Sizes | Use |
|---|---|---|
| Display | Large/Medium/Small | Hero text, splash |
| Headline | Large/Medium/Small | Section headers |
| Title | Large/Medium/Small | Card titles, dialogs |
| Body | Large/Medium/Small | Paragraph text |
| Label | Large/Medium/Small | Buttons, captions |
See typography.md for exact specs.
M3 corner radii by component size:
| Size | Radius | Components |
|---|---|---|
| Extra Small | 4px | Tooltips, snackbars |
| Small | 8px | Chips, small cards |
| Medium | 12px | Cards, dialogs |
| Large | 16px | Large cards, sheets |
| Extra Large | 28px | FAB |
| Full | 50% | Circular buttons |
Standard easing curves:
cubic-bezier(0.2, 0, 0, 1) — Primary interactionscubic-bezier(0.05, 0.7, 0.1, 1) — Entercubic-bezier(0.3, 0, 0.8, 0.15) — Exitcubic-bezier(0.2, 0, 0, 1) — Generalcubic-bezier(0, 0, 0, 1) — Fade incubic-bezier(0.3, 0, 1, 1) — Fade outDuration guidelines:
components/Button/
├── Button.tsx # Implementation
├── Button.types.ts # TypeScript declarations
├── Button.test.tsx # Unit tests
├── buttonClasses.ts # CSS class names
└── index.ts # Public exports
See example-mui-patterns.ts for:
interface for component props)When reviewing M3 compliance:
Color
Typography
**Spa