fluid_animations

Last updated:

0 purchases

fluid_animations Image
fluid_animations Images
Add to Cart

Description:

fluid animations

Fluid Animations #



Create effortlessly smooth and responsive animations in your Flutter apps inspired by Apple's SwiftUI animations.

Features #

⚡️ Effortlessly create smooth and responsive spring animations
🎨 Choose from preset animation styles (bouncy, smooth, snappy, interactive, ...)
🔧 Simplify creating smooth animations

Usage #
The simplest way of creating a spring is using the prebuilt ones. For example:
final mySpring = FluidSpring.bouncy;
copied to clipboard
You can also create custom springs. FluidSpring has two properties: duration and bounce.
final mySpring = FluidSpring(bounce: 0.4, duration: 0.5);
copied to clipboard
Duration: Defines the pace of the spring. This is approximately equal to the settling duration.
Bounce: How bouncy the spring should be. A value of 0 indicates no bounces, positive values indicate increasing amounts of bounciness up to a maximum of 1.0 (corresponding to undamped oscillation), and negative values indicate overdamped springs with a minimum value of -1.0.
Animating #
The simplest way to animate your widgets with a spring is using the FluidTransitionBuilder. It animates all changes of value using a spring.
FluidTransitionBuilder<double>(
value: isHovered ? 200.0 : 100.0,
spring: FluidSpring.bouncy, // Use a bouncy spring animation
builder: (animation, child) {
return Container(
width: animation.value,
height: animation.value,
child: child,
);
},
child: const FlutterLogo()
);
copied to clipboard
When you need more control over your animation you can also use a AnimationController and run a spring simulation.
final spring = FluidSpring.smooth;

final simulation = SpringSimulation(spring, 0, 1, 0);

_controller.animateWith(simulation);
copied to clipboard
See the flutter example on how to animate a widget using a physics simulation.
Animate using keyframes #
You can also create a complex custom animation using keyframes.
This example defines an animation that starts at 1 then interpolates to 0.8
for 20% of the animation's duration using a easing curve. Then it
interpolates to 1.4 for 50% of the duration using a spring and then
settles back to 1 for the last 30% of the animation using a different
spring.
final Animation<double> scaleAnimation = KeyframeAnimation<double>(
startingValue: 1,
keyframes: const [
CurvedKeyframe(
value: 0.8,
duration: 0.2,
curve: Curves.easeIn,
),
SpringKeyframe(
value: 1.4,
duration: 0.5,
spring: FluidSpring.bouncy,
),
SpringKeyframe(
value: 1,
duration: 0.3,
spring: FluidSpring.smooth,
velocity: 2,
),
],
).animate(myAnimationController);
copied to clipboard
2D Spring animations #
For 2D animations (e.g. animating positions like those seen in the demo video), use the SpringSimulation2D class. Refer to the example implementation for guidance.
Acknowledgements #
The math used is based on this amazing article.
Values for the prebuilt springs are from the Apple Documentation on animation.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.