React + MotionBoutons

Bordure dégradée animée

Deux traînées de couleur se poursuivent autour du bouton dans une boucle sans fin.

Réglages

24px
3

Code

interface GradientBorderButtonProps {
  color?: string;
  radius?: number;
  text?: string;
  /** Segundos por vuelta del borde. */
  intensity?: number;
}

export default function GradientBorderButton({
  color = "#0071e3",
  radius = 24,
  text = "Bouton lumineux",
  intensity = 3,
}: GradientBorderButtonProps) {
  return (
    <div
      className="relative overflow-hidden p-[2px]"
      style={{ borderRadius: radius + 2 }}
    >
      <div
        className="absolute inset-[-100%] animate-spin"
        style={{
          background: `conic-gradient(from 0deg, transparent 0%, ${color} 20%, transparent 40%, transparent 60%, ${color} 80%, transparent 100%)`,
          animationDuration: `${intensity}s`,
        }}
      />
      <button
        type="button"
        className="relative z-10 bg-[#f5f5f7] px-6 py-3 text-sm font-semibold text-[#1d1d1f] dark:bg-black dark:text-[#f5f5f7]"
        style={{ borderRadius: radius }}
      >
        {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

Une bordure qui tourne attire le regard sans remplir le bouton de couleur, et ressort surtout sur les sites sombres : le « Rejoindre la liste d’attente » d’un lancement, un lien mis en avant dans le menu ou le bouton d’abonnement d’une application. La bordure en dégradé animé est un classique qui a bien vieilli.

Attention au réglage d’intensité : il fixe le nombre de secondes pour un tour complet, donc une valeur plus haute tourne plus lentement. Autour de trois secondes, l’effet reste posé. Un seul par écran, sinon ils se font concurrence.