Named after Proteus, the old god of the sea who assumed every form — Proteus lets the pointer morph into dot, circle, fluid blob or text as it travels across your interface. Vanilla JS, with first-class adapters for React, Vue 3 and Svelte.
Every Proteus cursor starts from one of two base modes. Everything else — presets, states, animations — builds on top.
A precise dot with an optional trailing shadow. Supports text, magnetism, blend modes. The classic — hover this plaque to feel it.
A morphing blob that stretches and squeezes with velocity, like water finding its shape. Hover here and move quickly.
Five ready-made configurations, applied in one line: cursor.loadPreset('ghost'). Hover each entry to wear it.
The field is dark on purpose — every preset, ghost and chrome included, stays visible while you try it.
Tactile feedback on every mousedown. Click inside each field to feel the difference.
Hover the targets: the cursor is attracted to their centre and eases back when it leaves. With parallax, the element itself leans toward you.
Tune every parameter live — the cursor you are moving right now is the preview. Copy the generated code when it feels right.
The sandbox writes to the page cursor's default preset — hover states elsewhere on the page temporarily overlay it, then restore your settings.
Three steps. No build tools required. Works with any framework or vanilla HTML.
npm i proteuscursor
import ProteusCursor from 'proteuscursor'; import 'proteuscursor/style';
const cursor =
new ProteusCursor({
shape: 'circle',
});
API reference, the state machine, framework adapters, blend modes, accessibility — every option the library exposes, catalogued.
Read the documentation →