loading code fetching the highlighted snippet
useAnimate returns [scope, animate]. Attach the scope to a subtree, then call animate(selector, props, options) — sequences, staggers, and selector-driven targets without any motion.* components.
{@attach scope}. Now selectors in animate('li', …) resolve only within that subtree — the same selector elsewhere
on the page is ignored. Auto cleanup on destroy.animate an array of [selector, props, options] tuples
to sequence them. Each step starts when the previous finishes unless you override
with at: '-0.2' (start 200ms before previous ends) or at: 0 (parallel).stagger(0.08) in the delay slot fans the animation across matched
elements — first li starts at 0, next at 80ms, and so on. Same hook handles
target-specific beats like the button's pop.