Générateur de CSS pour spinner de chargement

Suivant

Un spinner de chargement montre aux visiteurs qu’une page, un panneau ou un bouton est toujours en cours de traitement. Réglez ci-dessous la taille, l’épaisseur de l’anneau, la couleur et la vitesse, vérifiez l’aperçu, puis copiez le CSS du spinner de chargement terminé dans votre feuille de style.

Comment obtenir le CSS de votre spinner de chargement

  1. 1

    Choisissez une taille

    Saisissez le diamètre en pixels. Entre 40 et 60 pour une zone de contenu, plus petit pour un usage en ligne.

  2. 2

    Choisissez l'épaisseur et la couleur

    Réglez l'épaisseur de l'anneau en pixels et choisissez la couleur de l'arc en mouvement avec le champ couleur.

  3. 3

    Réglez la vitesse

    Saisissez les secondes d'un tour complet. 1 est une valeur par défaut courante.

  4. 4

    Copiez le CSS

    Utilisez le bouton de copie à côté de la zone CSS et collez les règles dans votre feuille de style.

Ce que vous obtenez

Le générateur écrit deux règles : une classe .loader et un bloc @keyframes spin. La classe dessine un cercle, lui donne un anneau gris clair et colore le bord supérieur de cet anneau. Les keyframes font effectuer au cercle une rotation complète, et la ligne animation la répète indéfiniment. Rien d’autre n’est nécessaire : ni fichier image, ni police d’icônes, ni script.

Avec les valeurs par défaut (60 px, anneau de 6 px, #10b981, 1 seconde), le résultat est le suivant :

.loader {
  width: 60px;
  height: 60px;
  border: 6px solid #eee;
  border-top-color: #10b981;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

Ajoutez-le à votre page

Collez le CSS dans votre feuille de style, puis ajoutez un élément vide là où le loader doit apparaître :

<div class="loader" role="status" aria-label="Chargement"></div>

Affichez l’élément pendant que le traitement est en cours, puis retirez-le, ou masquez-le avec display: none, lorsque le contenu arrive. Les attributs role et aria-label permettent aux lecteurs d’écran d’annoncer l’état.

Tailles qui fonctionnent

Emplacement Taille Épaisseur
Dans un petit bouton 16 à 20 px 2 px
À côté d’une ligne de texte 20 à 28 px 3 px
Carte ou panneau 40 à 60 px 4 à 6 px
Centré sur une page vide 60 à 100 px 6 à 8 px

Une règle empirique consiste à prendre une épaisseur d’environ un dixième du diamètre. Beaucoup plus fin, l’anneau paraît pâle sur les écrans haute résolution ; beaucoup plus épais, il devient une tache.

Points à connaître

  • La couleur de la piste est fixée en gris clair (#eee). Sur un fond sombre, modifiez cette valeur dans le CSS collé.
  • L’outil crée un seul spinner circulaire. Les points, les barres et d’autres formes demandent un balisage différent.
  • Si une classe nommée loader ou une animation nommée spin existe déjà dans votre projet, renommez-les dans le CSS collé pour éviter les conflits entre les règles.

Afficher et masquer le spinner

Un spinner de chargement doit apparaître au début du traitement et disparaître à sa fin. Un schéma simple consiste à garder un attribut hidden sur l’élément et à le retirer lorsqu’une requête commence. Si l’attente est généralement très courte, ajoutez un léger délai de quelques centaines de millisecondes avant d’afficher l’anneau, pour que des réponses instantanées ne fassent pas clignoter un spinner. Quel que soit votre choix, masquez aussi toujours le spinner en cas d’erreur, sinon les visiteurs attendront quelque chose qui a déjà échoué.

Questions fréquentes

Oui. Le résultat est un CSS simple avec une classe et une règle keyframes, il fonctionne donc dans toute feuille de style ou tout bloc de style, avec n’importe quel back end.

Gardez l’élément masqué par défaut et affichez-le au début de la requête. Masquez-le à nouveau à la fin. Vous contrôlez cela avec une bascule de classe ou un attribut hidden dans votre propre code.

Le CSS généré ne colore que la bordure supérieure du cercle. Lorsque le cercle tourne, cet unique arc coloré parcourt l’anneau gris clair, ce qui crée l’effet de rotation.

Oui. Chaque valeur est une propriété CSS ordinaire : vous pouvez modifier directement dans votre feuille de style la largeur, la bordure, la couleur ou la durée de l’animation.

Outils similaires

Outil disponible dans d’autres langues

Guides et cas d'usage