5 releases
Uses new Rust 2024
| 0.1.5 | Jan 19, 2026 |
|---|---|
| 0.1.4 | Jan 17, 2026 |
| 0.1.2 | Dec 25, 2025 |
| 0.1.1 | Dec 25, 2025 |
| 0.1.0 | Dec 25, 2025 |
#540 in GUI
60KB
1K
SLoC
gpui_transitions.
This crate provides an API for interpolating between values in gpui.
Transitions can be constructed via window.use_transition or window.use_keyed_transition. It's very similar to the use_state API.
let my_transition = window
.use_keyed_transition(
"my_transition",
cx,
Duration::from_millis(400),
|_window, _cx| rgb(0xFF0000)),
);
They can also be constructed more granularly via Transition::new:
let my_transition = Transition::new(
cx.new(|_cx| TransitionState::new(rgb(0xFF0000))),
Duration::from_millis(400),
);
To get the value of a transition you can use evaluate. This is the equivilant of use_state's read method.
let value = my_transition.evaluate(window, cx);
If the transition is not finished when evaluate is called then an animation frame will be requested.
Updating the transition's goal is identical to updating state:
my_transition.update(cx, |this, cx| {
*this = rgb(0x00FF00);
cx.notify();
});
Examples can be found here.
Dependencies
~45–89MB
~1.5M SLoC