Animations/Text Pressure

Text Pressure

Lettres qui reagissent a la proximite du curseur : poids, taille et attraction magnetique.

hoverJStextinteractivevariable-font
Trigger: Mouse move
CSS requis: Non
Difficulte: medium

Preview live

Code

"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";
  });
};

Instructions

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.