Unlisted test route for motion, embed, and add-to-cart interaction experiments. Open with a country prefix, e.g. /au/test/animation-widgets. Sections are paginated (?page=2, 10 per page); add-to-cart / button interaction blocks start around page 13 (see footer pagination). The old /test/button-animations URL redirects to that page. Global cursor trail is disabled so the custom cursor demo is visible.
Short status toast from the bottom center with spring motion.
Scroll-linked scrub animation (same stack as brands hero). Static fallback when prefers reduced motion.
Scroll the page while this block is on screen — the square scrubs with GSAP ScrollTrigger.
Hosted sample `vehicles.riv` with state machine **bumpy** (Rive CDN sample mirrored in /public). Autoplay respects reduced motion.
CDN sample (off_road_car.riv) — simple looping artboard.
CDN sample (truck.riv) — lightweight vector loop.
Same vehicles file with default autoplay (no explicit state machine prop) — compare with the bumpy state-machine variant above.
Same vehicles file with **Rive canvas listeners** enabled — if the artboard defines hit areas, pointer interactions may fire. Falls back visually to the same asset otherwise.
Canvas stippled lettering on black: pointer repels grains; springs return to glyph homes when the cursor leaves (newmix-style). Static under reduced motion.
3D embed via @splinetool/react-spline. Set **NEXT_PUBLIC_ANIMATION_LAB_SPLINE_URL_1** to a public scene URL.
Set **NEXT_PUBLIC_ANIMATION_LAB_SPLINE_URL_2** for this block.