A two-part cursor: a small solid dot that sits exactly under the pointer and a thin ring that follows a beat behind on an eased lerp, so fast moves stretch the pair apart and stops let the ring catch up. Over anything marked as a target the ring grows and the dot shrinks to a pinprick.
The dot is positioned straight from `pointermove`; the ring stores its own x/y and moves 18 % of the remaining distance per frame, which settles in about 180 ms and gives the elastic gap. Hovering a `[data-target]` element adds `.on`: the ring scales 2.2× with a 20 % accent fill and the dot scales to 0.4, both over 0.25 s.
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.