material_expressive 0.6.0
material_expressive: ^0.6.0 copied to clipboard
A complete expressive design system for Flutter — tokens, motion, shapes, theme generation, adaptive layouts, loading indicators, animated icons, and screen templates.
Changelog #
0.6.0 #
Color System #
VibrantColorScheme.fromSeed()now used as default inExpressiveTheme.fromSeed()— no more muted palettes- Dark mode colors stay vibrant (1.5× saturation boost, minimum 0.3 saturation floor, seed-tinted surfaces)
vibrancyparameter onfromSeed()— control how saturated the palette is (0.0 = standard M3, 0.3 = expressive)vibrantDarkModeparameter — toggle vibrant dark mode (default: true)lightColorScheme/darkColorSchemeparameters — plug in external schemes (e.g. fromdynamic_color)ColorFromImage.extract()— extract a dominant seed color from anyImageProvider(pure Dart, no platform deps)
Button Group Fix #
- Redesigned to match M3 Expressive spec: shared stadium container, active button morphs to pill inside the container
- Inactive buttons remain flat segments within the shared outer pill
- Animated size/padding transition on selection change
Slider Fix #
- Custom
_ExpressiveSliderThumbShape— tall capsule/rounded-rect thumb (not a circle) - Custom
_ExpressiveSliderTrackShape— active track is thick stadium, inactive track is thinner - Matches M3 Expressive reference: chunky pill active portion with capsule thumb
Smooth Shapes Fix #
MorphableShapeBorderandShapeMorphnow use Catmull-Rom spline → cubic Bezier rendering- Eliminates jagged/rough edges at all sizes
- Both static
ShapeDecorationand animatedShapeMorphbenefit
New Components #
ExpressiveActionChip— pill/stadium chip with icon + label (matches M3 Expressive action chips)ExpressiveActionChipList— vertical list of action chips with optional dismiss buttonExpressiveFab— full expressive FAB: size variants (small/medium/large), spring press, scroll-aware shrinking, extended mode- Floating toolbar redesigned: circular icon buttons inside pill, primary item gets accent circle
Input Themes #
ExpressiveInputThemes.applyAll()— wires all input themes automatically viaapplyExpressive()- Slider, Switch, Checkbox, Radio, DatePicker, TimePicker, Tooltip, PopupMenu, ProgressIndicator
0.3.0 #
Expressive Icons #
ExpressiveIcon— any icon in a shaped, colored container (small/medium/large/extraLarge)ExpressiveIconTheme.expressive()— optical sizing, weight, grade for variable font iconsExpressiveIconTheme.expressiveFilled()— filled/selected variant
Wavy Progress Indicators #
WavyLinearProgressIndicator— sine wave track (determinate + indeterminate)WavyCircularProgressIndicator— undulating circular track (determinate + indeterminate)
Vibrant Colors #
VibrantColorScheme.fromSeed()— boosted saturation color schemeColorHarmonization— harmonize brand/semantic colors toward seed hueHarmonizedColors,HarmonizedColorPair
Expressive Typography #
ExpressiveTypography.emphasized()— bolder, larger headlinesExpressiveTypography.withVariableAxes()—wght,opsz,wdthfont variation axes
Motion Upgrades #
ComponentMotion— per-component spring token assignmentsGestureSpringBox— drag with fling velocity → spring physicsShapeContainerTransform— container expand with shape morphingMotionAccessibility— respectsdisableAnimations
RTL Shapes #
RtlShapes.directional()— auto-flip for RTLRtlShapes.flipHorizontal()/flipVertical()/rotate()/scale()
Components #
StateMorphContainer— widget morphs shape on active/inactive stateExpressiveCarousel— horizontal carousel with peek/snapshowExpressiveBottomSheet()— spring drag with snap pointsshowExpressiveDialog()+ExpressiveAlertDialogshowExpressiveSnackBar()— icon + shaped + floatingExpressiveSearchBar— collapses to icon, expands with spring
0.2.0 #
35 Material Shapes #
- All official M3 Expressive shapes via
MaterialShapes.* ShapeMorphwidget,MorphableShapeBorder,lerpShapePoints()
Spring Physics #
MotionScheme.standardandMotionScheme.expressiveExpressiveSpring,.animateWithSpring(),SpringTransition
Components #
ExpressiveButtonGroup,ExpressiveSplitButtonExpressiveFloatingToolbar,ContainedLoadingIndicatorExpressiveComponentThemes.applyExpressive()
0.1.0 #
- Initial release: design tokens, organic shape system, motion, theme generation, adaptive spacing, surfaces, state layer, loading indicators, animated icons, screen templates, dev tools