M3EButtonGroupTheme class

Theme extension for button group tokens and helpers.

Inheritance
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 density adjustment.
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 / density and 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).