Lettres qui reagissent a la proximite du curseur : poids, taille et attraction magnetique.
"use client";
// Chaque lettre reagit au curseur: poids + taille + attraction
const handleMouseMove = (e) => {
letters.forEach((span) => {
const rect = span.getBoundingClientRect();
const cx = rect.left + rect.width / 2;
const cy = rect.top + rect.height / 2;
const dist = Math.sqrt((e.clientX - cx) ** 2 + (e.clientY - cy) ** 2);
const maxDist = 150;
const t = Math.max(0, 1 - dist / maxDist);
span.style.fontWeight = String(100 + Math.round(t * 800));
span.style.transform = `scale(${1 + t * 0.3})`;
span.style.color = t > 0.1 ? "#E1FF6C" : "#fff";
});
};Necessite une font variable. La distance max (150px) controle la zone d'influence. Le poids va de 100 a 900, le scale de 1 a 1.3. Similaire a magnetic-text mais avec scale en plus.