Pointer tilt
Cards tilt toward the cursor with a moving glare — one delegated listener.
hover
me
<div ref={rowRef} class="grid grid-cols-3 gap-6">
<div class="sv-tilt rounded-2xl border p-10">…</div>
</div>
<!-- tilt/glare read --mx/--my; restyle .sv-tilt::after for the glare -->
<div class="grid"> <!-- any container -->
<div class="sv-tilt">…</div>
<div class="sv-tilt">…</div>
</div>
<script type="module">
import { trackPointer } from 'scrollvars'
trackPointer(document.querySelector('.grid'))
</script>
/* preset in styles/tilt.css — tilt + glare from --mx/--my */
const ref = usePointer()
<div ref={ref} className="grid grid-cols-3 gap-6">
{cards.map(c => <div key={c.id} className="sv-tilt">…</div>)}
</div>