Data✨ Premium

Gauge Meter

Jauge en demi-cercle, du vert au rouge, avec une aiguille qui pivote jusqu'à la valeur quand la jauge apparaît, puis suit chaque nouvelle valeur.

SVGCSS

Mis à jour le

Cet effet fait partie d'Effect.Labs — 840 effets vanilla, une partie gratuite, une partie premium. Data comprend 28 effets, dont 1 gratuits. Découvrir la catégorie →

3 exemples d'usage

Effort estimé d'une boucle en montagne — la jauge en tête de la fiche — Gauge Meter exemple 1

① Effort estimé d'une boucle en montagne — la jauge en tête de la fiche

QuandLa fiche d'une randonnée affiche la jauge d'effort à côté de la distance, du dénivelé et de la durée. En passant de « Boucle longue » à « Boucle courte », l'aiguille redescend de 7 / 10 à 4 / 10 et le mot passe de « Soutenu » à « Modéré ».
PourquoiAvant de partir, le marcheur veut savoir si la sortie est à sa portée : une aiguille sur un cadran vert-rouge se comprend au premier regard, mieux qu'une étiquette « difficile » perdue dans le texte.
Réglagesaria-valuemax="10", data-unit=" / 10", --gmtr-size:170px, aiguille et moyeu sombres (--gmtr-needle:#17251d, --gmtr-glow:rgba(23,37,29,.12)), piste #e6ece8, fond transparent. Les boutons de variante écrivent 7 ou 4 dans aria-valuenow ; dans la capture, un clic ailleurs dans la scène alterne aussi les variantes.
Remplissage des bacs à verre du quartier — une mini-jauge par adresse — Gauge Meter exemple 2

② Remplissage des bacs à verre du quartier — une mini-jauge par adresse

QuandL'appli de quartier liste les points de collecte du verre avec leur distance ; chaque ligne porte une petite jauge et un mot (« Presque plein », « Disponible »). Les aiguilles se placent quand la liste s'affiche.
PourquoiOn choisit le bac où déposer ses bouteilles en un coup d'œil : vert, on y va ; rouge, on passe au suivant. Le dégradé du code, du vert au rouge, colle exactement à ce sens.
RéglagesCinq racines, une par ligne : --gmtr-size:84px, piste #eef2f6, aiguille #334155, sans halo (--gmtr-glow:transparent), texte réduit à 11 px par le CSS de la scène. Valeurs 92, 58, 15, 80 et 34 dans aria-valuenow, aria-label="Remplissage du bac".
Difficulté du niveau choisi — carte de niveau d'un jeu de casse-tête — Gauge Meter exemple 3

③ Difficulté du niveau choisi — carte de niveau d'un jeu de casse-tête

QuandSur la carte du monde 1, le joueur touche un niveau : la fiche à droite prend son nom et l'aiguille de difficulté pivote jusqu'à sa note sur 10, de 2 pour « Premiers pas » à 9 pour « L'horloge ».
PourquoiUn joueur hésite entre plusieurs niveaux : l'aiguille qui bouge à chaque choix compare les difficultés mieux qu'une liste de chiffres, et le geste rappelle un compteur de machine, dans le ton du jeu.
Réglagesaria-valuemax="10", data-unit=" / 10", --gmtr-size:170px, couleurs vives --gmtr-low:#34d399, --gmtr-mid:#fbbf24, --gmtr-high:#f43f5e, piste rgba(196,181,253,.18). Chaque bouton de niveau écrit sa difficulté dans aria-valuenow ; dans la capture, un clic hors des boutons passe au niveau suivant.

Comment ça marche

Tout le dessin tient dans un SVG de 160 × 100 : un demi-cercle de rayon 60 (.gmtr-track), le même demi-cercle peint en dégradé vert → jaune → rouge (.gmtr-fill), une aiguille blanche (.gmtr-needle) qui pivote autour du moyeu placé au centre du cadran, et la valeur écrite en dessous (.gmtr-value). L'arc et l'aiguille indiquent toujours la même valeur : 70 % peint 70 % du demi-cercle et place l'aiguille à 36° (de −90° pour 0 % à +90° pour 100 %). Le texte est sous le moyeu, l'aiguille ne passe donc jamais dessus.

La valeur se lit dans aria-valuenow (entre aria-valuemin et aria-valuemax, 0 et 100 par défaut). Par défaut le texte est un pourcentage au format de la page (« 70 % », « 70% » en anglais) ; avec data-unit, il montre la valeur brute suivie de l'unité, par exemple aria-valuemax="10" data-unit=" / 10" donne « 7 / 10 ».

Arc et aiguille restent à zéro jusqu'à ce que la jauge soit visible à moitié, puis montent en 2 s (ease-out), une seule fois. Une nouvelle valeur écrite ensuite dans aria-valuenow fait glisser l'aiguille et l'arc jusqu'à elle. Chaque jauge a son propre id de dégradé et rien n'est déclaré sur window : plusieurs jauges cohabitent dans la page.

Accessibilité

  • Rôle : role="meter" (une mesure dans un intervalle connu), avec aria-valuetext recopié du texte affiché. Nommez la jauge avec aria-label (« Effort estimé », « Remplissage du bac »).
  • Couleur et texte : le dégradé n'est pas la seule information, la valeur est écrite en chiffres sous l'aiguille.
  • Mouvement réduit : sous prefers-reduced-motion: reduce, ni pivot ni remplissage animé ; la jauge affiche sa valeur dès qu'elle apparaît et saute directement aux valeurs suivantes.
  • Lecture : une nouvelle valeur n'est pas annoncée d'elle-même (une jauge n'est pas une zone live) ; si le changement compte, annoncez-le dans une zone aria-live à vous.

Compatibilité navigateur

SVG, transformations CSS sur éléments SVG, variables CSS et JavaScript sans dépendance (environ 2,5 Ko). Mesuré le 08/11/2026 dans Chromium 151, Firefox 153 et WebKit 26.5 (Playwright) : arc à 70 % et aiguille à 36° dans les trois, arc entier sans coupure, jauge placée plus bas qui attend le défilement, nouvelle valeur sur la 2e copie sans toucher la 1re, 390 px, mouvement réduit, aucune erreur. Versions tirées de @mdn/browser-compat-data : IntersectionObserver fixe le minimum.

Chrome 51+✓ Complet (mesuré)
Firefox 55+✓ Complet (mesuré)
Safari 12.1+✓ Complet (mesuré dans WebKit)
Edge 79+✓ Complet (moteur Chromium)
iOS Safari 12.2+✓ Non vérifié sur appareil réel
Android Chrome 51+✓ Complet (moteur Chromium)

Sans IntersectionObserver, la jauge prend sa valeur au chargement. Sans JavaScript, le cadran est vide, l'aiguille couchée à gauche, et le texte du HTML (« 70 % ») reste lisible.

Le code

Structure HTML à coller dans votre page (le CSS + JS sont inclus avec votre achat) :

index.html — structure
<div class="fx-0228-root">
  <div class="gmtr-gauge" role="meter" aria-label="Niveau" aria-valuemin="0" aria-valuemax="100" aria-valuenow="70">
    <svg class="gmtr-svg" viewBox="0 0 160 100" aria-hidden="true">
      <defs><linearGradient id="gmtr-grad">…</linearGradient></defs>
      <path class="gmtr-track"></path>
      <path class="gmtr-fill"></path>
      <rect class="gmtr-needle"></rect>
      <circle class="gmtr-halo"></circle>
      <circle class="gmtr-hub"></circle>
    </svg>
    <span class="gmtr-value">70 %</span>
  </div>
</div>

Paiement unique, sans abonnement — le code est à toi pour toujours

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
Valeur (HTML — aria-valuenow sur .gmtr-gauge) 70 À changer au départ ou en JavaScript (jauge.setAttribute('aria-valuenow', 45)) : arc, aiguille et texte suivent.
Bornes (HTML — aria-valuemin, aria-valuemax) 0 et 100 Une note sur 10 : aria-valuemax="10". L'aiguille se place selon la part de l'intervalle.
Unité affichée (HTML — data-unit) absent : pourcentage (« 70 % ») Présent, le texte devient la valeur brute plus l'unité : data-unit=" / 10" → « 7 / 10 », data-unit=" km/h" → « 70 km/h ».
Nom pour les lecteurs d'écran (HTML — aria-label) Niveau Ce que mesure la jauge : « Effort estimé », « Charge du serveur ».
Couleurs du cadran (CSS — --gmtr-low, --gmtr-mid, --gmtr-high, --gmtr-track) #22c55e · #eab308 · #ef4444 · indigo à 20 % Le dégradé va de gauche à droite. Si le haut de l'échelle est une bonne nouvelle (batterie pleine), inversez --gmtr-low et --gmtr-high.
Aiguille et moyeu (CSS — --gmtr-needle, --gmtr-glow) #fff · indigo à 35 % Sur fond clair, une aiguille sombre (#1f2937) et un halo léger ou transparent.
Taille (CSS — --gmtr-size) 160px Largeur de la jauge ; le texte fait 12,5 % de cette largeur.
Durée (CSS — --gmtr-duration) 2s Durée du premier pivot et des suivants.
Fond, texte et hauteur (CSS — --gmtr-bg, --gmtr-text, --gmtr-height) #0a0a0f · #fff · 300px Sur une page claire : --gmtr-bg:transparent; --gmtr-text:#111827; --gmtr-height:0px.

FAQ

Oui, avec .gmtr-value{display:none} dans votre CSS. La valeur reste annoncée aux lecteurs d'écran par aria-valuetext. Pensez alors à l'écrire ailleurs si la couleur seule ne suffit pas à vos visiteurs.
Réglez les bornes sur votre échelle (aria-valuemin="0" aria-valuemax="180"), mettez la mesure dans aria-valuenow et l'unité dans data-unit (" km/h"). Le nombre suit le format de la page, décimale comprise.
Non : une valeur sous le minimum ou au-dessus du maximum est ramenée dans l'intervalle pour l'aiguille et l'arc. Le texte, lui, montre la valeur réelle quand data-unit est utilisé.