Générateur de formulaires CSS
Les formulaires sont la partie la plus touchée de la plupart des sites et la moins soignée de beaucoup d’entre eux. Ce générateur produit le CSS d’un formulaire complet stylisé : une grille de formulaire responsive, des paires étiquette + entrée, des zones de texte, des sélections et des états de focus visibles, le tout dans un style visuel cohérent. Définissez la couleur d’accent, le rayon des coins et l’espacement, puis copiez la feuille de style. Le CSS conserve la sémantique native des formulaires, donc la validation, l’utilisation au clavier et les lecteurs d’écran fonctionnent.
Comment utiliser le générateur
-
1
Définissez la couleur d'accent
La couleur d'accent pilote le contour de focus et la couleur de bordure de chaque champ.
-
2
Choisissez le rayon des coins
Le rayon s'applique aux entrées, zones de texte et sélections pour qu'elles partagent une forme cohérente.
-
3
Réglez l'espacement
L'espacement contrôle l'espace vertical entre les champs de la grille.
-
4
Copiez le CSS
Une feuille de style complète à coller et à adapter, sans toucher à votre HTML.
Le formulaire de base
<form class="form">
<label class="field">
<span class="field-label">Email</span>
<input type="email" required>
<span class="field-error">Veuillez entrer un email valide.</span>
</label>
<label class="field">
<span class="field-label">Mot de passe</span>
<input type="password" minlength="8" required>
</label>
<button type="submit" class="button">S'inscrire</button>
</form>
.field {
display: block;
margin-bottom: 1.25rem;
}
.field-label {
display: block;
font-weight: 500;
margin-bottom: .25rem;
}
.field input {
width: 100%;
padding: .5rem .75rem;
font: inherit;
border: 1px solid #d1d5db;
border-radius: 6px;
background: #fff;
transition: border-color 120ms, box-shadow 120ms;
}
.field input:focus-visible {
outline: none;
border-color: #2563eb;
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.field input:invalid:not(:placeholder-shown) {
border-color: #dc2626;
}
.field-error { display: none; color: #dc2626; font-size: .875rem; margin-top: .25rem; }
.field input:invalid:not(:placeholder-shown) ~ .field-error { display: block; }
Quatre styles courants
| Style | Qu’est-ce que c’est | Meilleur pour |
|---|---|---|
| Contouré | Bordure autour de l’entrée, fond transparent | Formulaires de bureau, mises en page denses |
| Souligné | Seulement une bordure inférieure | UI minimaliste / éditoriale |
| Rempli | Fond gris, pas de bordure | UI inspirée de Material Design |
| Étiquette flottante | L’étiquette est à l’intérieur, s’anime au focus/valeur | Mobile-first, pages de destination |
L’étiquette flottante est la plus jolie mais nécessite un balisage ou JavaScript supplémentaire pour détecter l’état vide. Le style contouré est le plus universel.
Liste de contrôle d’accessibilité
- Étiquette visible pour chaque entrée. Ne jamais utiliser un placeholder comme seule étiquette, il disparaît au focus et échoue au contraste.
<label for>ou<label>englobant. Les deux sont valides ; l’englobant est légèrement plus facile.- Indicateur de focus. Ne jamais
outline: nonesans remplacement. Les utilisateurs au clavier en ont besoin. - Messages d’erreur : liez-les via
aria-describedbysur l’entrée. Ne pas utiliser la couleur seule pour marquer les erreurs, inclure un message texte ou une icône. - Champs requis : utiliser l’attribut
required. Ajouter un marqueur visuel (astérisque) dans l’étiquette pour les utilisateurs voyants. - Types d’entrée : utiliser
type="email",type="tel",type="url",type="number". Les claviers mobiles s’adaptent. - Attributs
autocomplete:autocomplete="email",autocomplete="current-password", etc. Économise beaucoup de saisie aux utilisateurs.
États de validation natifs
CSS a des pseudo-classes pour la validité des formulaires :
:required/:optional:valid/:invalid:in-range/:out-of-range(pour les entrées numériques avec min/max):placeholder-shown(vide, placeholder visible):user-invalid(invalide et l’utilisateur a interagi, le bon pour les styles d’erreur)
La pseudo-classe :user-invalid est le moyen le plus propre de montrer les erreurs uniquement après que l’utilisateur a fait quelque chose, évitant les bordures rouges avant l’interaction. Le support a été ajouté dans tous les principaux navigateurs autour de 2023.
État désactivé
.field input:disabled {
background: #f3f4f6;
color: #9ca3af;
cursor: not-allowed;
}
Les entrées désactivées ne sont pas focalisables ni soumises. Si vous voulez qu’elles soient focalisables pour les lecteurs d’écran, utilisez readonly à la place, le formulaire soumet la valeur mais l’utilisateur ne peut pas l’éditer.
Questions fréquentes
Non. Les placeholders disparaissent dès que l’utilisateur tape, donc ils ne peuvent pas servir d’étiquettes. De plus, le texte du placeholder a généralement un faible contraste et échoue aux normes WCAG. Utilisez une étiquette visible plus un placeholder optionnel pour des indications de format.
Parce que :invalid s’applique immédiatement aux champs requis vides. Utilisez :user-invalid (sensible à l’interaction) ou combinez :invalid:not(:placeholder-shown) comme solution de contournement dans les anciens navigateurs.
Définissez appearance: none, retirez la flèche par défaut, ajoutez la vôtre via une image de fond ou un span englobant avec une flèche pseudo-élément. Les listes d’options à l’intérieur restent stylées par le système d’exploitation et ne peuvent pas être personnalisées avec CSS.
Les deux. La validation HTML (required, type, pattern) gère les cas simples sans JavaScript. JavaScript gère les règles complexes (force du mot de passe, dépendances entre champs). Validez toujours côté serveur également, la validation côté client est pour l’UX, pas pour la sécurité.
Outils similaires
Référence de la table ASCII
Table ASCII complète de 0 à 127 avec décimal, hexadécimal, octal, binaire et référence numérique HTML pour chaque caractère, y compris les codes de contrôle comme NUL, LF et DEL.
Référence des caractères HTML
Liste consultable des entités HTML, de leurs codes nommés et numériques, et un copier-coller en un clic pour les caractères et symboles spéciaux.
Référence des raccourcis clavier
Recherchez les raccourcis par défaut documentés de VS Code, Chrome et Bash avec GNU Readline sous macOS, Windows et Linux.
Générateur d’accordéon CSS
Créez un accordéon de trois sections avec details et summary. Personnalisez textes, couleurs, espacements, icône et ouverture, puis copiez ou téléchargez le code.
Générateur de palettes de couleurs aléatoires
Générez des palettes aléatoires de 2 à 15 couleurs, choisissez un style vif, pastel, sourd ou sombre, puis copiez les codes HEX ou les variables CSS.
Générateur de lettres aléatoires
Générez des lettres A-Z aléatoires. Choisissez le nombre, les majuscules, les minuscules ou le mélange, puis utilisez le résultat pour des jeux ou la classe.