components library
Components: surfaces, state layers, loading indicators, animated icons, button groups, split buttons, floating toolbar, carousel, dialogs, bottom sheets, snackbars, search bar, expressive icons, wavy progress, and theme extensions.
Classes
- BouncingIcon
- An icon that bounces when toggled.
- ContainedLoadingIndicator
- A contained/partitioned loading indicator (M3 Expressive).
- ExpressiveActionChip
- An expressive action chip — pill/stadium shaped with icon + label.
- ExpressiveActionChipList
- A vertical list of action chips (like the reference "Select / Add photos / Share album / Search" layout).
- ExpressiveAlertDialog
- An expressive AlertDialog with shaped container.
- ExpressiveAnimatedIcon
- An icon that animates between two states using AnimatedIconData.
- ExpressiveButtonGroup
- M3 Expressive connected button group.
- ExpressiveButtonGroupItem
- ExpressiveCarousel
- An expressive horizontal carousel with peek/snap behavior.
- ExpressiveComponentThemes
- Expressive ThemeData extensions for M3 Expressive component styles.
- ExpressiveFab
- An expressive floating action button with:
- ExpressiveFloatingToolbar
- A floating toolbar with circular icon buttons in a pill container.
- ExpressiveIcon
- An icon wrapped in a shaped, colored container (M3 Expressive style).
- ExpressiveIconTheme
- Applies expressive icon theme globally.
- ExpressiveInputThemes
- Expressive theme extensions for input components.
- Expressive navigation bar with shape-morphing indicator.
- ExpressiveSearchBar
- An expressive search bar that morphs from collapsed to expanded with spring.
- ExpressiveSplitButton
- M3 Expressive split button.
- ExpressiveStateLayer
- Adds expressive press-to-scale behavior to any widget.
- ExpressiveSurface
- A semantic surface widget.
- FloatingToolbarItem
- An item in an ExpressiveFloatingToolbar.
- HoverIcon
- Hover scale icon (desktop).
- MorphingIcon
- Cross-fade morph between two icons.
- MorphingShapeIndicator
- Morphing shape loading indicator.
- OrganicLoadingIndicator
- Organic blob loading indicator.
- PulsingDotsIndicator
- Pulsing dots loading indicator.
- RotatingIcon
- An icon that rotates when toggled.
- SelectionIcon
- Selection icon with elastic animation.
- StateMorphContainer
- A widget that wraps a child with shape-morphing on state change.
- WavyCircularProgressIndicator
- A wavy circular progress indicator (M3 Expressive style).
- WavyLinearProgressIndicator
- A wavy/sinusoidal linear progress indicator (M3 Expressive style).
Enums
- ExpressiveFabSize
- Size variants for the M3 Expressive FAB.
- ExpressiveIconSize
- Size variants for expressive icons.
- ExpressiveSurfaceType
- Semantic surface types.
Functions
-
showExpressiveBottomSheet<
T> ({required BuildContext context, required WidgetBuilder builder, bool isDismissible = true, bool enableDrag = true, Color? backgroundColor, double? elevation, ShapeBorder? shape, double initialChildSize = 0.5, double maxChildSize = 0.9, double minChildSize = 0.25, bool snap = true, List< double> ? snapSizes}) → Future<T?> - Shows an expressive bottom sheet with spring-based drag physics.
-
showExpressiveDialog<
T> ({required BuildContext context, required WidgetBuilder builder, bool barrierDismissible = true, Color? barrierColor, Duration transitionDuration = const Duration(milliseconds: 350), Curve curve = Curves.easeOut}) → Future< T?> - Shows an expressive dialog with scale+fade entry animation.
-
showExpressiveSnackBar(
BuildContext context, {required String message, IconData? icon, String? actionLabel, VoidCallback? onAction, Duration duration = const Duration(seconds: 4), double borderRadius = 16, Color? backgroundColor, Color? textColor}) → void - Shows an expressive snackbar with icon, shape, and spring dismiss.