Chargez le script
Une balise à placer n'importe où dans la page. Aucune dépendance.
Intégrez facilement Passly sur votre site
Trois lignes suffisent pour afficher un générateur sur votre site.
Une balise à placer n'importe où dans la page. Aucune dépendance.
Un div avec la classe passly-widget, là où le générateur doit apparaître.
Le widget s'initialise seul, y compris sur les éléments ajoutés après coup.
<!-- Passly Widget --> <script src="https://passly.fr/widget.js" ></script> <div class="passly-widget" data-length="16" data-format="random" data-lang="fr"></div>
Un widget simple avec les options par défaut
<div class="passly-widget"></div>
Génère un mot de passe de 24 caractères avec tous les types de caractères
<div class="passly-widget" data-length="24" data-special="true" data-exclude-similar="true"></div>
Remplit automatiquement un champ de formulaire
<input type="text" id="my-password-field"> <div class="passly-widget" data-target="#my-password-field" data-length="20"></div>
Génère une phrase de passe facile à retenir
<div class="passly-widget" data-format="passphrase"></div>
| Attribut | Type | Par défaut | Description |
|---|---|---|---|
data-format | string | random | random, pronounceable ou passphrase |
data-length | integer | 16 | Longueur du mot de passe (4–128) |
data-words | integer | 4 | Phrases de passe : nombre de mots (3–10) |
data-separator | string | - | Phrases de passe : séparateur entre les mots |
data-auto-generate | boolean | true | Générer un mot de passe dès le chargement |
| Attribut | Type | Par défaut | Description |
|---|---|---|---|
data-lowercase | boolean | true | Lettres minuscules (a-z) |
data-uppercase | boolean | true | Lettres majuscules (A-Z) |
data-digits | boolean | true | Chiffres (0-9) |
data-special | boolean | false | Caractères spéciaux (!@#$...) |
data-exclude-similar | boolean | false | Exclure les caractères similaires (il1Lo0O) |
| Attribut | Type | Par défaut | Description |
|---|---|---|---|
data-target | string | — | Sélecteur CSS du champ à remplir automatiquement |
data-lang | string | fr | Langue du widget (fr, en, es, de, it, pt, nl, ru, ja, zh) |
data-class | string | — | Classes CSS additionnelles (thèmes, variantes) |
data-api | string | origine du script | Surcharge de l'URL de l'API — à poser sur la balise <script> |
Choisissez un thème pour en voir l'aperçu et récupérer sa feuille de style.
.passly-widget-wrapper.blue-theme { --passly-primary: #2563EB; --passly-primary-hover: #1D4ED8; --passly-primary-light: #3B82F6; --passly-bg: #111827; --passly-bg-card: #1F2937; --passly-text: #F3F4F6; --passly-text-light: #9CA3AF; --passly-border: #374151; background: linear-gradient(135deg, var(--passly-bg), var(--passly-bg-card)) !important; border: 1px solid var(--passly-primary) !important; } .passly-widget-wrapper.blue-theme .passly-generate-btn { background: linear-gradient(135deg, var(--passly-primary), var(--passly-primary-hover)) !important; }
Personnalisez complètement l'apparence du widget avec les variables CSS et les classes disponibles :
La mention « Propulsé par Passly » ne peut pas être masquée : elle est restaurée automatiquement. Vous pouvez en revanche la styler librement.
Créez votre propre thème personnalisé en temps réel :
.passly-widget-wrapper.custom-theme { --passly-primary: #DC2626; --passly-primary-hover: #c81212; --passly-primary-light: #f03a3a; --passly-bg: #1A1A1A; --passly-text: #E8E8E8; --passly-border: #2A2A2A; --passly-radius: 10px; --passly-font-size: 15px; }
// Le widget s'initialise seul ; il suffit d'écouter ses événements.
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('.passly-widget').forEach((widget) => {
widget.addEventListener('passly:generated', (event) => {
console.log('Mot de passe généré :', event.detail.password);
console.log('Entropie :', event.detail.entropyBits, 'bits');
});
});
});
// Création dynamique
function createWidget(container) {
const widget = document.createElement('div');
widget.className = 'passly-widget';
widget.dataset.length = '20';
widget.dataset.special = 'true';
container.appendChild(widget);
// Facultatif : l'observateur interne détecte déjà les nouveaux nœuds.
window.PasslyWidget?.init(container);
}