{"repo":"vyfor/animate","free":true,"listed":false,"github":"https://github.com/vyfor/animate","clone":"git clone https://github.com/vyfor/animate.git","description":"🎞️ Animation Library for Rust","language":"Rust","stars":95,"topics":["animate","animation","cli","framework","gui","interpolation","lerp","library","ratatui","rust"],"license":"MIT","category":"cli-tools","readme_excerpt":"🎞️ animate Lightweight Rust animation library with tweening and physics-based springs Features - Lightweight : Zero dependencies by default. - Ergonomic : Macro-driven API with minimal boilerplate. - Extensible : Many built-in types with support for custom interpolators. - Animation modes : once , cycle , alternate . - Easing : Built-in and custom easing functions. - Physics-based : Supports spring animations. - Ratatui-friendly : Interpolators for ratatui types, gated behind the ratatui feature flag. Installation Getting started Add #[animate] to a struct and mark the fields you want to animate: By default the macro generates an update method named animate . It must be called at the top of your struct's render method. If the name conflicts with an existing method, rename it: Next, place animate::tick() before your struct's update call at the start of each frame: Use get() to read and set() to write animated fields. Minimal example Animation modes Mode value Behaviour ---------------- ----------------------------------------------------- \"once\" Animates to target once, then holds. \"cycle\" Loops continuously from start to target. \"alternate\" Ping-pongs back and forth between start and target. Fields Option Type Default Description ------------ ------------ --------------------- -------------------------------------------------- duration u64 (ms) 0 Animation duration in milliseconds. easing path linear Easing function ( fn(f64) - f64 ). interp path ::lerp Interpolation functio","default_branch":null,"files":null,"tree":[],"storefront":"/r/vyfor","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/vyfor/animate/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}