GlassBottomBar class

Deprecated: Use GlassTabBar.bottom instead.

GlassBottomBar is a zero-logic shim that will be removed in v1.0. Migrate by replacing GlassBottomBar( with GlassTabBar.bottom( and GlassBottomBarTab( with GlassSegment(. All parameters are identical.

// BEFORE
GlassBottomBar(tabs: [GlassBottomBarTab(icon: Icon(Icons.home), label: 'Home')], ...)
// AFTER
GlassTabBar.bottom(tabs: [GlassSegment(icon: Icon(Icons.home), label: 'Home')], ...)
Inheritance
Annotations
  • @Deprecated('Use GlassTabBar.bottom() instead. ' 'GlassBottomBar will be removed in v1.0. ' 'Migration: replace GlassBottomBar( with GlassTabBar.bottom( ' 'and GlassBottomBarTab( with GlassSegment(.')

Constructors

GlassBottomBar({required List<GlassBottomBarTab> tabs, required int selectedIndex, required ValueChanged<int> onTabSelected, Key? key, GlassTabBarExtraButton? extraButton, GlassBottomBarCollapseConfig? collapseConfig, double spacing = 8, double horizontalPadding = 20, double verticalPadding = 20, double barHeight = 64, double barBorderRadius = _defaultBarBorderRadius, EdgeInsetsGeometry tabPadding = const EdgeInsets.symmetric(horizontal: 4), double iconLabelSpacing = 4, bool enableBlend = true, double blendAmount = 10, LiquidGlassSettings? settings, bool showIndicator = true, Color? indicatorColor, LiquidGlassSettings? indicatorSettings, double indicatorPinchStrength = 0.4, Color? selectedIconColor, Color? unselectedIconColor, Color? selectedLabelColor, Color? unselectedLabelColor, TextStyle? selectedLabelStyle, TextStyle? unselectedLabelStyle, double iconSize = 24, double labelFontSize = 11, TextStyle? textStyle, Duration glowDuration = const Duration(milliseconds: 300), double glowBlurRadius = 32, double glowSpreadRadius = 8, double glowOpacity = 0.6, GlassQuality? quality, double magnification = 1.15, double innerBlur = 0.0, MaskingQuality maskingQuality = MaskingQuality.high, GlobalKey<State<StatefulWidget>>? backgroundKey, double? tabWidth, double? indicatorBorderRadius, EdgeInsetsGeometry indicatorExpansion = const EdgeInsets.symmetric(horizontal: 12, vertical: 8), Color? interactionGlowColor, double interactionGlowRadius = 1.5, GlassInteractionBehavior interactionBehavior = GlassInteractionBehavior.full, double pressScale = 1.04, bool platformViewBackdrop = false, bool adaptiveBrightness = false, ValueChanged<Brightness>? onBrightnessChanged, ValueListenable<Brightness>? brightnessOverride, ScrollController? scrollController})
Creates a glass bottom navigation bar.
const

Properties

adaptiveBrightness → bool
Whether the bar adapts its light/dark appearance to the content scrolling underneath it, like the iOS 26 system bars.
final
backgroundKey → GlobalKey<State<StatefulWidget>>?
Optional background key for Skia/Web refraction.
final
barBorderRadius → double
The border radius of the bar.
final
barHeight → double
Height of the tab bar.
final
blendAmount → double
Blend amount for glass surfaces.
final
brightnessOverride → ValueListenable<Brightness>?
External brightness source that bypasses the content sampler entirely.
final
collapseConfig → GlassBottomBarCollapseConfig?
Optional vertical-swipe collapse behavior for the tab pill.
final
enableBlend → bool
Whether to enable organic liquid blending between the tab pill and the extra button.
final
extraButton → GlassTabBarExtraButton?
Optional extra button displayed beside the tab bar.
final
glowBlurRadius → double
Blur radius of the glow effect.
final
glowDuration → Duration
Duration of the glow animation when selecting a tab.
final
glowOpacity → double
Opacity of the glow effect when a tab is selected.
final
glowSpreadRadius → double
Spread radius of the glow effect.
final
hashCode → int
The hash code for this object.
no setterinherited
horizontalPadding → double
Horizontal padding around the entire bottom bar content.
final
iconLabelSpacing → double
Internal spacing of the tab bar.
final
iconSize → double
Size of the tab icons.
final
indicatorBorderRadius → double?
Override border radius for the indicator. Null = inherits from barBorderRadius.
final
indicatorColor → Color?
Color of the subtle indicator shown when not being dragged.
final
indicatorExpansion → EdgeInsetsGeometry
How far the jelly indicator's leading and trailing edges expand past the tab boundary as the indicator translates between tabs. Higher values give a more dramatic "puff" stretch; lower values a tighter, more iOS-native feel.
final
indicatorPinchStrength → double
Maximum concave lens pinch strength for the draggable indicator pill.
final
indicatorSettings → LiquidGlassSettings?
Glass settings for the draggable indicator.
final
innerBlur → double
Blur amount in logical pixels applied to content inside the indicator.
final
interactionBehavior → GlassInteractionBehavior
Controls which physical interaction effects are active when the user presses the bar.
final
interactionGlowColor → Color?
The color of the directional glow effect when interacting with the bar.
final
interactionGlowRadius → double
The radius spread of the directional glow effect when interacting with the bar.
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
labelFontSize → double
Font size for tab labels.
final
magnification → double
Magnification factor for the content inside the selected indicator.
final
maskingQuality → MaskingQuality
Quality of the liquid glass masking effect.
final
onBrightnessChanged → ValueChanged<Brightness>?
Called when the content-aware verdict flips (not for the initial value).
final
onTabSelected → ValueChanged<int>
Called when a tab is selected.
final
platformViewBackdrop → bool
Set true when the bar sits over an iOS PlatformView (e.g. a map). The bar background renders via live BackdropFilter (the premium shader can't capture a PlatformView), while the premium indicator refracts the bar's own icons — so premium animations survive over the PlatformView with no quality swap. Defaults to false.
final
pressScale → double
Peak scale factor applied to the bar at maximum press depth.
final
quality → GlassQuality?
Rendering quality for the glass effect.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
scrollController → ScrollController?
Optional scroll controller that drives automatic collapse/expand.
final
selectedIconColor → Color?
Icon color when a tab is selected. Defaults to dynamic label color.
final
selectedIndex → int
Index of the currently selected tab.
final
selectedLabelColor → Color?
Label color for selected tab.
final
selectedLabelStyle → TextStyle?
Per-state label text style, merged over the base label style — overrides font / weight / letter-spacing while keeping the resolved label color.
final
settings → LiquidGlassSettings?
Glass effect settings for the bottom bar.
final
showIndicator → bool
Whether to show the draggable indicator.
final
spacing → double
Spacing between the tab bar and extra button.
final
tabPadding → EdgeInsetsGeometry
Internal padding of the tab bar.
final
tabs → List<GlassBottomBarTab>
List of tabs to display in the bottom bar.
final
tabWidth → double?
Width of each tab slot in logical pixels.
final
textStyle → TextStyle?
Text style for tab labels.
final
unselectedIconColor → Color?
Color of the icon when a tab is not selected.
final
unselectedLabelColor → Color?
Label color for unselected tabs.
final
unselectedLabelStyle → TextStyle?
See selectedLabelStyle.
final
verticalPadding → double
Vertical padding above and below the bottom bar content.
final

Methods

build(BuildContext context) → Widget
Describes the part of the user interface represented by this widget.
override
createElement() → StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) → String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String
Returns a one-line detailed description of the object.
inherited
toStringShort() → String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited