Generador de CSS de spinner para botones
Un spinner dentro de un botón indica al usuario que su clic ha funcionado y que no debe volver a pulsarlo. Genera aquí un anillo pequeño y fino, después copia el CSS y colócalo junto a la etiqueta del botón.
Cómo crear un spinner para botón
-
1
Usa un tamaño pequeño
Escribe 16 o 18 en el campo de tamaño para que el anillo encaje con la altura del texto del botón.
-
2
Haz el anillo fino
Pon el grosor en 2 para que el arco se vea nítido a este tamaño.
-
3
Iguala el color
Elige el color del arco en movimiento, por ejemplo blanco sobre un botón oscuro.
-
4
Acelera un poco y copia
Prueba 0,8 segundos por vuelta y, después, copia el CSS.
Un ejemplo práctico
Imagina un botón «Guardar» azul marino con texto blanco. En el generador, introduce tamaño 16, grosor 2, color #ffffff y velocidad 0.8. La herramienta produce:
.loader {
width: 16px;
height: 16px;
border: 2px solid #eee;
border-top-color: #ffffff;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
La pista del anillo es un gris claro fijo, que se ve bien sobre un botón oscuro. Si quieres una pista más discreta, cambia #eee por un valor translúcido como rgba(255, 255, 255, 0.3) en el CSS pegado. El color del arco sigue siendo el que elegiste.
Colócalo dentro del botón
Pon el elemento del spinner antes de la etiqueta y haz que el botón sea una fila flex para que ambos queden en una línea con un espacio entre ellos:
<button class="save" type="submit" disabled>
<span class="loader" role="status" aria-label="Guardando"></span>
Guardando
</button>
.save {
display: inline-flex;
align-items: center;
gap: 8px;
}
Añade el spinner y el estado disabled solo mientras la petición está en curso. Quítalos ambos cuando termine. Desactivar el botón es lo que evita los envíos duplicados; el spinner es la señal que explica por qué.
Tamaño y grosor para botones
| Tamaño del texto del botón | Tamaño del spinner | Grosor |
|---|---|---|
| 14 px | 14 px | 2 px |
| 16 px | De 16 a 18 px | 2 px |
| De 18 a 20 px | De 20 a 24 px | 3 px |
Notas
- El generador crea un único anillo circular. No crea el botón, así que los estilos del botón siguen siendo tuyos.
- Un anillo más grueso que una cuarta parte de su diámetro se llena y parece un disco, así que mantén los valores finos en tamaños pequeños.
- Deja la etiqueta junto al spinner. Un spinner sin texto puede ser difícil de interpretar para algunos usuarios.
Evita saltos de diseño
Si el spinner aparece y el botón se hace de repente más ancho, el diseño se desplaza y el área de clic se mueve. Hay dos soluciones sencillas. Dale al botón un ancho mínimo que ya quepa el spinner y la etiqueta más larga. O reserva el espacio del spinner desde el principio mostrando un marcador vacío de 16 px antes de la etiqueta. Como el anillo generado tiene un ancho y una altura fijos en píxeles, es fácil reservar exactamente el espacio que necesita.
Preguntas frecuentes
Aproximadamente la misma altura que el texto del botón, normalmente entre 14 y 20 píxeles. Así el botón no crece cuando aparece el spinner.
Sí, en la mayoría de los formularios. Desactivarlo evita envíos duplicados, y el spinner explica al visitante por qué no puede pulsar nada más.
La pista es de gris claro y el arco es el color que elijas. En un botón claro, elige un color de arco más oscuro y cambia el color de la pista en el CSS pegado.
No. El generador solo produce el CSS del anillo. Si mantienes, cambias u ocultas la etiqueta depende de tu marcado.
Herramientas relacionadas
Generador de Configuración de Webpack
Crea un webpack.config.js para webpack 5 con JavaScript puro, React o Vue: TypeScript, Babel, CSS o Sass, imágenes, HtmlWebpackPlugin, servidor de desarrollo y la línea de npm install.
Convertidor de ASCII a Binario
Convierte cualquier cadena ASCII a su representación binaria. Cada carácter se convierte en ocho bits, separados por espacios, listos para pegar en un seguimiento de protocolo o tarea.
Explorador de Rueda de Color
Explora la rueda de color de forma interactiva. Rota armonías, compara HSL vs RYB, identifica pares complementarios y triádicos en tiempo real.
Generador de letras aleatorias
Genera letras aleatorias A-Z. Elige la cantidad, usa mayúsculas, minúsculas o mezcla de ambas, y aplica el resultado en juegos, consignas o clase.
Convertidor de HTML a imagen
Renderiza un fragmento de HTML y CSS como PNG o JPG de tamaño fijo en tu navegador. Elige lienzo y escala, previsualiza y descarga.
Generador de Colores Análogos
Genera una paleta análoga de cinco colores a partir de cualquier color base, con un trío clásico, dos tonos exteriores y valores hex, RGB y HSL.
Herramienta disponible en otros idiomas
- เครื่องมือสร้างสปินเนอร์ในปุ่ม CSS [TH]
- ボタン用スピナー CSS ジェネレーター [JA]
- Generator spinera na przycisku w CSS [PL]
- Generator för spinner i knappar i CSS [SV]
- Generator CSS Spinner untuk Tombol [ID]
- مولّد CSS لدوّامة الزر [AR]
- CSS-Spinner für Buttons Generator [DE]
- CSS-spinner voor knoppen generator [NL]
- Gerador de CSS de spinner para botão [PT]
- Trình tạo spinner cho nút bằng CSS [VI]
- 버튼 스피너 CSS 생성기 [KO]
- Générateur de CSS pour spinner de bouton [FR]
- Spinner on Button CSS Generator [EN]
- Generatore di CSS per spinner nei pulsanti [IT]
- Генератор спиннера для кнопки в CSS [RU]
- Buton İçin CSS Spinner Oluşturucu [TR]
- 按钮加载动画 CSS 生成器 [ZH]