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.