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.