React + MotionBoutons

Bouton à liseré lumineux

Un fin reflet de lumière fait le tour du bouton, lentement et sans s’arrêter.

Réglages

3s

Code

import { motion } from "framer-motion";

interface RotatingLightBorderProps {
  text?: string;
  color?: string;
  /** Segundos por vuelta del reflejo. */
  speed?: number;
}

export default function RotatingLightBorder({
  text = "Explorer",
  color = "#2997ff",
  speed = 3,
}: RotatingLightBorderProps) {
  return (
    <div className="relative overflow-hidden rounded-full p-[1px]">
      <motion.span
        className="absolute inset-[-150%]"
        style={{ background: `conic-gradient(transparent 0 75%, ${color})` }}
        animate={{ rotate: 360 }}
        transition={{ duration: speed, repeat: Infinity, ease: "linear" }}
      />
      <button
        type="button"
        className="relative rounded-full bg-white dark:bg-[#1c1c1e] px-6 py-3 text-sm font-medium text-[#1d1d1f] dark:text-[#f5f5f7]"
      >
        {text}
      </button>
    </div>
  );
}

Prompt pour l’IA

Collez-le dans ChatGPT, Claude ou Cursor : le bloc sera adapté à votre projet avec ces réglages, même sans React.

Plus dans Boutons

Où l’utiliser

C’est le cousin discret de la bordure dégradée : une seule ligne de lumière au lieu de grandes traînées de couleur. Il convient à une image haut de gamme, comme le « Voir la collection » d’un bijoutier ou le « Voir le film » d’un studio. À côté d’effets plus bruyants, cette bordure lumineuse en rotation paraît sûre d’elle sans en faire trop.

Environ trois secondes par tour, c’est élégant ; plus vite, on croirait un indicateur de chargement. Une couleur vive sur une page sombre donne le meilleur résultat, car sur fond blanc cette ligne fine disparaît presque.