A cursor magnification effect that distorts or enlarges nearby imagery for galleries, portfolios, and visual product sections.

Fish Eye Cursor turns pointer movement into atmosphere: the pointer magnifies nearby content.
It belongs on creative homepages, portfolios, campaign pages, and brand-led experiments where the cursor can become part of the visual language. It does not belong on dashboards, checkout, forms, or utility-heavy product screens.
The production risk is precision. The cursor layer must stay disposable, disable on coarse pointers, preserve visible focus, and never hide click intent. If removing the effect breaks the page, the cursor has been promoted past its pay grade.
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 Fish Eye Cursor on coarse pointers.
Disable on coarse pointers and preserve normal touch behavior. Cursor-only reveals must have visible or tap-accessible alternatives.
| Prop | Type | Default | Description |
|---|---|---|---|
bulgeEffect | number | 1 | Strength of the fish-eye bulge distortion. |
duration | number | 0.125 | Smoothing duration for bulge strength changes. |
smoothness | number | 0.083 | Cursor-follow smoothing duration. |
mouseInteractive | boolean | true | Enables cursor-driven fish-eye distortion. |
Use it when an image-led page needs the pointer to magnify nearby content on hover 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.
It must preserve native click meaning, visible focus, hover states, and modal layering.
Disable trails, lag, ripples, and pointer-following motion, then return to the native cursor.
Need a custom effect? Tell us what to create.