swift_liquid 1.0.0
swift_liquid: ^1.0.0 copied to clipboard
Liquid UI animations and effects for Flutter - iOS-style fluid interactions with spring physics, drag gestures, and beautiful modals.
swift_liquid #
iOS-style liquid animations for Flutter - Fluid interactions with spring physics, beautiful modals, and glass effects.
Features #
- 🌊 Liquid Tap Effects - Scale, stretch, and drag with spring physics
- 📱 Bottom Sheets - iOS-style modals with drag-to-dismiss
- 🎯 Popovers & Menus - Smart positioning with glass effects
- 🎨 Glass Container - Built-in glass morphism with backdrop blur
- ⚡ Widget Extension - Add liquid effects to any widget
- ♿ Accessibility - Full screen reader and keyboard support
Installation #
dependencies:
swift_liquid: ^1.0.0
Quick Start #
Add Liquid Effects to Any Widget #
import 'package:swift_liquid/swift_liquid.dart';
Container(
width: 100,
height: 100,
color: Colors.blue,
)
.sGestureDetector(
onPressed: () => print('Tapped!'),
)
Bottom Sheet #
showSModalBottomSheet(
context: context,
child: YourContent(),
)
Menu #
showSMenu(
context: context,
items: [
SPopupMenuItem(title: 'Edit', onTap: () {}),
SPopupMenuItem(title: 'Delete', destructive: true, onTap: () {}),
],
)
Glass Container #
SContainer(
padding: EdgeInsets.all(16),
child: Text('Glass Container'),
)
All Features #
Gesture Detector #
Extension Method (Recommended)
AnyWidget().sGestureDetector(
onPressed: () {},
onLongPress: () {},
stretchSensitivity: 1.5,
)
Widget Wrapper
SGestureDetector(
onPressed: () {},
child: YourWidget(),
)
Modals #
Bottom Sheet
showSModalBottomSheet(
context: context,
child: Content(),
enableDrag: true,
)
Popover
showSPopover(
context: context,
child: Content(),
position: Offset(x, y),
)
Menu
showSMenu(
context: context,
items: [SPopupMenuItem(...)],
)
Buttons #
SIconButton(icon: Icons.favorite, onPressed: () {})
SCloseButton(onPressed: () {})
SPopupMenuButton(items: [...])
Glass Container #
SContainer(
width: 200,
padding: EdgeInsets.all(16),
borderRadius: 20,
enableBlur: true,
child: Text('Content'),
)
Accessibility #
SAccessibility.button(
label: 'Save',
onPressed: () {},
child: Button(),
)
SAccessibility.announce(context, 'Saved!');
Parameters #
SGestureDetector #
onPressed- Tap callbackonLongPress- Long press callbackscaleOnPress- Scale factor (default: 1.1)stretchSensitivity- Drag sensitivity (default: 1.0)translateSensitivity- Movement sensitivity (default: 1.0)enableBrightness- Radial gradient effect
SContainer #
- All
Containerproperties borderRadius- Corner radius (default: 20)enableBlur- Backdrop blur (default: true)blurSigma- Blur intensity (default: 5.0)
Examples #
See the example folder for complete examples.
License #
MIT License - see LICENSE file.