A branded object cursor trail that follows pointer movement for food, retail, hospitality, and campaign-led websites.

Coffee Bean Cursor turns pointer movement into atmosphere: brand-specific objects turn the cursor into a signature.
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.
In production, the 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 Coffee Bean 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 |
|---|---|---|---|
beanCount | number | 300 | Number of beans in the flowing cursor field. |
beanColor | string | #392416 | Coffee bean color. |
size | number | 22 | Rendered bean size. |
rotationSpeed | number | 1 | Rotation speed for each bean. |
mouseInteraction | boolean | true | Enables mouse-reactive bean movement. |
scatterIntensity | number | 1 | Strength and radius of the mouse scatter force. |
Use it when a food, retail, or campaign page needs brand-specific objects turning the cursor into a signature not on utility flows.
Disable it on coarse pointers with CSS and JS pointer queries, then provide native touch behavior.
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.