Générateur de CSS pour spinner de bouton

Suivant

Un spinner à l’intérieur d’un bouton indique à l’utilisateur que son clic a fonctionné et qu’il ne doit pas appuyer une seconde fois. Générez ici un anneau petit et fin, copiez le CSS, puis placez-le à côté du libellé du bouton.

Comment créer un spinner de bouton

  1. 1

    Utilisez une petite taille

    Saisissez 16 ou 18 dans le champ de taille pour que l'anneau tienne dans la hauteur du texte du bouton.

  2. 2

    Rendez l'anneau fin

    Réglez l'épaisseur sur 2 pour que l'arc reste net à cette taille.

  3. 3

    Harmonisez la couleur

    Choisissez la couleur de l'arc en mouvement, par exemple le blanc sur un bouton foncé.

  4. 4

    Accélérez un peu et copiez

    Essayez 0,8 seconde par tour, puis copiez le CSS.

Un exemple concret

Imaginons un bouton « Enregistrer » bleu foncé avec un texte blanc. Dans le générateur, saisissez la taille 16, l’épaisseur 2, la couleur #ffffff et la vitesse 0.8. L’outil produit :

.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 piste de l’anneau est un gris clair fixe, bien visible sur un bouton foncé. Si vous voulez une piste plus discrète, remplacez #eee par une valeur translucide, comme rgba(255, 255, 255, 0.3), dans le CSS collé. La couleur de l’arc reste celle que vous avez choisie.

Placez-le dans le bouton

Placez l’élément du spinner avant le libellé et faites du bouton une ligne flex pour que les deux restent alignés avec un espace entre eux :

<button class="save" type="submit" disabled>
  <span class="loader" role="status" aria-label="Enregistrement"></span>
  Enregistrement
</button>
.save {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

Ajoutez le spinner et l’état disabled uniquement pendant que la requête est en cours. Retirez les deux lorsqu’elle se termine. C’est la désactivation du bouton qui empêche les envois en double ; le spinner est le signal qui explique pourquoi.

Taille et épaisseur pour les boutons

Taille du texte du bouton Taille du spinner Épaisseur
14 px 14 px 2 px
16 px 16 à 18 px 2 px
18 à 20 px 20 à 24 px 3 px

Remarques

  • Le générateur crée un seul anneau circulaire. Il ne crée pas le bouton, donc les styles de votre bouton restent les vôtres.
  • Un anneau plus épais qu’un quart de son diamètre se remplit et ressemble à un disque ; gardez donc des valeurs fines pour les petites tailles.
  • Gardez le libellé à côté du spinner. Un spinner sans texte peut être difficile à interpréter pour certains utilisateurs.

Évitez les décalages de mise en page

Si le spinner apparaît et que le bouton s’élargit brusquement, la mise en page se décale et la zone cliquable se déplace. Deux solutions simples existent. Donnez au bouton une largeur minimale qui accueille déjà le spinner et le libellé le plus long. Ou réservez dès le départ l’espace du spinner en affichant un espace vide de 16 px avant le libellé. Comme l’anneau généré a une largeur et une hauteur fixes en pixels, il est facile de réserver exactement la place dont il a besoin.

Questions fréquentes

Environ la même hauteur que le texte du bouton, généralement entre 14 et 20 pixels. Ainsi le bouton ne grandit pas lorsque le spinner apparaît.

Oui, dans la plupart des formulaires. La désactivation empêche les envois en double, et le spinner explique au visiteur pourquoi rien d’autre ne peut être cliqué.

La piste est gris clair et l’arc est la couleur que vous choisissez. Sur un bouton clair, choisissez une couleur d’arc plus foncée et modifiez la couleur de la piste dans le CSS collé.

Non. Le générateur produit uniquement le CSS de l’anneau. Conserver, modifier ou masquer le libellé relève de votre balisage.

Outils similaires

Outil disponible dans d’autres langues

Guides et cas d'usage