loading code fetching the highlighted snippet
A single pointer-position MotionValue drives six useFollowValue outputs. Each follower has a different transition (spring crisp/bouncy/floaty/wobbly, tween short/long) so the comet trail visually shows how each animation type behaves under the same input. Move, tap, or use arrow keys to steer. Replay traces a shared route; Reset centers every follower.
targetX, targetY) are plain useMotionValue instances driven directly from the pointermove handler. Every follower derives from these — no per-follower
event wiring.useFollowValue(source, options) call. The options.type is the only thing that differs — same source, different
physics. That's the entire selling point of the hook: pick the personality, get a
composable MotionValue back.animate() on the shared source values; Reset uses jump() on the source and every follower. Reduced-motion preferences make
changes immediate.