liquid_glacier 0.0.1
liquid_glacier: ^0.0.1 copied to clipboard
Apple Liquid Glass design for Flutter Material widgets. Features translucent surfaces, dynamic blur effects, subtle reflections, and depth-based layering.
Liquid Glacier ๐ง #
A Flutter package that applies Apple's Liquid Glass design language to Material widgets. Features translucent surfaces, dynamic blur effects, subtle reflections, and depth-based layering.
Author: Osman Demirรถz
โจ Features #
- ๐ฎ Translucent Surfaces - Frosted glass effect using
BackdropFilter - ๐จ Dynamic Blur - Configurable blur intensity (sigma 5-25)
- โจ Subtle Reflections - Gradient overlays for glass-like highlights
- ๐ Depth & Layering - Multi-layer shadows for visual depth
- ๐ญ Smooth Animations - Hover, press, and focus state animations
- ๐ Light/Dark Mode - Auto-adapts to theme brightness
๐ธ Screenshots #
๐ฆ Installation #
dependencies:
liquid_glacier: ^0.0.1
๐ Quick Start #
Wrap your app with LiquidGlassTheme to configure the global glass effect:
import 'package:liquid_glacier/liquid_glacier.dart';
void main() {
runApp(
LiquidGlassTheme(
data: LiquidGlassThemeData(
blurSigma: 12.0,
opacity: 0.2,
tintColor: Colors.white,
),
child: MaterialApp(
home: MyHomePage(),
),
),
);
}
๐งฉ Available Widgets #
| Widget | Description |
|---|---|
LiquidGlassAppBar |
Translucent app bar with blur |
LiquidGlassCard |
Frosted glass card with hover effects |
LiquidGlassButton |
Button with glow on press |
LiquidGlassElevatedButton |
Elevated button variant |
LiquidGlassTextButton |
Text button variant |
LiquidGlassOutlinedButton |
Outlined button variant |
LiquidGlassIconButton |
Icon button with glass effect |
LiquidGlassRadioButton |
Radio button with glass selection |
LiquidGlassTextField |
Input field with focus glow |
LiquidGlassBottomNavigationBar |
Bottom nav with floating pill indicator |
LiquidGlassNavigationBar |
Material 3 navigation bar |
LiquidGlassDialog |
Dialog with frosted background |
LiquidGlassAlertDialog |
Alert dialog variant |
LiquidGlassChip |
Chip with selection glow |
LiquidGlassFilterChip |
Filter chip variant |
LiquidGlassNavigationRail |
Side navigation rail |
LiquidGlassTabBar |
Tab bar with pill indicator |
LiquidGlassSegmentedTabBar |
Segmented control style |
LiquidGlassFAB |
FAB with glow effect |
LiquidGlassDrawer |
Drawer with blur |
LiquidGlassContainer |
Base glass container |
๐จ Theme Configuration #
LiquidGlassThemeData(
blurSigma: 10.0, // Blur intensity (5-25)
opacity: 0.15, // Glass opacity (0.0-1.0)
borderRadius: BorderRadius.circular(16),
tintColor: Colors.white, // Glass tint
reflectionColor: Colors.white,
animationDuration: Duration(milliseconds: 200),
enableReflection: true, // Gradient overlay
enableShadow: true, // Depth shadows
borderWidth: 0.5,
borderColor: Colors.white.withOpacity(0.3),
)
๐ฑ Examples #
Glass Card #
LiquidGlassCard(
onTap: () => print('Tapped!'),
child: Padding(
padding: EdgeInsets.all(20),
child: Text('Glass Card'),
),
)
Glass Radio Button #
LiquidGlassRadioButton<int>(
value: 1,
groupValue: selectedValue,
onChanged: (val) => setState(() => selectedValue = val),
glassColor: Colors.blue,
label: Text('Option 1'),
)
Glass Button #
LiquidGlassElevatedButton(
onPressed: () {},
icon: Icon(Icons.send),
child: Text('Send'),
)
Glass App Bar #
Scaffold(
appBar: LiquidGlassAppBar(
title: Text('My App'),
actions: [
LiquidGlassIconButton(
icon: Icon(Icons.settings),
onPressed: () {},
),
],
),
body: ...,
)
Glass Dialog #
showLiquidGlassDialog(
context: context,
builder: (context) => LiquidGlassAlertDialog(
icon: Icon(Icons.check_circle),
title: Text('Success'),
content: Text('Operation completed.'),
actions: [
LiquidGlassTextButton(
onPressed: () => Navigator.pop(context),
child: Text('OK'),
),
],
),
);
๐ฏ Best Practices #
- Use over vibrant backgrounds - Glass effect shines over images/gradients
- Keep opacity low - 0.1-0.3 works best for readability
- Moderate blur - Sigma 8-15 balances effect and performance
- Test on devices - BackdropFilter can be expensive on older devices
๐ License #
MIT License - see LICENSE for details.