Formulaires✨ Premium

Password Strength

Sous le champ mot de passe, une barre se remplit au tiers, aux deux tiers ou en entier, avec le verdict Faible, Moyen ou Fort, recalculé à chaque touche.

JSAnimationSecurity

Mis à jour le

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

3 exemples d'usage

Inscription à une banque en ligne — la jauge sous le champ de création — Password Strength exemple 1

① Inscription à une banque en ligne — la jauge sous le champ de création

QuandLe nouveau client choisit son mot de passe : la barre passe de Faible à Moyen puis à Fort à mesure qu'il ajoute chiffre et symbole.
PourquoiLa règle affichée juste en dessous (10 caractères, majuscule, chiffre, symbole) se vérifie en direct : le client sait qu'il a fini sans attendre un refus au moment de valider.
RéglagesThème clair : --pwsm-field:#fff, --pwsm-border:#cfd8e3, --pwsm-track:#e2e8f0, --pwsm-text:#0b1b33, couleurs d'état assombries pour fond blanc (--pwsm-weak:#dc2626, --pwsm-medium:#d97706, --pwsm-strong:#059669), barre de 5 px, largeur 100 %. Frappe pilotée par la scène.
Atelier de sensibilisation — une jauge lisible du fond de la salle — Password Strength exemple 2

② Atelier de sensibilisation — une jauge lisible du fond de la salle

QuandL'animateur essaie trois exemples à l'écran : « soleil », « Soleil24 », « Soleil24!Marée ». La salle voit la barre grandir et le verdict changer.
PourquoiAgrandie, la jauge devient un support de démonstration : chacun comprend l'effet d'un chiffre ou d'un symbole sans jargon.
Réglages--pwsm-width:100%, --pwsm-font-size:1.6rem, --pwsm-bar-height:12px, --pwsm-label-size:1.4rem, champ en type="text" pour que les exemples se lisent. Les essais sont posés par la scène.
Réglages de sécurité — un mot de passe généré d'un clic — Password Strength exemple 3

③ Réglages de sécurité — un mot de passe généré d'un clic

QuandDans la ligne « Mot de passe » d'une page de réglages, l'ancien mot de passe s'affiche « Faible ». Un clic sur Générer remplit le champ et la barre passe au vert.
PourquoiLe retour est immédiat sur une action qui n'est pas une frappe : la jauge confirme que la proposition est solide avant l'enregistrement.
RéglagesPetit format en thème clair (--pwsm-font-size:.875rem, --pwsm-focus:#7c3aed), champ prérempli par value : l'effet le note dès le chargement. Le bouton Générer appartient à la scène ; il pose la valeur puis déclenche input, ce que l'effet écoute.

Comment ça marche

À chaque événement input, le mot de passe gagne un point par critère rempli : 6 caractères ou plus, 10 ou plus, une majuscule (A-Z), un chiffre, un caractère hors lettres et chiffres (accent compris). De 0 à 2 points : barre à 33 % en rouge et « Faible » ; 3 points : 66 % en orange et « Moyen » ; 4 ou 5 : barre pleine en vert et « Fort ». Champ vide : barre vide et texte de départ, « Force du mot de passe ».

L'état est porté par un seul attribut, data-strength sur .pwsm-group (empty, weak, medium, strong) ; le CSS en déduit largeur et couleurs, la barre glisse en 0,4 s. Aucun style n'est écrit en ligne sur la barre : vider le champ puis retaper un mot de passe la fait repartir normalement.

Les libellés sont lus dans le HTML (bloc caché .pwsm-words) : la même version du script sert en français et en anglais. Le calcul ne consulte aucune liste de mots de passe connus : « Motdepasse1! » obtient « Fort ». C'est un repère pour guider la saisie, pas une vérification de sécurité côté serveur.

Accessibilité

  • Étiquette et remplissage : « Mot de passe » dans un <label> masqué visuellement, autocomplete="new-password" pour que les gestionnaires proposent d'en générer un.
  • Verdict annoncé : le texte sous la barre est une zone aria-live="polite" réécrite seulement quand le verdict change ; le champ y renvoie par aria-describedby.
  • Pas seulement la couleur : chaque niveau a sa longueur de barre et son mot ; la barre elle-même est aria-hidden.
  • Mouvement réduit : sous prefers-reduced-motion: reduce, la barre change de longueur sans glisser.
  • Limite : le score ne dit pas quel critère manque. Gardez une phrase visible qui liste les règles (comme dans l'exemple de la banque).

Compatibilité navigateur

2 Ko de JavaScript, CSS à variables et sélecteurs d'attribut. Mesuré le 08/11/2026 dans Chromium, Firefox et WebKit (Playwright) : barre pleine et verte après un effacement complet puis une nouvelle saisie, deux copies indépendantes, toucher à 390 px, mouvement réduit, aucune erreur. Seuil fixé par NodeList.forEach (Chrome 51, Firefox 50, Safari 10, d'après @mdn/browser-compat-data).

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

Sans JavaScript, le champ mot de passe fonctionne normalement ; la barre reste vide et le texte « Force du mot de passe » ne change pas.

Le code

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

index.html — structure
<div class="fx-0286-root">
  <div class="pwsm-group" data-strength="empty">
    <label class="pwsm-field">
      <span class="pwsm-sr">Mot de passe</span>
      <input class="pwsm-input" type="password" name="password" autocomplete="new-password" placeholder="Entrez un mot de passe">
    </label>
    <div class="pwsm-meter" aria-hidden="true">
      <div class="pwsm-fill"></div>
    </div>
    <div class="pwsm-label" aria-live="polite">Force du mot de passe</div>
    <span class="pwsm-words" hidden>
      <span data-level="empty">Force du mot de passe</span>
      <span data-level="weak">Faible</span>
      <span data-level="medium">Moyen</span>
      <span data-level="strong">Fort</span>
    </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
Couleurs des niveaux (CSS — --pwsm-weak, --pwsm-medium, --pwsm-strong sur .fx-0286-root) #ef4444 · #f59e0b · #10b981 Sur fond blanc, assombrissez-les (#dc2626, #d97706, #059669) pour garder un texte lisible.
Barre (CSS — --pwsm-bar-height, --pwsm-track) 4px · blanc à 10 % Épaisseur de la barre et couleur de son rail vide.
Libellés (HTML — .pwsm-words) Force du mot de passe · Faible · Moyen · Fort Traduisez ou reformulez ici (« Trop court », « Correct », « Excellent ») : le script relit ces textes à chaque changement.
Champ (CSS — --pwsm-field, --pwsm-border, --pwsm-focus, --pwsm-text, --pwsm-muted) blanc à 5 % · blanc à 10 % · #6366f1 · #fff · #8b8b93 --pwsm-muted colore le texte quand le champ est vide.
Tailles (CSS — --pwsm-width, --pwsm-font-size, --pwsm-label-size) 280px · 1rem · .75rem La largeur est un maximum ; 100% suit le conteneur. Agrandissez le verdict pour un écran de présentation.
Cadre de démonstration (CSS — --pwsm-bg, --pwsm-min-height) #0a0a0f · 300px Dans un vrai formulaire : --pwsm-bg:transparent; --pwsm-min-height:0.
Barème (JS — fonction score() et seuils dans update()) 1 point par critère, Faible ≤ 2, Moyen = 3, Fort ≥ 4 Pour exiger 12 caractères, remplacez pw.length >= 10 par pw.length >= 12.

FAQ

L'effet ne bloque rien lui-même. Lisez son état au moment de l'envoi : form.addEventListener('submit', e => { if (group.dataset.strength !== 'strong') e.preventDefault(); }), où group est le .pwsm-group du champ. Refaites toujours la vérification côté serveur.
Le barème compte des critères de forme (longueur, majuscule, chiffre, symbole) et ne connaît aucune liste de mots de passe courants. Pour une vraie estimation, branchez une bibliothèque comme zxcvbn dans score() et gardez l'affichage de l'effet.
Après un reset du formulaire, oui, automatiquement. Après une valeur posée par script (bouton « Générer », gestionnaire de mots de passe qui n'envoie pas d'événement), déclenchez input.dispatchEvent(new Event('input', {bubbles: true})) : la barre et le verdict se recalculent.