material-3-expressive logo

material-3-expressive

material 3 expressive

SKILL.md

Full skill instructions

Material 3 Expressive (Android UI/UX)

Overview

Design and review Android UI/UX using Material 3 Expressive. Prioritize component-token requests for dialogs, sheets, modals, toolbars, and buttons, with guidance plus token references by default.

Intake Questions

  • Target device class (phone, tablet, foldable, Wear OS)
  • Window size class (Compact, Medium, Expanded)
  • Brand constraints and dynamic color usage
  • Primary action(s) and desired hero moments (1-2 max)
  • Motion constraints and reduced-motion expectations
  • Accessibility targets (contrast, touch target)

Default Assumptions

  • Intensity level: Foundational
  • Window size class: Compact
  • Dynamic color: enabled
  • Standard navigation patterns preserved

Quick Workflow

  1. Confirm intensity level + hero moments
  2. Confirm device class + window size class
  3. Load Tier 1 index and output template
  4. Load component overview + token spec files
  5. If theming needed, load Tier 3 foundation tokens
  6. Output: guidance + token refs (see template)

Default Output Format (Guidance + Token Refs)

Use references/m3-component-token-output-template.md verbatim as the base output shell.

  • Context and intent (1-2 lines)
  • Intensity level + hero moments (count + location)
  • Window size class + device class
  • Component + variant
  • Token references: file paths + token groups to use (quote minimal key values only if needed)
  • Compose mapping reference (optional): references/compose-mapping.md
  • Behavior or interaction constraints (from overview)
  • Reduced-motion fallback note
  • Accessibility and performance checks
  • Optional: Compose mapping notes

Expressive Tactics

LeverApplication
Shape contrastBold corners on primary, subtle on secondary
Rich colorPrimary/secondary containers for emphasis
Type hierarchySize + weight variation
MotionShape morph on press/select

Constraint: Max 1-2 hero moments per flow

Expressive Intensity Levels

  • Foundational: Clarity and familiarity first
  • Excellent: Stronger color, type, and shape while preserving patterns
  • Transformative: Bold layouts and motion with strict usability and accessibility

Common Mistakes

MistakeFix
Removing text labels for "cleaner" lookKeep labels; usability drops without them
Too many hero moments per screenLimit to 1-2 per flow
Breaking navigation patternsPreserve standard nav behaviors
No reduced-motion fallbackHonor system animation scale; provide reduced-motion or instant transitions when animation scale is 0
Hardcoding token valuesUse semantic tokens (md.sys.color.*)
Ignoring window size classesTest Compact, Medium, Expanded

Android-Specific Guidance

  • Preserve navigation and component behaviors
  • Keep touch targets generous and platform-consistent
  • Honor system animation scale; provide reduced-motion alternatives or instant transitions when animation scale is 0
  • Apply window size classes for tablets and foldables

Review Checklist

Hierarchy

  • Primary action identifiable within 2 seconds
  • Max 1-2 hero moments per screen
  • Labels preserved on all interactive elements

Accessibility

  • Color contrast: 4.5:1 text, 3:1 non-text
  • Touch targets: 48dp minimum
  • Motion: reduced-motion alternative provided
  • Screen reader: content descriptions present

Expressive Compliance

  • Intensity level consistent across feature
  • Standard patterns preserved
  • Dynamic color tokens used
  • Window size classes tested

Reference Tiers (Load in Order of Need)

Tier 1: Always Load First

NeedFile
Component token lookupreferences/m3-expressive-specs-tokens-index.md
Output format templatereferences/m3-component-token-output-template.md
New/updated componentsreferences/m3-expressive-components.md

Tier 2: Component-Specific (Load When Requested)

ComponentOverviewTokens
Buttonsm3-buttons.mdm3-buttons-specs-tokens.md
Button Groupsm3-button-groups.mdm3-button-groups-specs-tokens.md
Dialogsm3-dialogs.mdm3-dialogs-specs-tokens.md
Sheetsm3-sheets.mdm3-bottom-sheets-specs-tokens.md / m3-side-sheets-specs-tokens.md
Toolbarsm3-toolbars.mdm3-toolbars-specs-tokens.md
FABsm3-fabs.mdm3-fabs-specs-tokens.md
Extended FABm3-extended-fab.mdm3-extended-fab-specs-tokens.md
FAB Menum3-fab-menu.mdm3-fab-menu-specs-tokens.md
Icon Buttonsm3-icon-buttons.mdm3-icon-buttons-specs-tokens.md
Split Buttonm3-split-button.mdm3-split-button-specs-tokens.md
Navigation Barm3-navigation-bar.mdm3-navigation-bar-specs-tokens.md
Navigation Railm3-navigation-rail.mdm3-navigation-rail-specs-tokens.md
App Barsm3-app-bars.mdm3-app-bars-specs-tokens.md
Carouselm3-carousel.mdm3-carousel-specs-tokens.md
Progress Indicatorsm3-progress-indicators.mdm3-progress-indicators-specs-tokens.md
Loading Indicatorm3-loading-indicator.mdm3-loading-indicator-specs-tokens.md

Tier 3: Foundation Tokens (Load for Theming)

FoundationFile
Color systemm3-color-system.md, m3-color-foundation-tokens.md
Typographym3-typography.md, m3-typography-foundation-tokens.md, m3-typography-fonts.md, m3-typography-type-scale-tokens.md
Shapem3-shape.md, m3-shape-foundation-tokens.md, m3-shape-corner-radius-scale.md, m3-shape-morph.md
Motionm3-motion-physics.md, m3-motion-foundation-tokens.md, m3-motion-specs.md
Elevationm3-elevation.md, m3-elevation-specs-tokens.md
Statem3-state-foundation-tokens.md

Tier 4: Evidence & Research (Load for Justification)

ResourceFile
Research findingsreferences/expressive-research.md
Testing guidancereferences/m3-testing-material-3.md
Expressive blogreferences/m3-expressive-blog.md
Expressive guidelinesreferences/m3-expressive-guidelines.md
UX articlereferences/medium-ux-article.md

Tier 5: Wear OS (Load Only for Wearables)

ResourceFile
Benefitsreferences/wear-expressive-benefits.md
Levels of expressionreferences/wear-levels-of-expression.md
Design languagereferences/wear-expressive-design-language.md
Blogreferences/wear-expressive-blog.md
Compose Material3references/wear-compose-material3.md

Supporting Resources

ResourceFile
Android UI design hubreferences/android-ui-design-hub.md
Expressive catalogreferences/expressive-catalog.md
Compose mappingreferences/compose-mapping.md

Maintenance

  • Refresh references with skills/material-3-expressive/scripts/update_m3_expressive_refs.py.
  • Requires Playwright and Chromium (.venv/bin/python -m playwright install chromium if needed).
  • CI runs weekly; local runs are for urgent changes.

Search Tips

  • Find a token prefix: rg "md.comp.button" skills/material-3-expressive/references/m3-buttons-specs-tokens.md
  • Find navigation tokens: rg "md.comp.navigation" skills/material-3-expressive/references/m3-.*navigation.*.md

Examples

  • Use assets/examples/ui/ExpressiveHomeScreen.kt as a Compose starting point
  • Use assets/examples/ui/ExpressiveButtonComparison.kt to see standard vs expressive button differences
  • Use assets/examples/ui/ExpressiveAntiPatterns.kt to learn common mistakes to avoid
  • Use assets/examples/ux/expressive-ux-brief-template.md to draft an expressive UX brief
  • Examples are illustrative; adapt sizes/colors to expressive tokens and project constraints.