Design, redesign, review, or implement user interfaces using Google Material Design 3 (M3), Material You, and optional Material 3 Expressive principles. Use for UI/UX screens, app flows, design systems, component selection, theming, responsive/adaptive layouts, accessibility audits, Figma-ready specifications, or developer handoff where Material Design 3 is required.
Permissions
Files
Design, redesign, review, or implement user interfaces using Google Material Design 3 (M3), Material You, and optional Material 3 Expressive principles. Use for UI/UX screens, app flows, design systems, component selection, theming, responsive/adaptive layouts, accessibility audits, Figma-ready specifications, or developer handoff where Material Design 3 is required.
Version history
Create interfaces that behave like Material Design 3, not interfaces that merely look rounded or “Google-like.”
Treat M3 as a system:
user goal → information architecture → hierarchy → adaptive layout → semantic tokens → components → states → interaction → motion → accessibility → visual expression
M3 Expressive is optional. Use it to strengthen hierarchy, usability, recognition, and emotional clarity; never use it as permission to make every element loud.
https://m3.material.io/.https://developer.android.com/.Load only the references needed for the current task. Do not read every reference by default.
| Need | Read |
|---|---|
| Color roles, surfaces, dark theme, dynamic color | references/color-system.md |
| Type hierarchy, scaling, expressive typography | references/typography.md |
| Shape, cards, containment, elevation | references/shape-and-elevation.md |
| Spacing, alignment, readable widths, safe areas | references/spacing-and-layout.md |
| Buttons, FAB, cards, chips, selection, inputs, feedback | references/component-selection.md |
| Navigation bar/rail/drawer, tabs, app bars | references/navigation.md |
| Forms, validation, settings, text input | references/forms-and-input.md |
| Snackbar, dialog, sheet, loading, empty/error states | references/feedback-and-overlays.md |
| Responsive, tablet, foldable, desktop, multi-pane | references/adaptive-design.md |
| Accessibility audit or any final UI review | references/accessibility.md |
| Transitions, feedback animation, shape morphing | references/motion.md |
| Material 3 Expressive | references/m3-expressive.md |
| Final audit / suspicious “Material-looking” UI | references/anti-patterns.md |
For a broad end-to-end design, load the references incrementally as decisions require them. Always include the accessibility reference before final approval.
Follow this order unless the task explicitly scopes one stage.
Identify: - platform, - primary user goal, - primary action, - top-level destinations, - content hierarchy, - data density, - input methods, - brand constraints, - required states and edge cases, - target window sizes, - whether M3 Expressive is desired or appropriate.
If missing information does not block the work, make a conservative M3-aligned assumption and state it. Ask only when the missing information materially changes architecture or interaction.
Before styling: - group related information, - separate navigation from actions, - identify the primary task per screen, - remove duplicated controls, - define progressive disclosure, - separate destructive actions, - avoid showing information merely because space is available.
Read references/adaptive-design.md and references/navigation.md when multiple window sizes or navigation forms matter.
Prefer canonical patterns such as list-detail, supporting pane, feed, and adaptive navigation when they fit the content.
Wider space must improve context or productivity rather than merely stretch content.
Read the relevant color, typography, shape/elevation, and spacing references.
Use the hierarchy:
reference/system tokens → semantic/system roles → component tokens
Screens should depend on semantic roles rather than scattered literal values.
Read references/component-selection.md plus specialized navigation/form/feedback references as needed.
For each important control determine: 1. semantic purpose, 2. emphasis, 3. immediate vs transactional behavior, 4. interaction states, 5. accessibility behavior, 6. adaptive behavior.
Cover relevant: - loading, - empty, - error, - success, - disabled, - selected, - pressed, - focus, - hover, - busy/submitting.
Error states must provide a recovery path.
Read references/accessibility.md.
Accessibility is a release requirement. Do not defer it to visual polish.
Read references/motion.md only when motion is part of the task.
Motion must explain state, hierarchy, spatial relationship, or response. Do not animate for spectacle.
Read references/m3-expressive.md.
Use a few deliberate expressive moments. Routine reading, forms, settings, and dense productivity surfaces should remain calm unless stronger expression improves usability.
Read references/anti-patterns.md and run the self-audit below.
Before delivering a design, score each applicable category 0, 1, or 2.
0 = incorrect / missing1 = partially correct / needs refinement2 = ready| Category | Check |
|---|---|
| Task clarity | Primary user goal and action are obvious |
| Information hierarchy | Grouping and emphasis are coherent |
| Component semantics | Controls match their actual behavior |
| Token discipline | Semantic roles are used consistently |
| Adaptive behavior | Layout improves across relevant windows |
| States & feedback | Important states and recovery are covered |
| Accessibility | Targets, contrast, semantics, focus, scaling, reduced motion |
| Expressive restraint | Expression improves hierarchy without creating noise |
A design with any 0 in component semantics, states & feedback, or accessibility is not ready for approval.
Do not inflate scores to satisfy the user. State the concrete issue and correction.
When asked to design, redesign, audit, or hand off a UI, provide enough detail for another designer or developer to reproduce the decisions.
Unless the user requests another format, include as applicable:
When creating actual code or an artifact, apply these decisions instead of stopping at a description.
Prefer:
Screen background: surface
Primary text: onSurface
Secondary text: onSurfaceVariant
Primary CTA: filled button / primary + onPrimary
Secondary CTA: outlined button
Section container: surfaceContainer
Subtle separator: outlineVariant
Error container: errorContainer + onErrorContainer
Avoid handoff based on arbitrary literals unless they come from the project’s token system.
androidx.compose.material3 for new M3 work.Do not hardcode library version numbers into generated implementation unless they are verified against current official release notes.
Material 3 guidance can inform the design even when an official implementation library does not expose every component.
Material Design 3 is a semantic, adaptive, accessible design system.
A successful M3 interface should remain coherent when brand colors change, the window resizes, dark theme turns on, text scales up, keyboard replaces touch, or expressive styling is reduced.
If the design only works because every surface is rounded and colorful, it is not a robust Material 3 design.
Popular skills
Works with
Claude, Codex, Cursor & more