An elastic cursor effect that draws a delayed rope-like line behind the pointer for playful, high-craft desktop experiences.

Rope Cursor turns pointer movement into atmosphere: a line follows the pointer with delayed weight.
It fits creative homepages, portfolios, campaigns, and brand-led experiments where the pointer becomes part of the identity, and not dashboards, checkout, forms, or dense product screens.
The thing to watch is keeping the pointer optional. The effect must turn off cleanly on coarse pointers, leave focus outlines intact, and never sit between the user and a click. A page that breaks when the cursor layer is removed has leaned on it too hard.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
Use this as cursor-system implementation guidance. Verify the shipped component export, pointer-tracking model, coarse-pointer disablement, z-index behavior, focus safety, cleanup, and reduced-motion handling before relying on exact props, defaults, imports, or installation steps.
Not for dashboards, checkout, forms, dense product UIs, or any flow where precision beats atmosphere.
Use one cursor layer, throttle movement with requestAnimationFrame, avoid full-screen filter effects, and disable Rope Cursor on coarse pointers.
Turn the effect off on touch and keep native gestures intact, and give any cursor-only reveal a visible or tappable alternative.
| Prop | Type | Default | Description |
|---|---|---|---|
ropeColor | color | #bda985 | Stroke color of the rope. |
ropeWidth | number | 2 | Stroke width of the rope. |
ropeOpacity | number | 0.6 | Opacity of the rope stroke. |
segmentLength | number | 0 | Distance allowed between rope segments. |
segmentCount | number | 8 | Number of points used to draw the rope. |
Use it when a playful, high-craft page needs a line following the pointer with delayed, springy weight not on utility flows.
Disable it on coarse pointers with CSS and JS pointer queries, then provide native touch behaviour.
Only when the same content is visible or accessible without pointer movement. Cursor-only reveals are not suitable for critical information.
Clicks, focus outlines, hover states, and modal layering must all behave normally with the effect in place.
Disable trails, lag, ripples, and pointer-following motion, then return to the native cursor.
Need a custom effect? Tell us what to create.