A custom cursor must be invisible to be felt.

The moment you notice the cursor, it's failed.

This is the rule the lab's cursor lives by:

  • The ring lags the system cursor by 22% per frame, which is enough to read as motion but not enough to read as latency.
  • The label appears only over interactive elements, and only after a 60 ms hover — short enough to feel responsive, long enough to filter accidental hovers.
  • It scales up, never disappears. Always-visible primary; the variant is the secondary surface.
  • Hover variants are constrained to four — view, open, follow, drag. Adding a fifth makes the cursor a UI element in itself, which violates the rule.

The cliché version of this is a glowing trail, particle effects, a 3D mouse-follower. The lab's version is a 10-pixel ring with mix-blend-difference, which renders correctly on every surface, costs ~0.1% CPU, and disappears the moment a user opens DevTools to see what magic is happening.

There's no magic. That's the point.