GlassThemeData class

Theme data for liquid glass widgets.

Provides centralized styling for all glass widgets in your app, with automatic light/dark mode support. Brightness is resolved via a priority cascade: GlassThemeData.brightness override → Cupertino explicit pin → Material ThemeMode → system/device setting. This ensures glass widgets always follow the app's intended brightness, not the device OS setting.

Usage

Wrap your app with GlassTheme to provide theme data:

MaterialApp(
  theme: ThemeData.light(),
  darkTheme: ThemeData.dark(),
  builder: (context, child) => GlassTheme(
    data: GlassThemeData(
      light: GlassThemeVariant(
        settings: LiquidGlassSettings(thickness: 30, blur: 3),
        quality: GlassQuality.standard,
      ),
      dark: GlassThemeVariant(
        settings: LiquidGlassSettings(thickness: 40, blur: 5),
        quality: GlassQuality.standard,
      ),
    ),
    child: child!,
  ),
)

Access theme data in widgets:

final theme = GlassThemeData.of(context);
final settings = theme.settings; // Automatically uses light/dark variant
Annotations

Constructors

GlassThemeData({GlassThemeVariant light = GlassThemeVariant.light, GlassThemeVariant dark = GlassThemeVariant.dark, GlassInteractionSettings interaction = const GlassInteractionSettings(), Brightness? brightness})
Creates glass theme data with separate light and dark configurations.
const
GlassThemeData.fallback()
Default fallback theme when no GlassTheme is present in widget tree.
factory
GlassThemeData.simple({double? blur, double? thickness, GlassQuality? quality, double? chromaticAberration, double? lightIntensity, double? ambientStrength, double? refractiveIndex, double? saturation, double? borderRadius, GlassInteractionSettings? interaction, Brightness? brightness})
Creates glass theme data from a flat set of common properties.
factory

Properties

brightness Brightness?
Explicit brightness override for all glass widgets under this theme.
final
dark GlassThemeVariant
Theme variant for dark mode.
final
hashCode int
The hash code for this object.
no setteroverride
interaction GlassInteractionSettings
Interaction physics settings (brightness-agnostic).
final
light GlassThemeVariant
Theme variant for light mode.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

borderRadiusFor(BuildContext context) double?
Gets default corner radius for current brightness.
copyWith({GlassThemeVariant? light, GlassThemeVariant? dark, GlassInteractionSettings? interaction, Object? brightness = _sentinel}) GlassThemeData
Creates a copy with overridden values.
glowColorsFor(BuildContext context) GlassGlowColors
Gets glow colors for current brightness.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
qualityFor(BuildContext context) GlassQuality?
Gets rendering quality for current brightness.
settingsFor(BuildContext context) GlassThemeSettings?
Gets the partial glass settings override for the current brightness.
toString() String
A string representation of this object.
inherited
variantFor(BuildContext context) GlassThemeVariant
Retrieves the appropriate theme variant based on the resolved brightness.

Operators

operator ==(Object other) bool
The equality operator.
override

Static Methods

of(BuildContext context) GlassThemeData
Retrieves the theme data from the widget tree.