Crate anim[][src]

Expand description

anim

This is a framework independent animation library for rust, works nicely with Iced and the others.

Showcase

Color&Opacity Animation Example

Size Animation Example

Raindrop Splash Animation

How to install?

Include anim in your Cargo.toml dependencies:

[dependencies]
anim = "0.1"

Note: anim turns on iced-backend feature by default. You need to disable default features if you do not work with iced.

[dependencies]
anim = { version="0.1", default-features = false }

How to use?

There are 3 important concepts in anim:

  • Animatable Types derived from Animatable means that its values can be calculated based on timing progress, with which you can create Animation objects.

  • Animation The Animation generates values based on its timing progress. You can construct a big Animation from small ones.

  • Timeline With Timeline you can control your animations’ lifetime.


For simple scenarios, you just need Options.

use anim::{Options, Timeline, Animation, easing};

Then, build and start your animation:

use std::time::Duration;
use anim::{Options, Timeline, Animation, easing};

let mut timeline = Options::new(20,100).easing(easing::bounce_ease())
    .duration(Duration::from_millis(300))
    .begin_animation();

loop {
    let status = timeline.update();
    if status.is_completed() {
       break;
    }
    println!("animated value: {}", timeline.value());
}

For complex scenarios, please look at examples to gain some ideas.

Modules

make a type animatable

animation builders

ease functions

thread local based timeline

timeline definitions

utilities

Structs

key-frame

options to build an Animation

control your animation

Enums

key time

how an Animation repeats its simple duration

seek progress of current animation, only keep the remaining part

Constants

default animation time, 1 second

Traits

generates output values based on its timing progress

your animation, which outputs animated value based on the progressing time.

like Iterator, but does not consume any element

easing function

Derive Macros

the macro derives anim::Animatable for you automatically.