Phase 2createInView (live ratio)Multi-threshold array — continuous intersectionRatio updates during scroll.
Phase 2Variant orchestrationParent label cascades; staggered children via `custom` + dynamic variants.
Phase 2createVelocity / createTimeFrame-driver + velocity reader — oscillator that tilts in its direction of motion.
Phase 3Presence (fade)Single-element exit — <Show> + <Presence> running an exit target before unmount.
Phase 3Presence (list)<For> + add/remove with per-item enter/exit. Removed items animate; survivors stay put.
Phase 3Presence (staggered list)Per-item enter/exit with custom-driven delays — dynamic variants over the list.
Phase 3Presence (orchestrated)Parent shell's variant label cascades through m.Provider; Presence's descendant-walk exit makes the cascade work at unmount too.
Phase 3Presence initial={false}First-mount suppression. Initial paint is static; subsequent mounts animate.
Phase 3useAnimatePresence (hook)Imperative escape hatch — exit() returns a Promise, await it before flipping mount.
Phase 3Presence + gesturesHover/press combined with exit on the same card — gesture priority unchanged.
Phase 3Presence (toast queue)Stacked notifications — fire/auto-dismiss/clear all with parallel-exit coordination.
Phase 3Presence (swipe stack)Tinder-style draggable cards — exit direction follows the swipe, next card promotes.
Phase 4motion.X tag-componentOrchestrated stagger via <motion.ul> + passive <motion.li> children — no useMotion calls, no manual m.Provider.
Phase 4motion.create (HOC)Wrap a custom Component with motion — original props compose with the full MotionOptions surface.
Phase 4Sierpinski (perf stress)6,500+ motion.divs subscribing to one shared MotionValue via style — the canonical fan-out stress test, with live FPS counter and depth slider.