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.
ExpressiveNavBarTheme
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.