| color | string | "#FF7138" | Accent color for the cursor and the frame. Can be overridden per-element with data-cursor-color attribute. |
| fill | boolean | string | true | Frame tint. true = faint tint of color (8% opacity), false = none, or any CSS color string. |
| padding | number | [number, number] | [8, 4] | Gap between element and frame. Single number for uniform padding, or [x, y] for horizontal/vertical. |
| stroke | number | 1 | Frame border width in pixels. |
| dash | string | "4 3" | Dash pattern for the frame border ("dash gap"). |
| march | boolean | true | Enable marching ants animation (dashes crawl along the frame). |
| marchSpeed | number | 10 | Marching speed in pixels per second. |
| radius | number | 0 | Frame corner radius in pixels. 0 = sharp corners. |
| cursorSize | number | 22 | Cursor size in pixels. |
| selector | string | "a, button, [role='button'], summary, [data-cursor]" | CSS selector for elements that get framed. Add data-cursor to any element to opt-in. |
| ignore | string | "[data-cursor-ignore]" | CSS selector for elements to ignore (also ignores their children). |
| hideOn | string | "input, textarea, select, [contenteditable='true']" | CSS selector for elements where the custom cursor hides and native cursor returns. |
| hideNative | boolean | true | Hide the system cursor when the custom cursor is active. |
| morph | object | { type: "spring", stiffness: 380, damping: 34, mass: 0.8 } | Framer Motion transition for cursor-to-frame morph animation. |
| move | object | { type: "spring", stiffness: 520, damping: 44, mass: 0.7 } | Framer Motion transition for frame traveling between elements. |
| pressScale | number | 0.98 | Frame scale while mouse is pressed down (cursor shrinks too). |
| zIndex | number | 9999 | Z-index for the cursor/frame layer. |