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, and sliver variants.
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 M3EFabMenu is 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 MaterialIcons font.
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_shapes expressive 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.
M3EMenuSubmenu
Cascading submenu opened from a parent row.
M3EMenuTheme
Theme values for M3EMenu (Compose MenuDefaults expressive 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.
M3ENavigationBar
A Material 3 Expressive navigation bar.
M3ENavigationDestination
A destination shown in a navigation drawer.
M3ENavigationDrawer
A Material 3 Expressive navigation drawer.
M3ENavigationRail
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 startend, 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 M3ETabs bar.
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 M3ETheme root.
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 M3ERefreshIndicator moves 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.

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 Cubic list.
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<M3EDropdownItem<T>>> Function()
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.
M3EMenuOpenSubmenuCallback = void Function(Rect anchorRect, List<M3EMenuNode> children)
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<Widget>> Function(BuildContext context, M3ESearchController controller)
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 day can be selected in a range picker.
M3ESelectableDayPredicate = bool Function(DateTime day)
Returns true when day can 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.