GlassProgressIndicator class
A glass morphism progress indicator following Apple's iOS 26 Liquid Glass design patterns.
GlassProgressIndicator provides both circular and linear progress indicators with glass effect, matching iOS's ProgressView appearance with liquid glass aesthetics.
iOS 26 Specifications
This widget implements the exact iOS 26 Liquid Glass progress indicators:
- Circular: 20pt diameter (default), 2.5pt stroke width
- Linear: Full width, 4pt height (default)
- Animation: 1.0 second rotation for indeterminate
- Glass Effect: Translucent with specular highlights
- Tint Color: Adaptive based on theme (blue default)
Usage
Circular Indeterminate (Loading Spinner)
GlassProgressIndicator.circular()
Circular Determinate (Progress Ring)
GlassProgressIndicator.circular(
value: 0.7, // 70% complete
)
Linear Indeterminate (Loading Bar)
GlassProgressIndicator.linear()
Linear Determinate (Progress Bar)
GlassProgressIndicator.linear(
value: 0.5, // 50% complete
)
Custom Size and Color
GlassProgressIndicator.circular(
value: 0.3,
size: 40.0,
strokeWidth: 4.0,
color: Colors.green,
)
Standalone Mode
GlassProgressIndicator.circular(
useOwnLayer: true,
settings: LiquidGlassSettings(
thickness: 30,
blur: 12,
),
)
Within LiquidGlassLayer
AdaptiveLiquidGlassLayer(
settings: LiquidGlassSettings(
thickness: 30,
blur: 12,
),
child: Column(
children: [
GlassProgressIndicator.circular(),
SizedBox(height: 20),
GlassProgressIndicator.linear(value: 0.6),
],
),
)
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- GlassProgressIndicator
- Available extensions
Constructors
- GlassProgressIndicator.circular({Key? key, double? value, double? size = 20.0, double? strokeWidth = 2.5, Color? color, Color? backgroundColor, bool useOwnLayer = false, LiquidGlassSettings? settings, GlassQuality? quality, String? semanticLabel})
-
Creates a circular glass progress indicator.
const
- GlassProgressIndicator.linear({Key? key, double? value, double? height = 4.0, double? minWidth = 200.0, Color? color, Color? backgroundColor, bool useOwnLayer = false, LiquidGlassSettings? settings, GlassQuality? quality, String? semanticLabel})
-
Creates a linear glass progress indicator.
const
Properties
- backgroundColor → Color?
-
The background color (track color).
final
- color → Color?
-
The color of the progress indicator.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- height → double?
-
Height of the linear progress indicator.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- minWidth → double?
-
Minimum width of the linear progress indicator.
final
- quality → GlassQuality?
-
Rendering quality for the glass effect.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- semanticLabel → String?
-
Overrides the VoiceOver / TalkBack label for this indicator.
final
- settings → LiquidGlassSettings?
-
Glass effect settings for standalone mode.
final
- size → double?
-
Size of the circular progress indicator (diameter).
final
- strokeWidth → double?
-
Stroke width of the circular progress indicator.
final
- useOwnLayer → bool
-
Whether to create its own AdaptiveLiquidGlassLayer.
final
- value → double?
-
The current progress value (0.0 to 1.0).
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< GlassProgressIndicator> -
Creates the mutable state for this widget at a given location in the tree.
override
-
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
-
glassContextMenu(
{Key? key, required List< Widget> actions, WidgetBuilder? previewBuilder, bool enabled = true, bool enableHaptics = true, double borderRadius = 32.0, double? previewBorderRadius, double rowBorderRadius = 16.0, BorderRadius? rowCorners, Color? originSlotColor, Color? backgroundColor, LiquidGlassSettings? settings, GlassQuality? quality, double backdropBlur = 0.0, Color? barrierColor, VoidCallback? onOpened, VoidCallback? onDismissed, Duration longPressDuration = const Duration(milliseconds: 700)}) → Widget -
Available on Widget, provided by the GlassContextMenuExtension extension
Wraps this widget in a GlassContextMenu displayingactionson long-press or right-click. -
glassFullScreenCover(
{required bool isPresented, VoidCallback? onDismiss, required WidgetBuilder content, bool enableSwipeToDismiss = true, double dismissThreshold = 140.0, LiquidGlassSettings? settings, GlassQuality? quality}) → Widget -
Available on Widget, provided by the GlassFullScreenCoverExtension extension
Presents a full-viewport modal cover wheneverisPresentedis true. -
Available on Widget, provided by the GlassNavigationTitleExtension extension
Annotates this widget with a navigation title that drives enclosing or descendant GlassAppBar / GlassAppBar.pinned bars (when their explicittitleis null) as well as header accessibility semantics. -
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