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

animatable

make a type animatable

builder

animation builders

easing

ease functions

local

thread local based timeline

timeline

timeline definitions

utils

utilities

Structs

KeyFrame

key-frame

Options

options to build an Animation

Timeline

control your animation

Enums

KeyTime

key time

RepeatBehavior

how an Animation repeats its simple duration

SeekFrom

seek progress of current animation, only keep the remaining part

Constants

DEFAULT_ANIMATION_DURATION

default animation time, 1 second

DURATION_ZERO

Traits

Animatable

generates output values based on its timing progress

Animation

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

Cursor

like Iterator, but does not consume any element

Function

easing function