React + MotionBotones

Borde degradado animado

Dos destellos de color se persiguen por el borde del botón en un bucle que no se detiene.

Ajustes

24px
3

Código

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

export default function GradientBorderButton({
  color = "#0071e3",
  radius = 24,
  text = "Botón glow",
  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 para IA

Pégalo en ChatGPT, Claude o Cursor y adaptará el bloque a tu proyecto con estos ajustes, aunque no uses React.

Más en Botones

Dónde usarlo

Un borde que gira llama la atención sin rellenar el botón de color, y luce sobre todo en webs oscuras: el «Únete a la lista de espera» de un lanzamiento, un enlace destacado del menú o el botón de mejorar plan de una app. El borde degradado animado es un clásico que ha envejecido bien.

Ojo con el control de intensidad: marca los segundos que tarda en dar una vuelta, así que un número más alto gira más lento. Con unos tres segundos queda tranquilo. Pon uno por pantalla como mucho, o empezarán a competir entre ellos.