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
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- GlassBottomBar
- 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< ? 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<StatefulWidget> >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