About material3-expressive-flutter
Material 3 Expressive Flutter is a skill with patterns, scripts, and rules for implementing Material 3 Expressive in Flutter. It guides component creation and audits motion, shapes, feedback, and accessibility against its design principles.
Key features
- 01Material 3 Expressive implementation patterns
- 02Physics-based motion guidance
- 03Morphing shape patterns
- 04Component template script
- 05Design-principle verification
- 06Accessibility requirements
Use cases
- 01Build expressive Flutter components
- 02Modernize a standard Material 3 app
- 03Add spring-based transitions
- 04Audit a UI against M3 Expressive
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ mic-360/ material3-expressive-flutter --skill material3-expressive-flutterAfter installing, type/material3-expressive-flutterin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
CLAUDE.mdreferences/color-schemes.mdexternal-docs.mdmotion-guide.mdpackages.mdshape-guide.mdtypography-guide.mdreferences/components/app-bars.mdbutton-groups.mdbuttons.mdfab-menu.mdicon-buttons.mdloading-indicators.mdnavigation-bar.mdnavigation-rail.mdprogress-indicators.mdsplit-buttons.mdtoolbars.mdrules/_sections.mdcolor-philosophy.mdmotion-physics.mdshape-morphing.mdtypography-editorial.mdscripts/component_template.dartgenerate_theme.dartDetails
From the project READMEMaterial 3 Expressive Flutter
This skill provides comprehensive patterns, scripts, and rules for implementing the Material 3 Expressive design system in Flutter. It focuses on physics-based motion, organic shapes, and engagement-driven components.
How It Works
- Requirement Analysis: When you ask about M3E, the agent analyzes the context (component type, state, importance).
- Rule Application: It applies rules from
rules/(Motion Physics, Shape Morphing) to ensure design compliance. - Code Generation: It uses the
scripts/component_template.dartas a base for premium, accessible, and high-performance components. - Verification: It audits the output against M3E principles like "Spatial vs Effects Springs" and "Shape Contrast".
When to Use
- New Feature Development: When creating components requiring high user engagement (promos, onboarding, key actions).
- Design Modernization: Updating standard M3 apps to the more fluid, expressive style.
- Expressive Motion: Implementing spring-based animations for a natural feel.
- Custom Shapes: Implementing morphing containers or non-standard rounded shapes.
Usage
1. Scaffold a New Component
Use the template to create a robust, state-aware widget.
# Path to script
flutter run scripts/component_template.dart
2. Implementation Strategies
Trigger phrases:
- "Implement a [component] with M3 Expressive style"
- "Add expressive motion to this transition"
- "Modernize this standard M3 button"
- "Audit my UI against M3 Expressive principles"
Examples
Spatial Spring Motion (Example)
// Use for movement and position
Curves.elasticOut; // Strong, tactile response
Cubic(0.34, 1.56, 0.64, 1); // Expressive overshoot
Shape Morphing Container
AnimatedContainer(
duration: const Duration(milliseconds: 500),
curve: Curves.elasticOut,
decoration: ShapeDecoration(
shape: M3ExpressiveShape.teardrop, // Custom token
color: theme.colorScheme.primaryContainer,
),
);
Reference Guides
- Motion Guide - Spatial vs Effects Springs.
- Shape System - Squircels, Teardrops, and Morphing.
- Typography Guide - Editorial hierarchy.
- Component Library - Patterns for all M3E components.
Rules & Standards
- Physics Over Duration: Use springs (Spatial/Effects) instead of fixed durations.
- Full Rounding: Use
StadiumBorder()for buttons and primary indicators. - Meaningful Feedback: Always include
HapticFeedback.lightImpact()for expressive actions. - Accessibility: Ensure minimum touch targets of 48x48dp and proper
Semantics.
Troubleshooting
- "Animation feels jittery": Ensure you aren't using
Curves.linearor too short a duration (<200ms) with springs. - "Shape doesn't morph correctly": Ensure you are using
ShapeDecorationwith a customShapeBorderthat supports interpolation. - "UI feels flat": Check color contrast and ensure you are using filled containers for primary actions.
Present Results to User
When completing an M3E task, summarize the expressive features added:
- ✅ Motion: Applied [Spatial/Effects] springs for [Action].
- ✅ Shape: Used [Pill/Teardrop/Squircel] for [Component].
- ✅ Haptics: Integrated tactile feedback.
- ✅ Color: Dynamic M3 color tokens used.
- ✅ Accessibility: Verified touch targets and semantics.