components/buttons/m3e_buttons library

Classes

M3EButton
M3EButton.
M3EButtonConstants
Shared numeric constants used throughout the button package.
M3EButtonDecoration
Styling overrides for M3EButton.
M3EButtonMeasurements
Resolved layout measurements for a button size variant.
M3EButtonMotion
Spring-based motion configuration for M3EButton and M3EToggleButton.
M3EButtonSize
Standard size variants that map to Material 3 Expressive tokens.
M3EButtonTheme
Theme values for M3EButton.
M3EGradientOutlinePainter
Stroke painter for a rounded-rect outline (solid or gradient).
M3ENoOverflowStrategy
Overflow strategy that renders every action inline without a trigger.
M3EOverflowBottomSheetDecoration
Styling configuration for the overflow bottom sheet in M3EButtonGroup.
M3EOverflowPopupDecoration
Styling configuration for the overflow popup menu in M3EButtonGroup.
M3EOverflowStrategy
Abstract base class for custom overflow implementations.
M3EScrollOverflowStrategy
Overflow strategy that scrolls the actions inline in a single axis.
M3EToggleButtonDecoration
Styling overrides for M3EToggleButton and M3EButtonGroup.

Enums

M3EButtonShape
Overall corner-radius strategy for buttons.
M3EButtonStyle
Visual styles for M3EButton and M3EToggleButton.
M3EHapticFeedback
Haptic feedback intensity levels for M3E interactions.

Constants

m3eGradientForegroundSourceColor → const Color
Opaque white so BlendMode.srcIn shows the gradient as the content color.

Functions

m3eGradientBackgroundBuilder({required BorderRadius clipRadius, WidgetStateProperty<Gradient?>? gradient, ButtonLayerBuilder? explicitBuilder}) → ButtonLayerBuilder?
Builds a ButtonLayerBuilder that paints gradient behind the child.
m3eGradientFillLayer({required BorderRadius clipRadius, required Gradient gradient, required Widget? child, bool disabled = false}) Widget
Paints gradient behind child, clipped to clipRadius.
m3eGradientForegroundBuilder({required BorderRadius clipRadius, WidgetStateProperty<Gradient?>? gradient, ButtonLayerBuilder? explicitBuilder}) → ButtonLayerBuilder?
Builds a ButtonLayerBuilder that applies gradient to foreground content.
m3eGradientForegroundLayer({required BorderRadius clipRadius, required Gradient gradient, required Widget child}) Widget
Tints child with gradient via BlendMode.srcIn, clipped to clipRadius.
m3eGradientOutlineLayer({required BorderRadius clipRadius, required double width, required Widget child, Gradient? gradient, Color? color}) Widget
Paints a stroke around child using clipRadius.
m3eGradientOverlayLayer({required BorderRadius clipRadius, required Gradient gradient, required double opacity, required Widget child}) Widget
Paints gradient as a clipped state layer over child.
m3eGradientSpanRect({required GlobalKey<State<StatefulWidget>> hostKey, required BuildContext context, required Rect local}) Rect
Maps local into the box of hostKey so siblings share one gradient span.
m3eGradientSurfaceBuilder({required BorderRadius clipRadius, WidgetStateProperty<Gradient?>? backgroundGradient, WidgetStateProperty<Gradient?>? overlayGradient, WidgetStateProperty<Gradient?>? outlineGradient, WidgetStateProperty<BorderSide?>? outlineSide, double outlineFallbackWidth = 1, ButtonLayerBuilder? explicitBuilder}) → ButtonLayerBuilder?
Fill, overlay, and outline for Material backgroundBuilder.
m3eOutlineWidth(BorderSide? side, {double fallback = 1}) double
Width from side, or fallback when side is null or none.
m3eOverlayOpacityFor(Set<WidgetState> states) double
Opacity for a gradient state layer from states.
m3eResolveGradientOverlay({required BorderRadius clipRadius, required Set<WidgetState> states, required Widget child, WidgetStateProperty<Gradient?>? overlayGradient}) Widget
Resolves overlayGradient and paints it when the state layer is active.
m3eStatesForInteraction(M3EInteractionState state, {bool enabled = true}) Set<WidgetState>
Maps an M3EInteractionState onto WidgetStates.
m3eUsesGradientOverlay(WidgetStateProperty<Gradient?>? overlayGradient) bool
Whether overlayGradient should replace Material ink splash.