Material 3 Expressive
Use this skill when the user wants:
- Material 3 Expressive UI
- Jetpack Compose screens that feel modern, emotional, playful, or highly polished
- Material You / dynamic color support
- expressive motion, typography, shapes, and adaptive layout
- a review or audit for M3 Expressive alignment
What this skill does
This skill helps the agent:
- Choose the right Material 3 Expressive patterns for Android UI work.
- Generate Compose code using Material 3 components and theme tokens.
- Refactor overly flat or generic Material 3 screens into more expressive ones.
- Audit a screen or codebase for M3 Expressive compliance.
- Keep accessibility, responsiveness, and implementation realism intact.
Scope
Primary target:
- Android
- Jetpack Compose
androidx.compose.material3
Secondary target:
- Design specs, token systems, and implementation notes that may later inform other platforms
Do not:
- assume full web parity
- invent components that do not exist
- use XML for newly generated UI unless the user explicitly asks
- hardcode random colors when theme roles should be used
- create visual chaos and call it "expressive"
Core principles
Material 3 Expressive should feel:
- emotionally engaging
- visually clear
- adaptive across screen sizes
- motion-aware
- still accessible and system-coherent
Expressive does not mean:
- cluttered
- noisy
- decorative without hierarchy
- excessive blur, gradients, or glass effects
- random oversized corners with no system logic
Default implementation stance
Unless the user says otherwise:
- use Jetpack Compose
- use
MaterialTheme
- prefer theme roles over raw colors
- support dark theme
- support dynamic color when appropriate
- use adaptive layout patterns for larger screens
- preserve strong accessibility defaults
- keep motion tasteful and purposeful
Decision tree
If the user asks for a component
- Build a single expressive component
- Use Material 3 tokens and shape roles
- Make state handling explicit
- Keep the composable stateless when possible
If the user asks for a screen
- Build a complete screen with:
- app bar or top-level structure
- content hierarchy
- states: loading, empty, populated, error
- responsive spacing
- expressive type and shape choices
- preview(s)
If the user asks for theming
- Define or refine:
- color scheme
- typography
- shapes
- motion intent
- Prefer token-driven theming over one-off styling
If the user asks for review or audit
Inspect for:
- token misuse
- weak hierarchy
- flat or generic typography
- missing expressive shape logic
- poor motion choices
- accessibility issues
- adaptive layout gaps
- over-customization that breaks Material coherence
Required design rules
1) Color
- Prefer
MaterialTheme.colorScheme.*
- Use semantic roles, not arbitrary hex values
- Keep accent usage intentional
- Preserve contrast and readability
- Use dynamic color when the product benefits from system personalization
2) Typography
- Use Material typography roles
- Create stronger hierarchy through role choice, spacing, and emphasis
- Prefer expressive scale and emphasis over random font size inflation
- Keep body text readable and stable
- Avoid making every header huge or bold
3) Shape
- Use shape intentionally to show hierarchy and personality
- Prefer rounded and expanded shape systems where appropriate
- Use larger shapes for key surfaces and actions
- Keep shape choices systematic across the screen
- Do not mix unrelated corner styles without a reason
4) Motion
- Motion should reinforce structure, focus, and delight
- Animate state changes, emphasis shifts, container transitions, and key interactions
- Avoid constant looping motion unless it serves a clear UX role
- Prefer soft, responsive, spring-like behavior
- Keep reduced-motion concerns in mind
5) Layout
- Build with responsive Compose layout primitives
- Respect window size changes
- Avoid phone-only layouts when the screen could expand
- Use clear grouping, breathing room, and rhythm
- Make focal actions visually obvious
6) Components
Prefer official Material 3 components first:
- buttons
- cards
- app bars
- text fields
- FABs
- navigation components
- bottom sheets
- lists
- tabs
- chips
- progress and feedback surfaces
Only build custom components when:
- the user explicitly needs one
- official components cannot support the pattern
- the result still feels like Material 3 Expressive
Compose implementation rules
Structure
- Prefer small composables with clear responsibilities
- Hoist state
- Keep business logic out of UI composables
- Use previews for major states
- Use sealed UI state or similar explicit state models where practical
Theming
Use:
MaterialTheme(colorScheme = ..., typography = ..., shapes = ...)
Prefer:
lightColorScheme(...)
darkColorScheme(...)
- dynamic color integration when appropriate
Accessibility
Always check:
- touch target size
- color contrast
- semantic labels where needed
- content descriptions for non-decorative icons/images
- screen reader flow
- not relying on color alone
Output modes
component
Return:
- composable code
- state parameters
- preview
- brief explanation of expressive choices
screen
Return:
- complete screen composable
- supporting models/state if needed
- previews for at least 2–4 states
- note on theming and layout behavior
theme
Return:
- theme setup
- color/typography/shape recommendations
- dynamic color note
- migration notes if replacing a flatter MD3 theme
motion
Return:
- interaction points worth animating
- Compose animation approach
- why motion helps hierarchy or feedback
audit
Return:
- score out of 100
- findings grouped by severity
- concrete fixes
- code-level recommendations
- "quick wins" and "high impact" sections
Audit rubric
Score these areas:
- Theme token usage
- Typography hierarchy
- Shape consistency
- Color semantics
- Motion quality
- Component appropriateness
- Layout rhythm and spacing
- Adaptive behavior
- Accessibility
- Overall expressive coherence
Severity labels
- Critical
- Important
- Nice-to-have
Default coding style
Generate Kotlin Compose code that is:
- production-leaning
- easy to read
- previewable
- realistic
- not overloaded with comments
- not dependent on fake libraries
When the request is vague
If the user says things like:
- "make it more Material"
- "make it more modern"
- "make it feel like Android 16"
- "make it expressive"
Then:
- infer a reasonable M3 Expressive direction
- improve hierarchy, shape, spacing, and motion
- keep the result grounded in Material 3
- explain the biggest changes briefly
Anti-patterns
Avoid:
- giant blobs of UI in one composable
- hardcoded spacing everywhere with no system rhythm
- random colors outside the theme
- excessive custom drawing when standard Material components fit
- making everything high-emphasis
- lifeless flat screens with no hierarchy
- fake "expressive" styling that breaks accessibility
Recommended companion references
Use alongside:
- a Compose best-practices skill
- an accessibility skill
- an adaptive layout skill
- a motion/animation skill
- screenshot testing or design QA tooling
Example invocations
/material3-expressive component Build an expressive settings row with icon, supporting text, and trailing switch
/material3-expressive screen Create a finance dashboard home screen with strong hierarchy and adaptive layout
/material3-expressive theme Refactor this app theme to feel more expressive while keeping brand purple
/material3-expressive motion Suggest motion upgrades for this task completion flow
/material3-expressive audit app/src/main/java/com/example/ui/HomeScreen.kt
Response contract
When using this skill, the agent must:
- Prefer official Material 3 Compose patterns.
- Keep recommendations implementable.
- Explain expressive choices briefly.
- Flag when a request would leave Material territory.
- Prioritize Android/Compose correctness over trendy styling.
1---2name: material3-expressive3description: Material 3 Expressive4---56# Material 3 Expressive78Use this skill when the user wants:9- Material 3 Expressive UI10- Jetpack Compose screens that feel modern, emotional, playful, or highly polished11- Material You / dynamic color support12- expressive motion, typography, shapes, and adaptive layout13- a review or audit for M3 Expressive alignment1415## What this skill does1617This skill helps the agent:181. Choose the right Material 3 Expressive patterns for Android UI work.192. Generate Compose code using Material 3 components and theme tokens.203. Refactor overly flat or generic Material 3 screens into more expressive ones.214. Audit a screen or codebase for M3 Expressive compliance.225. Keep accessibility, responsiveness, and implementation realism intact.2324## Scope2526Primary target:27- Android28- Jetpack Compose29- `androidx.compose.material3`3031Secondary target:32- Design specs, token systems, and implementation notes that may later inform other platforms3334Do not:35- assume full web parity36- invent components that do not exist37- use XML for newly generated UI unless the user explicitly asks38- hardcode random colors when theme roles should be used39- create visual chaos and call it "expressive"4041## Core principles4243Material 3 Expressive should feel:44- emotionally engaging45- visually clear46- adaptive across screen sizes47- motion-aware48- still accessible and system-coherent4950Expressive does **not** mean:51- cluttered52- noisy53- decorative without hierarchy54- excessive blur, gradients, or glass effects55- random oversized corners with no system logic5657## Default implementation stance5859Unless the user says otherwise:60- use Jetpack Compose61- use `MaterialTheme`62- prefer theme roles over raw colors63- support dark theme64- support dynamic color when appropriate65- use adaptive layout patterns for larger screens66- preserve strong accessibility defaults67- keep motion tasteful and purposeful6869## Decision tree7071### If the user asks for a component72- Build a single expressive component73- Use Material 3 tokens and shape roles74- Make state handling explicit75- Keep the composable stateless when possible7677### If the user asks for a screen78- Build a complete screen with:79 - app bar or top-level structure80 - content hierarchy81 - states: loading, empty, populated, error82 - responsive spacing83 - expressive type and shape choices84 - preview(s)8586### If the user asks for theming87- Define or refine:88 - color scheme89 - typography90 - shapes91 - motion intent92- Prefer token-driven theming over one-off styling9394### If the user asks for review or audit95Inspect for:96- token misuse97- weak hierarchy98- flat or generic typography99- missing expressive shape logic100- poor motion choices101- accessibility issues102- adaptive layout gaps103- over-customization that breaks Material coherence104105## Required design rules106107### 1) Color108- Prefer `MaterialTheme.colorScheme.*`109- Use semantic roles, not arbitrary hex values110- Keep accent usage intentional111- Preserve contrast and readability112- Use dynamic color when the product benefits from system personalization113114### 2) Typography115- Use Material typography roles116- Create stronger hierarchy through role choice, spacing, and emphasis117- Prefer expressive scale and emphasis over random font size inflation118- Keep body text readable and stable119- Avoid making every header huge or bold120121### 3) Shape122- Use shape intentionally to show hierarchy and personality123- Prefer rounded and expanded shape systems where appropriate124- Use larger shapes for key surfaces and actions125- Keep shape choices systematic across the screen126- Do not mix unrelated corner styles without a reason127128### 4) Motion129- Motion should reinforce structure, focus, and delight130- Animate state changes, emphasis shifts, container transitions, and key interactions131- Avoid constant looping motion unless it serves a clear UX role132- Prefer soft, responsive, spring-like behavior133- Keep reduced-motion concerns in mind134135### 5) Layout136- Build with responsive Compose layout primitives137- Respect window size changes138- Avoid phone-only layouts when the screen could expand139- Use clear grouping, breathing room, and rhythm140- Make focal actions visually obvious141142### 6) Components143Prefer official Material 3 components first:144- buttons145- cards146- app bars147- text fields148- FABs149- navigation components150- bottom sheets151- lists152- tabs153- chips154- progress and feedback surfaces155156Only build custom components when:157- the user explicitly needs one158- official components cannot support the pattern159- the result still feels like Material 3 Expressive160161## Compose implementation rules162163### Structure164- Prefer small composables with clear responsibilities165- Hoist state166- Keep business logic out of UI composables167- Use previews for major states168- Use sealed UI state or similar explicit state models where practical169170### Theming171Use:172- `MaterialTheme(colorScheme = ..., typography = ..., shapes = ...)`173174Prefer:175- `lightColorScheme(...)`176- `darkColorScheme(...)`177- dynamic color integration when appropriate178179### Accessibility180Always check:181- touch target size182- color contrast183- semantic labels where needed184- content descriptions for non-decorative icons/images185- screen reader flow186- not relying on color alone187188## Output modes189190### `component`191Return:192- composable code193- state parameters194- preview195- brief explanation of expressive choices196197### `screen`198Return:199- complete screen composable200- supporting models/state if needed201- previews for at least 2–4 states202- note on theming and layout behavior203204### `theme`205Return:206- theme setup207- color/typography/shape recommendations208- dynamic color note209- migration notes if replacing a flatter MD3 theme210211### `motion`212Return:213- interaction points worth animating214- Compose animation approach215- why motion helps hierarchy or feedback216217### `audit`218Return:219- score out of 100220- findings grouped by severity221- concrete fixes222- code-level recommendations223- "quick wins" and "high impact" sections224225## Audit rubric226227Score these areas:2281. Theme token usage2292. Typography hierarchy2303. Shape consistency2314. Color semantics2325. Motion quality2336. Component appropriateness2347. Layout rhythm and spacing2358. Adaptive behavior2369. Accessibility23710. Overall expressive coherence238239### Severity labels240- Critical241- Important242- Nice-to-have243244## Default coding style245246Generate Kotlin Compose code that is:247- production-leaning248- easy to read249- previewable250- realistic251- not overloaded with comments252- not dependent on fake libraries253254## When the request is vague255256If the user says things like:257- "make it more Material"258- "make it more modern"259- "make it feel like Android 16"260- "make it expressive"261262Then:2631. infer a reasonable M3 Expressive direction2642. improve hierarchy, shape, spacing, and motion2653. keep the result grounded in Material 32664. explain the biggest changes briefly267268## Anti-patterns269270Avoid:271- giant blobs of UI in one composable272- hardcoded spacing everywhere with no system rhythm273- random colors outside the theme274- excessive custom drawing when standard Material components fit275- making everything high-emphasis276- lifeless flat screens with no hierarchy277- fake "expressive" styling that breaks accessibility278279## Recommended companion references280281Use alongside:282- a Compose best-practices skill283- an accessibility skill284- an adaptive layout skill285- a motion/animation skill286- screenshot testing or design QA tooling287288## Example invocations289290- `/material3-expressive component Build an expressive settings row with icon, supporting text, and trailing switch`291- `/material3-expressive screen Create a finance dashboard home screen with strong hierarchy and adaptive layout`292- `/material3-expressive theme Refactor this app theme to feel more expressive while keeping brand purple`293- `/material3-expressive motion Suggest motion upgrades for this task completion flow`294- `/material3-expressive audit app/src/main/java/com/example/ui/HomeScreen.kt`295296## Response contract297298When using this skill, the agent must:2991. Prefer official Material 3 Compose patterns.3002. Keep recommendations implementable.3013. Explain expressive choices briefly.3024. Flag when a request would leave Material territory.3035. Prioritize Android/Compose correctness over trendy styling.