sprung 2.0.0+12

Flutter Android iOS web

Spring curves for Flutter animations. Based on real physics equations with three damping curves.

sprung #

Sprung is an easy-to-consume Curve that uses real physics equations to drive your animations.

Easy to consume #

AnimatedContainer(
  /// Critically damped by default
  curve: Sprung(),
  /// ...
),
AnimatedContainer(
  /// Easily adjust damping value
  curve: Sprung(16),
  /// ...
),
AnimatedContainer(
  /// Build a custom spring
  curve: Sprung(
    damping: 20,
    stiffness: 180,
    mass: 1.0,
  ),
  /// ...
),

Sprung has three opinionated curves, Sprung.underDamped, Sprung.criticallyDamped, and Sprung.overDamped.

AnimatedContainer(
  curve: Sprung.underDamped,
  /// ...
),

Based on Physics #

Using Flutter's physics engine which leverages Newton's Second Law of Motion, Hooke's Law, and velocity based damping, we implement the following equation to create realistic spring animations.

m times x dot dot equals negative k times parenthesis x minus 1 close parenthesis minus c times x dot

Believable motion #

demo of under, critically, and over damped Flutter curves

Reliable accuracy #

Sprung exceeds Flutter specifications for curves by guaranteeing an error less than 1e-6. This amounts to a 0.0019px jitter at the beginning or end of a 1920px move.

22
likes
110
pub points
84%
popularity

Spring curves for Flutter animations. Based on real physics equations with three damping curves.

Repository (GitHub)
View/report issues

Documentation

API reference

Uploader

lukepighetti@gmail.com

License

MIT (LICENSE)

Dependencies

cupertino_icons, flutter

More

Packages that depend on sprung