M3EButtonGroupTheme class
Theme extension for button group tokens and helpers.
- Inheritance
-
- Object
- M3EThemeExtension<
M3EButtonGroupTheme> - M3EButtonGroupTheme
- Annotations
Constructors
- M3EButtonGroupTheme({double connectedGap = 2, double dividerThickness = 1, double expandedRatio = 0.15, double fullRoundRadius = 9999, double? maxWidth, M3ESpring neighborSquishSpring = M3EMotion.spatialFast, double? standardSpacingOverride, double? connectedInnerRadiusOverride, double? connectedPressedInnerRadiusOverride, double? connectedOuterSquareRadiusOverride})
-
Creates a button group theme.
const
Properties
- connectedGap → double
-
Gap between connected segments (spec: 2dp at every size).
final
- connectedInnerRadiusOverride → double?
-
When set, forces the same connected inner radius for every size.
final
- connectedOuterSquareRadiusOverride → double?
-
When set, forces the same connected square outer radius for every size.
final
- connectedPressedInnerRadiusOverride → double?
-
When set, forces the same connected pressed inner radius for every size.
final
- dividerThickness → double
-
Divider thickness between connected segments.
final
- expandedRatio → double
-
Pressed width growth ratio for neighbour squish (spec: 15%).
final
- fullRoundRadius → double
-
Sentinel radius for fully round outer corners.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- maxWidth → double?
-
Optional max width for connected groups that expand to fill.
final
- neighborSquishSpring → M3ESpring
-
Spring for neighbour-squish width animation (spec: 1400 / 0.9).
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- standardSpacingOverride → double?
-
When set, forces the same standard between-space for every size.
final
Methods
-
connectedInnerRadiusFor(
M3EButtonSize size) → double -
Connected unselected inner corner radius for
size. -
connectedOuterSquareRadiusFor(
M3EButtonSize size) → double -
Square connected outer corner radius for
size. -
connectedPressedInnerRadiusFor(
M3EButtonSize size) → double -
Connected pressed inner corner radius for
size. -
connectedRadiusFor(
{required M3EButtonShape shape, required M3EButtonSize size, required bool isFirst, required bool isLast, required bool isPressed, required bool isSelected, double? height}) → BorderRadius - Connected segment BorderRadius for position and interaction state.
-
connectedSelectedInnerRadiusFor(
double height) → double - Connected selected inner corner radius (50% of segment height).
-
containerHeightFor(
M3EButtonSize size, {M3EButtonGroupDensity density = M3EButtonGroupDensity.regular}) → double -
Spec container heights (32 / 40 / 56 / 96 / 136) plus
densityadjustment. -
copyWith(
{double? connectedGap, double? dividerThickness, double? expandedRatio, double? fullRoundRadius, double? maxWidth, bool clearMaxWidth = false, M3ESpring? neighborSquishSpring, double? standardSpacingOverride, bool clearStandardSpacingOverride = false, double? connectedInnerRadiusOverride, bool clearConnectedInnerRadiusOverride = false, double? connectedPressedInnerRadiusOverride, bool clearConnectedPressedInnerRadiusOverride = false, double? connectedOuterSquareRadiusOverride, bool clearConnectedOuterSquareRadiusOverride = false}) → M3EButtonGroupTheme -
Returns a copy with non-null fields replaced.
override
-
fallbackChildWidth(
M3EButtonSize size) → double - Fallback main-axis estimate before labeled actions are measured.
-
groupRadiusFor(
M3EButtonShape shape, M3EButtonSize size) → BorderRadius - Clip / container radius for the whole group.
-
lerp(
M3EButtonGroupTheme? other, double t) → M3EButtonGroupTheme -
Linearly interpolates between this theme and
other.override -
metricsFor(
M3EButtonSize size, M3EButtonGroupDensity density, {bool isConnected = false}) → M3EButtonGroupMetrics -
Spacing metrics for
size/densityand connection mode. -
minTargetFor(
M3EButtonSize size) → double - Minimum accessible target edge (48dp when visual height is smaller).
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
overflowTriggerExtent(
M3EButtonSize size) → double - Preferred main-axis extent for an overflow menu / paging trigger.
-
squareRadiusFor(
M3EButtonSize size) → double - Alias of connectedOuterSquareRadiusFor for square outer corners.
-
standardRadiusFor(
M3EButtonShape shape, M3EButtonSize size) → BorderRadius - Resting radius for a standard (non-connected) action.
-
standardSpacingFor(
M3EButtonSize size) → double -
Standard between-space for
size(18 / 12 / 8 / 8 / 8). -
toString(
) → String -
A string representation of this object.
inherited
-
widthDeltas(
{required List< double> naturalWidths, required int? pressedIndex, double? expandedRatio}) → List<double> -
Neighbour-squish main-axis deltas for
pressedIndex.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
- defaults → const M3EButtonGroupTheme
- Package defaults (spec tokens).