Skip to content
Aurora Lab
Cursor · 11.10.2026

Magnetic Halo

A ring follows your pointer with a gentle delay, while nearby numbered circles lean toward it. It makes a simple page feel responsive and hands-on.

Interactive preview

960 × 640
About this effect

What is Magnetic Halo?

Move your mouse across the page and a ring follows behind it. The numbered circles gently shift toward the pointer, making the whole area feel connected to your movement.

This effect works well as an opening moment for a portfolio, an experimental landing page, or a section that invites visitors to explore.

How it’s built

The page tracks the pointer inside the full-screen area and gives the ring a target position. The ring then moves toward that target over several animation frames, creating a soft trailing effect. JavaScript also checks the position of each numbered circle and shifts it a short distance toward the pointer. When the pointer leaves, the circles return to their starting positions.

Ideal for

  • A portfolio homepage that introduces a designer or creative studio
  • An interactive opening section for an experimental website
  • A visual introduction to a digital magazine or editorial project
  • A project showcase where visitors can explore the page before reading more

Accessibility

The hidden pointer can make the page harder to use for people who rely on a mouse or trackpad, and the effect has no keyboard equivalent. Keep all important content and links usable without this interaction. Consider restoring the normal pointer and offering a reduced-motion option.

Performance

The implementation runs a continuous animation loop and updates the ring as the pointer moves. It also checks and shifts only three numbered elements, so the workload is small. The always-running animation may still be worth pausing or simplifying on low-power devices.

Source code

Explore, copy and reuse the original HTML, CSS and JavaScript.

<main class="cursor-field" id="field"><div class="halo" id="halo"></div><div class="node n1">01</div><div class="node n2">02</div><div class="node n3">03</div><p>drag your attention<br><span>through the field</span></p></main>