jelly_animation 0.0.1
jelly_animation: ^0.0.1 copied to clipboard
A lightweight Flutter widget that wraps any child with a smooth, continuous jelly-like breathing animation using sine curves and scale transforms.
Jelly Animation #
A lightweight Flutter widget that adds a smooth, continuous jelly-like breathing animation to any child widget.
Features #
- Organic Motion — Smooth sine-curve breathing that feels alive.
- Fully Customizable — Control scale amount, duration, and easing curve.
- Toggle On/Off — Enable or disable animation without rebuilding the widget tree.
- Zero Dependencies — Only depends on Flutter SDK.
- Lightweight — Single widget, minimal overhead.
Installation #
dependencies:
jelly_animation: ^<latest_version>
Usage #
Wrap any widget with JellyWidget to give it a jelly-like breathing animation:
import 'package:jelly_animation/jelly_animation.dart';
JellyWidget(
child: Container(
width: 120,
height: 120,
decoration: BoxDecoration(
color: Colors.orange,
borderRadius: BorderRadius.circular(24),
),
child: Icon(Icons.star, size: 48, color: Colors.white),
),
)
Customization #
// Subtle, slow jelly
JellyWidget(
scaleAmount: 0.04,
duration: Duration(milliseconds: 1500),
child: MyWidget(),
)
// Dramatic, fast wobble
JellyWidget(
scaleAmount: 0.15,
duration: Duration(milliseconds: 600),
curve: Curves.bounceOut,
child: MyWidget(),
)
// Conditionally animated
JellyWidget(
enabled: isAnimating,
child: MyWidget(),
)
Parameters #
| Parameter | Type | Default | Description |
|---|---|---|---|
child |
Widget |
required | The widget to animate |
scaleAmount |
double |
0.08 |
How far the jelly stretches (±%) |
duration |
Duration |
1000ms |
Duration of one breathing cycle |
curve |
Curve |
easeInOutSine |
Easing curve for the animation |
enabled |
bool |
true |
Whether the animation is active |
How It Works #
The animation simultaneously stretches the widget horizontally while squeezing it vertically (and vice versa), creating the classic "breathing jelly" effect. The transform is applied using Matrix4.scale, so it works with any widget without affecting layout.
License #
Licensed under the MIT License.