Repository navigation
Releases: 1bye/gpui-motion
Release list
gpui-ce-motion 0.4.0
Animate several independent parts with one component-owned Motions<K> collection.
- Sample keyed batches at one timestamp, preserving spring position and velocity through interruption and reordering.
- Use
frame_one/sample_onefor individual entries, with explicitremove,retain,clear, and capacity controls. - Reuse prepared storage during sampling and queue one native animation-frame request per active batch.
- Explore 10 Collection in the CE Motion lab, including enter/exit and cleanup after the notice disappears.
- Read the reorganized README, native tests, allocation checks, and sampling/memory benchmarks.
gpui-ce-motion = { version = "0.4", features = ["gpui"] }Requires Rust 1.95+ and stock GPUI CE 0.2.2 for native integration.
gpui-ce-motion 0.3.0
Expanded native animation on stock GPUI CE 0.2.2, with a shared portable engine and no renderer fork.
- Reactive value graphs, derived and typed bindings, lifecycle subscriptions, and cancellable completion futures.
- Parent/child variant inheritance, sequencing, nested exits, and mixed typed timelines.
- Measured scroll/drag helpers, external handles, direction locking, grid reorder, edge autoscroll, and window-root position/crossfade.
- Native trackpad pinch, SVG path parsing/arcs/normalization/path following, rich text, color/font-size transitions, and fixed-point number formatting.
- Nine-scene Motion lab, native input regression tests, allocation checks, CPU benchmarks, and executable README examples.
gpui-ce-motion = { version = "0.3", features = ["gpui"] }Requires Rust 1.95+. General subtree scale/rotation and full size projection remain deferred. Performance measurements cover CPU preparation; GPU timing and physical touch are unverified.
API examples · Changelog · Performance
Validation: all five CI jobs passed, including portable/native tests, documentation, Clippy, Dylint/README checks, archive/example builds, and Kit CPU benchmarks.
gpui-motion-kit 0.5.0
Use Motions<K> in GPUI Kit with the shared gpui-ce-motion 0.4.0 engine.
- Sample synchronized batches into Kit-native frames and interrupt springs smoothly.
- Keep independent transitions under one owner with explicit cleanup and capacity controls.
- Respect Kit's executor clock and reduced-motion preference, requesting one native frame per active batch.
- Explore 10 Collection in the Kit Motion lab, with shared CE/Kit behavior tests and CPU benchmarks.
- Follow the reorganized README from single-animation and enter/exit basics to keyed collections.
gpui-motion-kit = "0.5"
gpui-kit = { version = "=0.7.3", features = ["component", "assets"] }If your app also depends directly on gpui-ce-motion, update that dependency to
0.4, or import portable declarations through gpui_motion_kit::core to keep the
engine types aligned.
Requires Rust 1.95+ and stock GPUI Kit 0.7.3's default backend. The adapter uses the portable engine without enabling its CE-native feature.
Kit setup and API examples · Performance and memory · Release CI
gpui-motion-kit 0.4.0
GPUI Kit 0.7.3 bindings for the expanded gpui-ce-motion 0.3.0 engine, using the stock gpui-pre backend without a fork.
- Reactive graphs, native tree owners, typed timelines, and completion futures over the shared engine.
- Measured scroll/drag helpers, handles and direction locking, grid reorder, edge autoscroll, cross-container position/crossfade, pinch, and opt-in recognized touch dragging.
- SVG path preparation/following, rich text, animated colors/font sizes, and fixed-point formatted numbers.
- Nine-scene Motion lab, shared native interaction tests, CPU benchmarks, updated docs, and executable API examples.
gpui-motion-kit = "0.4"
gpui-kit = { version = "=0.7.3", features = ["component", "assets"] }Requires Rust 1.95+ and GPUI Kit's default gpui-pre backend. Import native states from gpui_motion_kit and portable types from gpui_motion_kit::core. General subtree transforms, size projection, and Kit element/backdrop blur remain unsupported. CPU benchmarks do not establish GPU performance; physical touch is unverified.
Setup and API examples · Changelog · Performance
Validation: all five CI jobs passed, including portable/native tests, documentation, Clippy, Dylint/README checks, archive/example builds, and Kit CPU benchmarks.
gpui-ce-motion 0.2.0
Native text and number animations for stock GPUI CE, with smooth interruption and no renderer fork.
- Animate complete labels, words, graphemes, and wrapped lines with presets, custom targets, stagger, matching, reflow, wipes, scramble, and keyframes.
- Control presence, playback, scrubbing, reduced motion, and rolling/fading/sliding/interpolated counters.
- Explore the new text galleries and six GPUI Kit product examples in the repository.
- Includes exit-cleanup fixes, macOS display-font workarounds, tests, CPU benchmarks, and a Linux hosted-documentation build.
cargo add gpui-ce-motion@0.2 --features gpuiRequires Rust 1.95+ and registry GPUI CE 0.2.2. Default features remain dependency-free; the optional text feature enables the portable text engine. The Kit adapter is available in the repository and is not published as a separate crate.
README and API examples · Text contracts · Performance measurements and limits
gpui-ce-motion 0.1.0
First public release of gpui-ce-motion, a native Rust motion engine with stock GPUI CE adapters.
Included
- Declarative transitions, physical/visual springs, enter/exit presence, and smooth interruption.
- Keyframes, playback controls, timelines, stagger, variants, scalar/color motion values.
- Native gestures, drag inertia/snapping, manual scroll-linked animation, and draggable/reorderable lists and tabs.
- Automatic position-only layout animation, measured sizing, popped exits, shared position/crossfade, and style transitions.
- SVG GPU scale/rotation and compatible vector path morph/stroke reveal.
- Eight demos, including the seven-experiment Motion studio showcase, tests, and CPU benchmarks.
Use
[dependencies]
gpui-ce-motion = { version = "0.1", features = ["gpui"] }Rust 1.95+, edition 2024. MIT OR Apache-2.0. Native adapters use published gpui-ce =0.2.2; no renderer fork or Git override is required. The default feature set is dependency-free.
Run the recording showcase from this repository:
cargo run --release --features demo --example motion_showcaseGeneral element scale/rotation, size projection, and browser/DOM/CSS parity are outside this release. See COVERAGE.md and PERFORMANCE.md for limits and measurement scope. Native TestPlatform checks and CPU benchmarks do not measure GPU presentation.
gpui-motion-kit 0.3.0
GPUI Kit 0.3.0 adds native helpers over the shared gpui-ce-motion 0.2.0 engine. It uses stock GPUI Kit 0.7.3 with its default gpui-pre backend; no renderer fork or new runtime dependency.
Added
- Animated colors, borders, per-corner radii, spacing and shadows.
- Native hover, press, focus, bounded drag, keyboard controls and in-view detection.
- Measured scroll-linked motion and intrinsic width/height transitions.
- Measured reorder, retained popped exits, and shared position/crossfade.
- Prepared clip and timeline playback with native clocks, pause/seek/speed controls, reduced motion and idle scheduling.
- SVG-specific scale, rotation, translation and custom pivots with smooth interruption.
- An eight-scene helper gallery, shared CE/Kit native tests, 13 CPU benchmark workloads and executable README examples.
Install
[dependencies]
gpui-motion-kit = "0.3"
gpui-kit = { version = "=0.7.3", features = ["component", "assets"] }Requires Rust 1.95+. Portable APIs are available through gpui_motion_kit::core; consumers do not need a direct core dependency.
Examples and limits
Run the new gallery from the repository:
cargo run --manifest-path integrations/gpui-kit/Cargo.toml --features demo --example helpersElement/backdrop blur and general element-tree scale/rotation remain outside stock Kit's public API; unsupported filters return explicit errors. Shared layout animates position and crossfade, with immediate size changes. CPU benchmarks do not establish GPU/display performance; Linux/Windows application runtime remains unverified.
Crates.io · API documentation · Complete API examples · Performance measurements
All five release CI jobs passed, including native/gallery tests, lint/README checks, package verification and the helper benchmark. After publication, all 16 README examples compiled in a separate registry-only consumer against gpui-motion-kit 0.3.0, core 0.2.0 and Kit 0.7.3.
gpui-motion-kit 0.2.0
First crates.io release of gpui-motion-kit, the GPUI Kit adapter for the shared gpui-ce-motion 0.2 engine.
- Kit-native transitions, springs, smooth interruption, enter/exit, scalar values, position-only layout, vector drawing, text, and number animations.
- Six interactive product examples and an editable text gallery, included with their assets in the crate archive.
- README setup, a complete Kit application, and API examples compiled and checked for spacing in CI.
- Native interaction tests, package/archive verification, and Linux API-documentation checks.
[dependencies]
gpui-motion-kit = "0.2"
gpui-kit = { version = "=0.7.3", features = ["component", "assets"] }Requires Rust 1.95+ and Kit 0.7.3's default gpui-pre backend. Native states come from gpui_motion_kit; portable APIs are re-exported through gpui_motion_kit::core. No direct CE-native dependency is needed.
Native CI covers macOS; Linux/Windows runtime behavior is unverified. General subtree transforms and CE-specific convenience helpers without Kit bindings remain outside this adapter's supported API.