Animations/Spotlight Button

Spotlight Button

Bouton avec un halo lumineux qui suit le curseur sur hover. Effet premium.

hoverJSbuttonglowCTA
Trigger: Mouse move
CSS requis: Non
Difficulte: easy

Preview live

Code

"use client";
import { useCallback, useRef } from "react";

export default function SpotlightButton({ children }: { children: React.ReactNode }) {
  const btnRef = useRef<HTMLButtonElement>(null);

  const handleMouseMove = useCallback((e: React.MouseEvent) => {
    const el = btnRef.current;
    if (!el) return;
    const rect = el.getBoundingClientRect();
    const x = e.clientX - rect.left;
    const y = e.clientY - rect.top;
    el.style.background = `radial-gradient(120px circle at ${x}px ${y}px, rgba(225,255,108,0.15), transparent 60%), #111`;
  }, []);

  return (
    <button ref={btnRef} onMouseMove={handleMouseMove}
      onMouseLeave={() => { if (btnRef.current) btnRef.current.style.background = "#111"; }}
      style={{ padding: "12px 24px", borderRadius: 8, border: "1px solid #333", color: "#fff" }}>
      {children}
    </button>
  );
}

Instructions

Meme technique que spotlight-card mais sur un bouton. Ajustez le rayon (120px), la couleur du glow et le fond au repos (#111). Le gradient suit le curseur en temps reel.