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.