# `Plushie.Animation`
[🔗](https://github.com/plushie-ui/plushie-elixir/blob/v0.6.0/lib/plushie/animation.ex#L1)

Animation system for Plushie.

Plushie provides two animation approaches:

## Renderer-side descriptors (preferred)

Declare animation intent in `view/1` and the renderer handles
interpolation at full frame rate with zero wire traffic:

- `Plushie.Animation.Transition` -- timed transitions with easing
- `Plushie.Animation.Spring` -- physics-based spring animations
- `Plushie.Animation.Sequence` -- chained animation steps

These are the right choice for animating widget properties (opacity,
size, position, colour). No model state, no subscriptions needed.

## SDK-side tween

`Plushie.Animation.Tween` is a stateful interpolator you manage in
your model for frame-by-frame control. Use it for canvas animations,
physics simulations, or values that drive model logic rather than
widget props.

## Easing

`Plushie.Animation.Easing` provides 31 named curves plus cubic
bezier support. All animation modules accept easing as an atom
(e.g. `:ease_out`, `:ease_in_out_bounce`).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
