Cursor & Pointer
Elastic Ring
Glowing pink ring trails the pointer with damped-spring physics, stretching along velocity and squashing across it. Auto-demos on a Lissajous path until first deliberate input.
canvasheavy complexitymoderate motionpointer
Open on the canvas to copy the code → Free account · 3 copies a day · membership goes unlimited
1
When to use it
Creative portfolio heroes, cursor-replacement effects, interactive showcases where pointer physics add tactile feel.
When not to
Utility UIs where a hidden cursor frustrates users. Touch-only devices where pointermove never fires.
Working with an AI agent
Every component ships agent-ready metadata. An example instruction for this one:
Adjust the existing palette tokens and effect parameters while preserving manual control. Arrow keys steer; first click/touch stops the attract path permanently for this mount. Keep demo-v1 lifecycle marker, __foreverPreview.demoEnabled initialization and forever:interactive handler. Preserve reduced motion, visibility suspension and theme switching.
Safe to edit
- accent color (ACC = '#ff5ca8')
- ring base size (Math.min(W,H)*0.085)
- spring stiffness (ax=(tx-rx)*0.14)
- damping factor ((vx+ax)*0.80)
- Lissajous radius scale (R*0.30)
- theme tokens (:root dark defaults + [data-theme=light] overrides)
Keep intact
- DPR-aware canvas sizing and setTransform
- visibilitychange pause guard
- prefers-reduced-motion static fallback render
- theme hook (?theme= bootstrap + forever:theme message listener + theme tokens)
- sticky demo-v1 preview lifecycle; stop attract work, retain manual feedback and settling
- pointer/touch takeover, keyboard access and visibility suspension
- demo-v1 preview lifecycle: initialize demoEnabled from window.__foreverPreview and stop attract work on the window forever:interactive event; retain manual feedback, settling, cleanup and explicit sessions
Known limitations
- Cursor is hidden (cursor:none) — must restore for production if replacing only part of a page
- Control state is local to each mount; format changes preserve preview takeover but create a fresh source instance.
- State remains local to each mounted instance; format/theme remount preserves takeover, not component values.
More Cursor & Pointer components
- Magnetic DotGlowing pink dot springs to the pointer; a laggy outer ring squashes along its travel, joined by a fading tendril. Self-demos via Lissajous path until…
- Gooey Trail22 pink blobs chain-follow the pointer via spring physics and merge into liquid goo through an SVG feColorMatrix filter; auto-demos a Lissajous path until…
- Spotlight MaskRadial spotlight follows the pointer, punching through a dark veil to reveal a pink dot grid and glowing word. Auto-demos via Lissajous path until first…
- Trail CometHot-pink comet spring-follows the cursor, dragging a tapering additive trail that lengthens with speed and flings spark particles. Lissajous demo stops at…
- Ripple FieldGrid of dots ripples outward in expanding pink rings as the pointer moves; dots displace radially along each wavefront. Lissajous auto-demo until first…