React + MotionLoaders
Spinner circular
El spinner de anillo de siempre, con color, tamaño y velocidad ajustables para un botón o una página entera.
Ajustes
48px
1s
Código
interface SpinnerProps {
color?: string;
size?: number;
/** Segundos por vuelta. */
speed?: number;
}
export default function Spinner({
color = "#0071e3",
size = 48,
speed = 1,
}: SpinnerProps) {
return (
<div
role="status"
aria-label="Cargando"
className="animate-spin rounded-full border-transparent"
style={{
width: size,
height: size,
borderWidth: Math.max(2, size / 10),
borderColor: `${color}33`,
borderTopColor: color,
animationDuration: `${speed}s`,
}}
/>
);
}
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 Loaders
Dónde usarlo
A veces el spinner de carga de toda la vida es justo lo que hace falta: dentro del botón «Enviar» mientras sale un formulario de contacto, junto a un buscador que espera resultados o en medio de una tabla todavía vacía. La gente entiende lo que significa sin pensarlo y apenas ocupa sitio.
Ponle el color de tu marca y déjalo pequeño dentro de los botones, entre 16 y 20 píxeles. Si la espera suele pasar de tres o cuatro segundos, una barra de progreso o un skeleton explican mejor lo que viene.