Skip to content

v0.4.0 Wave 19: animation enhancements (triggers, delays, motion paths, reduce-motion, Animation Pane) - #17

Merged
900Labs merged 9 commits into
masterfrom
wave-19/animation
Jul 30, 2026
Merged

900Labs merged 9 commits into
masterfrom
wave-19/animation

Conversation

@900Labs

@900Labs 900Labs commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Summary

Wave 19 extends the animation system with triggers (OnClick/WithPrevious/AfterPrevious), delays, motion paths, a per-slide reduce-motion override, and a dedicated Animation Pane.

What changed

Model (slides-core)

  • Trigger enum (OnClick/WithPrevious/AfterPrevious). BuildStep gains trigger, delay_ms, motion_path: Option<Vec<Rect>>. BuildEffect::MotionPath variant. Slide.reduce_motion: Option<bool>.
  • 4 reversible commands: SetBuildStepTrigger, SetBuildStepDelay, SetBuildStepMotionPath, SetSlideReduceMotion.
  • All additive (#[serde(default)]) — old decks behave identically.

Animation crate (slides-animation)

  • build_timeline is now trigger-aware: WithPrevious fires simultaneously, AfterPrevious chains after the prior step's end. Click groups computed.
  • Motion path interpolation: linear between waypoints, duration split evenly.
  • build_timeline_reduced: instant frames for reduce-motion mode.
  • CSS keyframes for motion paths.

Desktop (apps/desktop/)

  • AnimationPane.svelte (+363 lines): ordered step list with trigger dropdown, duration/delay sliders, drag-to-reorder, reduce-motion toggle.
  • MotionPathEditor.svelte (+202 lines): canvas-based waypoint editor with click-to-add, save/cancel.
  • 4 Tauri commands, all transactional. Zero @html.

Review process

Control-tower pipeline on all 3 components. Model: fully CLEAN. Animation crate: CLEAN (1 NIT — Eq dropped from BuildFrame due to f64, harmless). Desktop: fully CLEAN. One svelte-check warning fixed before merge.

Test results

  • 373 workspace tests pass (slides-core +10, slides-animation +9).
  • npm run check (svelte-check): 0 errors, 0 warnings.
  • scripts/verify-local.sh: green. scripts/verify-public-release.sh: green.

Remaining v0.4.0 item

Wave 20: custom layouts per template + rehearse timings (final v0.4.0 wave).

@900Labs
900Labs merged commit 0897bde into master Jul 30, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant