Rendered on .NET · hydrated in the browser
Motion, owned by the view.
Scroll down. Each section below runs an anime.js timeline scrubbed by the scroll, and writes how far it has come into a signal.
Owned
Every animation is created when its element is placed and reverted when its owner is disposed. Nothing outlives the view that started it.
Reactive
Signals drive animations, and animations publish their progress back as signals, so the rail at the top is text bound to those signals.
Portable
This page was rendered by the .NET server. The motion parts add no markup, so the browser adopts every node and animates from there.
Twelve parts, one stagger
Gallery 0%