material_3_expressive library
Material 3 Expressive: a faithful Flutter implementation of the Material 3
component set, exposed as direct M3E* component widgets.
Classes
- CornerRounding
- Defines the amount and quality around a given vertex of a shape. radius defines the radius of the circle which forms the basis of the rounding for the vertex. smoothing defines the amount by which the curve is extended from the circular arc around the corner to the edge between vertices.
- M3EAppBar
-
A Material 3 Expressive app bar with
top,bottom, andslivervariants. - M3EBadge
- A Material 3 Expressive badge.
- M3EBadgeTheme
-
Theme values for
M3EBadge. - M3EBottomSheet
- A Material 3 Expressive bottom sheet.
- M3EBottomSheetTheme
-
Theme values for
M3EBottomSheet. - M3EButton
- M3EButton.
- M3EButtonConstants
- Shared numeric constants used throughout the button package.
- M3EButtonFontSize
- Per-size label font sizes for expressive buttons.
- M3EButtonGroup
- A horizontal (or vertical) row of M3EToggleButtons with optional neighbor-squish animation and connected-group shape morphing.
- M3EButtonGroupAlign
- A widget that controls how a child of a M3EButtonGroup aligns itself along the cross axis.
- M3EButtonGroupMetrics
- Resolved layout measurements for a button group.
- M3EButtonGroupParentData
- ParentData for items inside a M3EButtonGroup.
- M3EButtonGroupScope
- Provides group-level configuration to every descendant button.
- M3EButtonMeasurements
- Resolved layout measurements for a button size variant.
- M3EButtonTheme
-
Theme values for
M3EButton. - M3ECalendarDatePicker
- Embeddable calendar for selecting a single date.
- M3ECard
- A Material 3 Expressive card.
- M3ECardList
- A Material 3 interactive card list with dynamically rounded corners.
- M3ECardTheme
-
Theme values for
M3ECard. - M3ECarousel
- Creates a Material Design carousel.
- M3ECarouselTheme
-
Theme values for
M3ECarousel. - M3ECheckbox
- A Material 3 Expressive checkbox.
- M3ECheckboxTheme
-
Theme values for
M3ECheckbox. - M3EChip
- A Material 3 Expressive chip.
- M3EChipTheme
-
Theme values for
M3EChip. - M3ECircularProgressTheme
- Theme values for circular progress indicators.
- M3EColorScheme
- The full set of Material 3 color roles used across expressive components.
- M3EColorUtils
- Color helpers shared across expressive components.
- M3EComponentTheme
- Registers an adaptive theme dependency for a single M3E component subtree.
- M3EDatePicker
- Entry points for presenting M3E date picker dialogs.
- M3EDatePickerDialog
- Dialog for picking a single date.
- M3EDatePickerTheme
- Theme values for M3E date pickers.
- M3EDateRange
- A selected date range with optional end.
- M3EDateRangePickerDialog
- Dialog for picking a date range.
- M3EDialog
- A Material 3 Expressive dialog surface plus helpers to present dialogs.
- M3EDialogTheme
-
Theme values for
M3EDialog. - M3EDialTimePicker
- Embeddable clock dial for choosing an hour and minute.
- M3EDismissibleColumn
- A dismissible Material 3 list backed by a Column.
- M3EDismissibleList
- M3EDismissibleList.
- M3EDismissibleListStyle
- Immutable visual and interaction configuration for dismissible M3E lists.
- M3EDivider
- A Material 3 Expressive divider.
- M3EDividerTheme
-
Theme values for
M3EDivider. - M3EDropdownChipStyle
- M3EDropdownChipStyle.
-
M3EDropdownController<
T> - Controls an M3EDropdownMenu programmatically.
- M3EDropdownFieldStyle
- M3EDropdownFieldStyle.
-
M3EDropdownItem<
T> -
A single item in an
M3EDropdownMenu. - M3EDropdownItemStyle
- M3EDropdownItemStyle.
-
M3EDropdownMenu<
T> - A Material 3 Expressive dropdown menu.
- M3EDropdownMenuTheme
- Theme values for M3EDropdownMenu.
- M3EDropdownPanelStyle
- M3EDropdownPanelStyle.
- M3EDropdownSearchStyle
- M3EDropdownSearchStyle.
- M3EElevation
- Material 3 elevation tokens expressed in logical pixels (dp).
- M3EExpandableData
-
A data container used to configure items for
M3EExpandableList. - M3EExpandableItem
- M3EExpandableItem.
- M3EExpandableList
- A spring-animated expandable card list.
- M3EExpandableStyle
-
Visual style configuration for
M3EExpandableList. - M3EExpressiveLoadingIndicator
- A Material Design loading indicator.
- M3EExtendedFab
- A Material 3 Expressive extended floating action button.
- M3EFab
- A Material 3 Expressive floating action button.
- M3EFabMenu
- A Material 3 Expressive FAB menu.
- M3EFabMenuItem
-
A single action shown when an
M3EFabMenuis open. - M3EFocus
- Shared focus helpers for M3E input components.
- M3EHaptics
- Shared haptic helpers for Material 3 Expressive components.
- M3EIconButton
- Material 3 Expressive Icon Button
- M3EIconButtonTheme
-
Theme values for
M3EIconButton. - M3EIcons
-
A curated set of glyphs from the bundled
MaterialIconsfont. - M3EInheritedTheme
- Inherited theme handle used by M3ETheme.of.
- M3EInkSplashTheme
- Supplies expressive splash color for Material buttons that only expose overlay color to their ink layer.
- M3EInteractionState
- The mutually reinforcing interaction states of a component.
- M3ELinearProgressLayout
- Measured layout values for a flat linear progress indicator.
- M3ELinearProgressTheme
- Theme values for linear progress indicators.
- M3EListCardListTheme
-
Theme values for
M3ECardList. - M3EListDismissibleTheme
- Theme values for dismissible list widgets.
- M3EListExpandableTheme
- Theme values for expandable list widgets.
- M3EListItem
- A Material 3 Expressive list item.
- M3EListItemTheme
-
Theme values for
M3EListItem. - M3EListTheme
- Theme values for list-family widgets.
- M3ELoadingIndicator
- Material 3 Expressive loading indicator.
- M3ELoadingIndicatorTheme
-
Theme values for
M3ELoadingIndicator. - M3EMaterialApp
- A MaterialApp wired to adaptive M3ETheme with minimal integration code.
- M3EMaterialNewShapes
-
Foundation bridge to
material_new_shapesexpressive morph polygons. - M3EMenu
-
A Material 3 Expressive menu (Compose
DropdownMenu+DropdownMenuPopup). - M3EMenuColors
- Resolved colors for one M3EMenuColorStyle.
- M3EMenuContent
- Renders a tree of M3EMenuNodes inside one elevated menu surface.
- M3EMenuDivider
- Horizontal rule between menu sections inside one elevated surface.
- M3EMenuDividerWidget
- Horizontal divider between menu items inside one elevated surface.
- M3EMenuEntry
-
Standard action row (Compose
DropdownMenuItem). - M3EMenuGroup
- Elevated surface / subgroup of items with optional section label.
- M3EMenuItem
- A single interactive row inside an M3EMenu popup.
- M3EMenuNode
- A node in an M3EMenu content tree.
- M3EMenuPlacement
- Computed placement for an anchored menu popup.
- M3EMenuPlacer
- Collision-aware menu placement (Compose popup position provider).
-
M3EMenuPopup<
T> -
Overlay surface for showM3EMenu / M3EMenu (Compose
DropdownMenuPopup). - M3EMenuSelectable
- Single-select row with a trailing check when selected.
- Cascading submenu opened from a parent row.
- M3EMenuTheme
-
Theme values for
M3EMenu(ComposeMenuDefaultsexpressive tokens). - M3EMenuToggleable
- Toggleable row (Compose checked menu item).
- M3EMenuWidget
- Row whose body is an arbitrary child (host-provided content).
- M3EMotion
- Material 3 Expressive motion tokens.
- A Material 3 Expressive navigation bar.
- A destination shown in a navigation drawer.
- A Material 3 Expressive navigation drawer.
- Material 3 Expressive Navigation Rail — single widget that animates between states.
- M3EProgressIndicator
- Material 3 Expressive progress indicators.
- M3EProgressIndicatorTheme
- Theme values for progress indicator widgets.
-
M3ERadio<
T> - A Material 3 Expressive radio button.
- M3ERadioTheme
-
Theme values for
M3ERadio. - M3ERangeSlider
-
A Material 3 Expressive range slider (Compose
RangeSlider). - M3ERefreshIndicator
- A Material Design 3 expressive refresh indicator.
- M3ERefreshIndicatorState
- class.
- M3ERefreshIndicatorTheme
-
Theme values for
M3ERefreshIndicator. - M3ERenderButtonGroup
- M3ERenderButtonGroup.
- M3EResolvedTheme
- Applies a resolved M3EThemeData to a subtree.
- M3EScrimSystemUi
- System UI overlay for modal surfaces shown over a dark scrim.
- M3ESearchAnchor
- Manages a search view route opened from a search bar or custom anchor.
- M3ESearchAnchorHandle
- Handle implemented by M3ESearchAnchor for M3ESearchController.
- M3ESearchBar
- M3ESearchBar.
- M3ESearchBarInput
- Shared editable search field used by M3ESearchBar and the search view header.
- M3ESearchBarTheme
- Theme values for M3ESearchBar.
- M3ESearchConstants
- Shared constants for the M3E search bar and search view.
- M3ESearchController
- Controls a search view opened by M3ESearchAnchor.
- M3ESearchViewTheme
- Theme values for M3ESearchAnchor search views.
-
M3ESegment<
T> -
A single option within an
M3ESegmentedButton. -
M3ESegmentedButton<
T> - A Material 3 Expressive segmented button.
- M3ESegmentedButtonTheme
-
Theme values for
M3ESegmentedButton. - M3EShapes
- Material 3 Expressive shape (corner radius) tokens.
- M3EShapeSet
- A five-step BorderRadius scale for a single shape family.
- M3ESideSheet
- A Material 3 Expressive side sheet.
- M3ESideSheetTheme
-
Theme values for
M3ESideSheet. - M3ESlider
- M3ESlider.
- M3ESliderCenteredTrack
- Centered active-track variant — active fill grows from the midpoint.
- M3ESliderColors
- Resolved colors for an M3ESlider / M3ERangeSlider paint pass.
- M3ESliderRange
- A continuous range with start ≤ end, used by M3ERangeSlider.
- M3ESliderRangeLabels
- Optional labels for the start and end thumbs of M3ERangeSlider.
- M3ESliderTheme
- Theme values for M3ESlider and M3ERangeSlider.
- M3ESliderThumb
- Expressive bar handle for M3ESlider / M3ERangeSlider.
- M3ESliderTrack
- Default expressive track for a single-value M3ESlider.
- M3ESliderTrackIcons
- Optional icons inset into the active / inactive track segments.
- M3ESliderValueIndicator
- Floating value label shown while the slider handle is interacting.
- M3ESnackbar
- A Material 3 Expressive snackbar.
- M3ESnackbarHost
- Animates a snackbar in from the bottom, holds it, then removes entry.
- M3ESnackbarHostState
- M3ESnackbarHostState.
- M3ESnackbarTheme
-
Theme values for
M3ESnackbar. - M3ESpacing
- Material 3 Expressive spacing tokens.
-
M3ESplitButton<
T> - Material 3 Expressive Split Button.
- M3ESplitButtonTheme
-
Theme values for
M3ESplitButton. - M3ESpring
- A serialisable description of a Material 3 Expressive spring.
- M3EStateLayer
- Resolves Material state-layer overlay colors using M3EStateOpacity tokens.
- M3EStateLayerOverlay
- Paints a Material ink splash clipped to shape behind child.
- M3EStateOpacity
- Material 3 state layer opacity tokens.
- M3ESwitch
- A Material 3 Expressive switch.
- M3ESwitchTheme
-
Theme values for
M3ESwitch. - M3ETab
-
A single tab within an
M3ETabsbar. - M3ETabs
- A Material 3 Expressive tab bar.
- M3ETabTheme
-
Theme values for
M3ETabs. - M3ETappable
- A reusable interaction primitive powering expressive components.
- M3ETappableInkScope
- Supplies ink interaction callbacks from the tappable primitive to overlays.
- M3ETextField
- A Material 3 Expressive text field.
- M3ETheme
- Provides an M3EThemeData to the widget subtree.
- M3EThemeController
-
Manual brightness control for an adaptive
M3EThemeroot. - M3EThemeData
- Immutable bundle of expressive design tokens and per-component themes.
-
M3EThemeExtension<
T extends M3EThemeExtension< T> > -
Base type for overridable component themes registered on
M3EThemeData. - M3EThemeScope
- Hosts adaptive theme listeners and resolves M3EThemeData for components.
- M3EThemeScopeState
- State for M3EThemeScope that resolves brightness and dynamic color.
- M3ETime
- An immutable wall-clock time in 24-hour form.
- M3ETimePicker
- Entry points for presenting M3E time picker dialogs.
- M3ETimePickerDialog
- Dialog for picking a single time.
- M3ETimePickerTheme
- Theme values for M3E time pickers.
- M3ETimePickerUtils
- Time helpers shared by dial, input, and dialog pickers.
- M3EToggleButton
- Material 3 Expressive Toggle Button.
- M3EToggleButtonGroupTheme
-
Theme values for
M3EButtonGroup. - M3EToggleButtonTheme
-
Theme values for
M3EToggleButton. - M3EToolbar
- A Material 3 Expressive toolbar.
- M3EToolbarAction
- An icon action hosted by M3EToolbar.
- M3EToolbarColors
- Resolved colors for a toolbar (+ optional FAB).
- M3EToolbarItem
- A single slot in M3EToolbar.actions — icon action or custom widget.
- M3EToolbarMetrics
- Resolved layout metrics for floating / docked toolbars.
- M3EToolbarScrollBehavior
- Integrates scroll notifications with a M3EToolbarVisibilityController.
- M3EToolbarScrollWrapper
- Listens to ScrollNotifications on child and updates behavior.
- M3EToolbarTheme
- Theme values for M3EToolbar.
- M3EToolbarVisibilityController
- Tracks scroll / manual exit translation for a toolbar.
- M3EToolbarWidget
- Custom content hosted inline in M3EToolbar.actions.
- M3ETooltip
- A Material 3 Expressive tooltip.
- M3ETooltipTheme
-
Theme values for
M3ETooltip. - M3ETypeScale
- The Material 3 type scale.
- Morph
- This class is used to animate between start and end polygons objects.
- RoundedPolygon
- The RoundedPolygon class allows simple construction of polygonal shapes with optional rounding at the vertices. Polygons can be constructed with either the number of vertices desired or an ordered list of vertices.
Enums
- M3EAppBarDensity
-
The vertical density of an app bar. Mirrors
AppBarM3EDensity. - M3EAppBarShapeFamily
-
The corner shape family for an app bar container. Mirrors
AppBarM3EShapeFamily. - M3EAppBarVariant
-
The top app bar layouts. Mirrors
AppBarM3EVariant. - M3EButtonGroupDensity
- Spacing compactness between adjacent buttons.
- M3EButtonGroupOverflow
- Controls how button groups handle overflow when wrap=false.
- M3EButtonGroupOverflowMenuStyle
- Style for the overflow menu.
- M3EButtonGroupType
- How buttons in the group are visually connected.
- M3ECardPosition
- The position of a card within a list, used to determine its corner radii.
- M3ECardVariant
- The three card variants defined by Material 3.
- M3ECarouselHeroAlignment
- The alignment of the focal item in a M3ECarouselType.hero carousel.
- M3ECarouselType
-
Defines the visual presentation and layout style of an
M3ECarousel. - M3EChipType
- The four chip types defined by Material 3.
- M3EDatePickerEntryMode
- Entry mode for M3EDatePickerDialog and M3EDateRangePickerDialog.
- M3EDatePickerMode
- Calendar sub-view for M3ECalendarDatePicker.
- M3EDividerAxis
-
The orientation of an
M3EDivider. - M3EDropdownExpandDirection
- Controls the direction in which the dropdown overlay expands.
- M3EExpandableIconPlacement
- Determines the placement of the expand/collapse icon in the header.
- M3EFabMenuPosition
- Horizontal placement of a FAB menu’s FAB and its revealing menu items.
- M3EHapticFeedback
- Haptic feedback intensity levels for M3E interactions.
- M3EIconButtonShapeVariant
- The two resting shape variants.
- M3EIconButtonSize
- Visual scale labels (A–E in the spec).
- M3EIconButtonVariant
- Visual variants (kept from previous API).
- M3EIconButtonWidth
- Width variants of the button's container (not the icon glyph).
- M3ELoadingIndicatorVariant
-
The visual variants of an
M3ELoadingIndicator. - M3EMenuAnchorPosition
- Preferred placement of a menu relative to its anchor.
- M3EMenuColorStyle
- Standard vs vibrant container color mapping for M3EMenu.
- M3EMenuItemShape
-
Per-item corner shape within a menu group (Compose
MenuDefaults.itemShape). - M3EProgressIndicatorSize
- Size variants for linear progress indicators.
- M3ERefreshStatus
-
The lifecycle states an
M3ERefreshIndicatormoves through. - M3ERefreshTriggerMode
- Controls where a pull is allowed to start a refresh.
- M3ESliderIconPosition
- Axis-relative resting edge for the relocating track M3ESlider.icon.
- M3ESliderPaintMode
- How the track interprets active fill extents.
- M3ESliderTrackKind
- Which track geometry an M3ESlider paints.
- M3ETabsVariant
- The two tab emphasis levels defined by Material 3.
- M3ETimePickerEntryMode
- Entry mode for M3ETimePickerDialog.
- M3ETimePickerMode
- Which unit the dial is currently editing.
- M3EToolbarColorStyle
- Standard vs vibrant container color mapping.
- M3EToolbarDensity
- Legacy density enum.
- M3EToolbarDockEdge
- Edge used for docked placement and single-edge safe-area padding.
- M3EToolbarExitDirection
- Direction a toolbar slides when exiting via scroll / visibility controller.
- M3EToolbarFabPosition
- Position of an adjacent FAB relative to a floating toolbar.
- M3EToolbarPlacement
- Whether the toolbar floats over content or docks to an edge.
- M3EToolbarShapeFamily
- Legacy shape family — floating forces pill; docked forces square.
- M3EToolbarSize
- Legacy size enum — maps to icon-button density, not container height.
- M3EToolbarVariant
- Legacy color emphasis — prefer M3EToolbarColorStyle.
Extensions
- M3EMenuSpringMotion on M3ESpring
-
Converts M3ESpring to a motor
SpringMotionfor menu animations. - Matrix4PointTransformer on Matrix4
- MorphToPathExtension on Morph
- RoundedPolygonToPathExtension on RoundedPolygon
Functions
-
m3eDefaultSearchContextMenuBuilder(
BuildContext context, EditableTextState editableTextState) → Widget - m3eDefaultSearchContextMenuBuilder.
-
m3eMenuPartitionSurfaces(
List< M3EMenuNode> nodes) → List<M3EMenuGroup> - Partitions top-level menu nodes into elevated surface groups.
-
pathFromCubics(
{required Path path, required int startAngle, required bool repeatPath, required bool closePath, required List< Cubic> cubics, required double rotationPivotX, required double rotationPivotY}) → Path -
Returns a Path for a
Cubiclist. -
showM3EMenu<
T> ({required BuildContext context, required Rect anchor, required List< M3EMenuNode> children, M3EMenuAnchorPosition position = M3EMenuAnchorPosition.bottomEnd, M3EMenuColorStyle colorStyle = M3EMenuColorStyle.standard, T? selectedValue, bool closeOnSelect = true, double? preferredWidth, FocusNode? callerFocusNode, M3EMenuTheme? themeOverride}) → Future<T?> -
Shows an expressive menu popup anchored to
anchor.
Typedefs
-
M3EDropdownFutureRequest<
T> = Future< List< Function()M3EDropdownItem< >T> > - Signature for a function that asynchronously returns dropdown items.
-
M3EDropdownItemBuilder<
T> = Widget Function(M3EDropdownItem< T> item, {required VoidCallback onTap, required bool selected}) - Signature for a custom item builder inside the dropdown list.
- M3EExpandableBodyBuilder = Widget Function(BuildContext context, int index, double progress)
- M3EExpandableBodyBuilder.
- M3EExpandableHeaderBuilder = Widget Function(BuildContext context, int index, double progress)
- M3EExpandableHeaderBuilder.
- M3EMenuAnchorBuilder = Widget Function(BuildContext context, VoidCallback open)
- Builds the anchor for an M3EMenu, given a callback to open the menu.
- Callback to open a cascading submenu from an item rect.
- M3EMenuSelectCallback = void Function(Object? value)
- Callback when a menu node produces a selection result.
-
M3ERefreshCallback
= Future<
void> Function() - Signature for the callback invoked when the user triggers a refresh.
- M3ESearchAnchorChildBuilder = Widget Function(BuildContext context, M3ESearchController controller)
- Signature for building the search anchor child.
-
M3ESearchSuggestionsBuilder
= FutureOr<
Iterable< Function(BuildContext context, M3ESearchController controller)Widget> > - Signature for building search suggestions from the current query.
-
M3ESearchViewBuilder
= Widget Function(Iterable<
Widget> suggestions) - Signature for laying out suggestion widgets in the search view.
- M3ESelectableDayForRangePredicate = bool Function(DateTime day)
-
Returns true when
daycan be selected in a range picker. - M3ESelectableDayPredicate = bool Function(DateTime day)
-
Returns true when
daycan be selected in a single-date picker. - M3ESliderDotBuilder = Widget Function({required bool active, required Color color, required BuildContext context, required double size})
- Builds a custom stop/tick marker for M3ESlider / M3ERangeSlider.
- M3EStateWidgetBuilder = Widget Function(BuildContext context, M3EInteractionState state)
-
Builds the visual for a tappable surface given its interaction
state.