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.
M3EButtonTheme
Theme values for M3EButton.
M3EGradientOutlinePainter
Stroke painter for a rounded-rect outline (solid or gradient).
M3EToggleButtonDecoration
Styling overrides for M3EToggleButton and M3EButtonGroup.

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.