Crate iced_anim

Source
Expand description

A library for easily creating animations in Iced. Animations are designed around spring physics to make animations feel natural and interactive.

§Overview

The primary widgets are Animation and AnimationBuilder, which are widgets that help you animates a value when it changes. The Animation widget allows you to store the animated value in your app state, while the AnimationBuilder widget maintains the animated value so your app state is always up-to-date with the latest value. Refer to those widget modules for documentation and the examples directory for examples on how to use them.

§Animated widgets

A subset of the standard iced widgets are exported under a widgets feature flag. You can use these as drop-in replacements for the existing widgets:

use iced::{Element, widget::text};
use iced_anim::widget::button;

fn fancy_button<'a>() -> Element<'a, Message> {
    button(text("Animated button"))
        .on_press(Message::DoSomething)
        .into()
}

§Animating types

You can animate anything that implements Animate. A handful of common types already implement Animate like f32, iced::Color, and iced::Theme, with more to come in the future. You can also derive Animate on your own types to animate them as well by enabling the derive feature flag and adding #[derive(Animate)] to your type:

use iced_anim::Animate;

// Note that animate also requires `Clone` and `PartialEq` impls.
#[derive(Animate, Clone, PartialEq)]
struct MyType {
    size: f32,
    color: iced::Color,
}

§Controlling the spring motion

The spring motion of an AnimationBuilder can be customized. There are some presets like [spring::Motion::smooth] and [spring::Motion::bouncy], but you can also create your own.

§Supported Iced versions

This crate supports Iced 0.13 and newer.

Re-exports§

pub use animate::Animate;
pub use animated::Animated;
pub use animated::AnimationType;
pub use animation::Animation;
pub use event::Event;
pub use spring::Motion;
pub use spring::Spring;
pub use transition::Easing;
pub use transition::Transition;
pub use animation_builder::*;

Modules§

animate
Core definitions for the Animate trait and its implementations.
animated
animation
A widget that helps you animate a value over time from your state.
animation_builder
Implicitly animate between value changes.
event
An event associated with an crate::Animated value.
spring
Spring physics to enable natural and interactive animations.
transition
A type of animation that transitions between two values by following a curve.

Structs§

AnimatedState
Helps manage animating values for widgets.