A rounded cursor square that glides after the pointer, then snaps to wrap whatever button it nears: it morphs to the button's exact size and corners and sits behind it as a highlight, nudging a little with the pointer while captured. Move away and it shrinks back to a cursor.
At rest the cursor is a 24 px rounded square lerping at 0.2. On entering a `[data-snap]` target the script reads its rect and writes width, height, radius and centre as the lerp goal, with the square moving behind the button (`z-index` below) as a fill highlight; while captured, the pointer offset from the target centre is applied at 10 % so the highlight leans with the hand. Leaving restores the 24 px goal.
From prompt to a block in your page.
The preview is the shipped element inside a neutral demo page. Hover, click, focus: the one interaction it is about is live.
Token sets re-tint it live. The prompt carries the one you chose.
A paste-in snippet, or a component for Next.js, React, Vue, Astro, WordPress, Shopify or Webflow.
It quotes the markup, styles and script verbatim with the tokens and the rules that keep it self-contained.
It inherits your page's font and width; the tokens live on :root; several instances share one script.