Générateur de Boutons CSS

Un générateur de boutons CSS transforme des réglages visuels en une règle prête à coller. Un bouton n'a besoin que de background-color, color, padding et border-radius ; la bordure est facultative et le padding s'écrit vertical puis horizontal. Exemple : padding: 12px 24px; border-radius: 8px; background-color: #2563eb; color: #ffffff donne un bouton bleu arrondi dont le libellé passe le niveau AA des WCAG à 5,17:1.

Aperçu

Contrôle d'accessibilité

Contraste du texte

Taille rendue
px de haut

Personnaliser

Modèles Rapides

Code Généré

Intégrer cet outil sur votre site

× px

                        

💡 Conseil d'intégration

Copiez le code d'intégration et collez-le dans le HTML de votre site. La version responsive s'adapte automatiquement à toutes les tailles d'écran.

0 avis
✓

Outils populaires

Plus d'outils à afficher
Explorer tous les outils

Comment créer un bouton en CSS ?

Choisissez d'abord la taille de police, puis déduisez tout le reste. Le padding vertical fixe la hauteur (hauteur = 2 x padding vertical + 2 x épaisseur de bordure + 1,2 x taille de police, l'interligne que ce générateur écrit dans chaque règle qu'il produit), le padding horizontal fixe la largeur et border-radius arrondit les angles. Les cinq recettes ci-dessous sont sans bordure, leur terme de bordure vaut donc zéro ; avec une bordure de 2px, chaque hauteur du tableau augmente de 4px. Ces cinq recettes couvrent presque tous les boutons d'une page ordinaire.

Tailles de boutons CSS courantes, déclarations produites par les curseurs et hauteur rendue par chacune, sans bordure.
Recette font-size padding border-radius Hauteur Usage habituel
Petit 14px 6px 12px 6px 29 px Actions de ligne de tableau et barres d'outils denses
Moyen (par défaut) 16px 12px 24px 8px 43 px Formulaires, cartes et la plupart des actions de page
Grand 18px 16px 32px 10px 54 px Appels à l'action de bannière et de page tarifaire
Pilule 16px 12px 28px 50px 43 px Puces de filtre et badges marketing. Tout rayon supérieur à la moitié de la hauteur donne la même forme, d'où le 999px souvent écrit à la main.
Icône seule 16px 12px 12px 8px 43 px Commande à icône : donnez-lui une largeur égale à sa hauteur pour la garder carrée, et un aria-label

Ces hauteurs tiennent parce que la règle fixe line-height: 1.2 ; un bouton qui hérite d'un interligne plus grand de la page environnante sera plus haut que la recette ne l'annonce. Le critère 2.5.8 Taille de la cible (minimum) des WCAG 2.2 demande 24 x 24 pixels CSS, mais il prévoit cinq exceptions - un espacement suffisant autour de la cible, une commande équivalente d'au moins 24 px ailleurs sur la page, une cible située dans une ligne de texte, une taille imposée par le navigateur et une taille essentielle à l'information - et le critère 2.5.5 porte la cible renforcée à 44 x 44. La recette Petit à 29 px est donc un plancher, pas une valeur sûre par défaut.

Comment styler un bouton survolé, cliqué ou désactivé ?

Un bouton a cinq états qui méritent d'être peints, et chacun est un sélecteur distinct sur la même classe. Les règles repos, survol et pressé sont toujours dans la sortie ; laissez la case « Inclure les états focus et disabled dans le code » cochée et le générateur ajoute les deux autres en dessous.

Sélecteurs CSS de chaque état de bouton et déclarations que ce générateur écrit pour lui avec ses couleurs par défaut. La ligne au repos ne liste que les deux déclarations de couleur ; la règle .btn complète du code généré ajoute la police, la hauteur de ligne, le padding, le rayon, la bordure, l’ombre, display, cursor, transition et text-decoration.
État Sélecteur Déclaration générée Pourquoi
Repos .btn background-color: #4f46e5; color: #ffffff La peinture de base sur laquelle tous les autres états se construisent.
Survol .btn:hover opacity: 0.9; transform: translateY(-1px) Confirme que le pointeur est sur la cible. Le générateur soulève le bouton d'un pixel et l'atténue légèrement. Ignoré sur les appareils tactiles.
Pressé .btn:active transform: translateY(0) Ramène le soulèvement du survol à sa position initiale tant que le pointeur est enfoncé, pour que le clic se lise comme un appui.
Focus clavier .btn:focus-visible outline: 3px solid #4f46e5; outline-offset: 2px Montre aux utilisateurs au clavier où ils se trouvent. Ne mettez jamais outline: none sans remplacement visible.
Désactivé .btn:disabled opacity: 0.5; cursor: not-allowed; transform: none Signale que l'action est indisponible. L'attribut disabled sur un élément button bloque aussi le clic.

Comment créer un bouton cliquable en HTML ?

Utilisez un élément button quand le clic agit sur la page : <button type="button" class="btn">Enregistrer</button> pour du JavaScript, ou type="submit" dans un formulaire. Utilisez un lien quand le clic mène ailleurs : <a href="/tarifs" class="btn">Voir les tarifs</a>, pour que le clic du milieu et « ouvrir dans un nouvel onglet » continuent de fonctionner. Seul le lien accepte une URL, seul le button accepte disabled, et une commande réduite à une icône a besoin d'un aria-label car un lecteur d'écran n'a rien d'autre à lire. Les deux partagent la même classe .btn, si bien que l'onglet HTML + CSS produit un élément button que vous pouvez retransformer en lien en une seule modification.

Comment arrondir complètement un bouton CSS ?

Tout se joue sur border-radius. Quatre à huit pixels donnent un rectangle adouci, douze à seize un rendu plus chaleureux, et toute valeur supérieure à la moitié de la hauteur du bouton produit une pilule, car un rayon trop grand pour la boîte est réduit jusqu’à ce que les deux coins d’un même côté se touchent tout juste — soit, pour un rayon uniforme, la moitié du plus petit côté ; 999px est le raccourci habituel pour « aussi rond que possible ». Un vrai cercle demande une largeur et une hauteur égales plus border-radius: 50%, donnez donc à un bouton-icône exactement le même padding vertical et horizontal. Avec la police de 16px et le padding vertical de 12px par défaut, le bouton fait environ 43px de haut : le curseur Rayon de bordure dessine déjà une pilule à partir de 22.

Comment centrer un bouton CSS dans la page ?

Un bouton est inline-block : text-align: center sur son parent le centre sans rien changer au bouton lui-même. Pour le centrer directement, mettez display: block avec margin-inline: auto et une largeur, ou placez-le dans un conteneur en display: flex; justify-content: center. Dans une rangée flex existante, margin-inline-start: auto pousse un bouton seul contre le bord droit. Le libellé se centre tout seul tant que vous dimensionnez le bouton avec du padding plutôt qu'avec une hauteur fixe, ce qui est exactement ce que produit le générateur.

Quel est le meilleur générateur de boutons CSS ?

Jugez-le sur ce qu'il vous remet, pas sur le nombre de thèmes qu'il propose. Un bon générateur affiche le bouton à sa taille réelle, expose padding, rayon, bordure et ombre comme des réglages séparés plutôt qu'un thème figé, produit du CSS simple sans classes de framework à installer, et vous dit si le couple de couleurs est réellement lisible. Cette page mesure le rapport de contraste selon les WCAG 2.2 et indique la hauteur rendue pendant que vous déplacez les curseurs : un échec apparaît donc ici plutôt que dans un audit d'accessibilité plus tard.

Que produit ce générateur de boutons CSS ?

Deux choses : une classe .btn réutilisable avec ses règles de survol, d'appui, de focus et d'état désactivé pour votre feuille de style, et les mêmes déclarations en ligne sur un élément button pour les constructeurs de pages, les blocs de CMS et les modèles d'e-mail qui suppriment le CSS externe. Les deux sont du CSS simple, sans classes de framework, et le panneau de contraste au-dessus vous dit si le couple de couleurs passe les WCAG avant que vous ne colliez le code.

À propos de Générateur de Boutons CSS

Le générateur de boutons CSS transforme quelques curseurs et sélecteurs de couleur en l'unique règle CSS dont un bouton a besoin. Vous réglez le libellé, la couleur de fond et celle du texte, la taille et la graisse de police, les marges intérieures horizontale et verticale, l'arrondi des angles, l'épaisseur et la couleur de bordure, ainsi qu'une des quatre profondeurs d'ombre ; une seconde couleur facultative transforme l'aplat en dégradé linéaire à 135 degrés. L'aperçu est placé au-dessus des réglages et c'est un vrai bouton HTML dessiné à la taille qu'il aura sur votre page, donc ce que vous validez est ce que vous livrez.

Deux choses rendent la sortie utilisable plutôt que décorative. D'abord, le panneau de code a deux onglets : une classe .btn réutilisable avec ses règles :hover, :active, :focus-visible et :disabled à déposer dans une feuille de style, et le même élément button avec tout en ligne dans un attribut style pour les constructeurs de pages, les blocs de CMS et les modèles d'e-mail qui suppriment le CSS externe. Ensuite, le panneau d'accessibilité mesure le couple de couleurs selon les WCAG 2.2 et affiche le rapport de contraste avec un verdict AAA, AA ou échec, en basculant sur les seuils du grand texte quand la taille et la graisse le justifient.

Il indique aussi la hauteur rendue - deux fois la marge verticale, plus deux fois la bordure, plus 1,2 fois la taille de police, l'interligne que la règle fixe pour que le bouton à l'écran fasse exactement la hauteur annoncée - face aux cibles de 24 x 24 et 44 x 44 pixels CSS des critères 2.5.8 et 2.5.5.

Un dégradé est vérifié sur ses deux arrêts et c'est le pire des deux rapports qui est affiché. Les huit modèles - Principal, Danger, Succès, Contour, Pilule, Dégradé, Discret et Néon - sont des points de départ, pas un aboutissement : cliquez, puis continuez à ajuster. Aucune couleur, aucun libellé et aucune position de curseur n'est envoyé où que ce soit ; le calcul du contraste, l'aperçu et le code sont produits dans la page elle-même, et c'est pourquoi le rapport se met à jour à la frappe même qui redessine le bouton. Ce que vous copiez est une simple classe, sans framework à installer, sans étape de compilation et sans script d'exécution.

Cas d'utilisation

Les développeurs front-end qui ont besoin d'une règle de bouton en CSS pur pour un projet sans design system : ni Tailwind ni Bootstrap, juste .btn et ses états.
Les designers qui remettent une spécification aux développeurs : déplacez les curseurs jusqu'à ce que l'aperçu corresponde à la maquette, puis livrez des valeurs en pixels exactes au lieu de les décrire.
Les e-mails et les pages d'atterrissage qui suppriment les feuilles de style externes et exigent chaque déclaration en ligne dans un attribut style, ce que produit l'onglet HTML + CSS.
Les auditeurs d'accessibilité qui vérifient un couple de couleurs de marque : le rapport de contraste et le verdict WCAG se mettent à jour pendant que vous tapez les codes hexadécimaux.
Les étudiants et les enseignants qui découvrent comment padding, border-radius, box-shadow et font-weight interagissent, avec un aperçu qui réagit à chaque curseur.

Comment utiliser

1

Saisissez le texte à afficher sur le bouton dans le champ Texte du bouton, puis définissez la couleur de fond et celle du texte à l'aide des échantillons ou en tapant les codes hexadécimaux à côté.

2

Faites glisser les curseurs de taille de police, de marge intérieure horizontale, de marge intérieure verticale et d'arrondi des angles pour façonner le bouton, et augmentez l'épaisseur de bordure avec une couleur de bordure pour un rendu contour.

3

Choisissez une Épaisseur du texte parmi Normal, Moyen, Demi-gras ou Gras, et une Ombre parmi Aucun, Petite, Moyenne ou Grande.

4

Cochez Dégradé et choisissez la seconde couleur pour transformer le fond en dégradé diagonal bicolore.

5

Cliquez sur une carte Modèles Rapides telle que Principal, Contour, Pilule, Dégradé, Discret ou Néon pour charger un style tout prêt que vous pourrez continuer à ajuster.

6

Validez le rendu du bouton dans le panneau Aperçu, basculez l'onglet de sortie sur CSS ou HTML + CSS, puis appuyez sur l'icône de copie du bloc de code.

Astuces Pro

  • Réglez la taille de police avant tout le reste. Le padding et le rayon sont bien plus faciles à juger une fois le libellé à sa taille définitive, et l'affichage de hauteur (2 x padding vertical + 2 x épaisseur de bordure + 1,2 x taille de police) suit.
  • Chargez un modèle, puis ajustez. Contour et Discret partent déjà avec une épaisseur de bordure supérieure à zéro, c'est le chemin le plus court vers un bouton secondaire.
  • Tapez les codes hexadécimaux dans le champ à côté de chaque pastille plutôt que de chercher dans le sélecteur de couleur ; l'aperçu et le rapport de contraste se mettent à jour à chaque frappe.
  • Le niveau AA s’applique à toutes les tailles de texte ; seul le seuil change : 4,5:1 pour le texte normal, 3:1 dès que le libellé atteint 24px, ou 18,66px en gras. Un couple à 3:1 peut sembler correct sur un écran lumineux et devenir illisible en extérieur : traitez ce seuil bas comme un plafond, pas comme un objectif.
  • Les dégradés sont vérifiés sur leurs deux arrêts et c'est le pire rapport qui est affiché : si un seul côté échoue, déplacez cet arrêt plutôt que de recolorer tout le bouton.

Dépannage

Problème:

Le CSS copié n'a aucun effet visible sur ma page.

Solution:

La classe est écrasée, ou n'a jamais été appliquée. Vérifiez que l'élément porte bien class="btn", chargez votre feuille de style après le CSS du framework, et ouvrez le panneau Styles des outils de développement : une déclaration barrée signifie qu'un autre sélecteur l'emporte par spécificité ou par ordre.

Problème:

Le dégradé paraît plat ou n'apparaît pas du tout.

Solution:

Un dégradé est une image de fond, pas une couleur de fond. Cochez Dégradé pour que l'outil produise background: linear-gradient(...) au lieu de background-color. S'il ne s'affiche toujours pas, cherchez une propriété raccourcie background ou un background-image déclaré plus loin sur le même élément : le raccourci remet background-image à none et efface le dégradé. Une background-color placée plus loin ne peut pas le masquer, car CSS Backgrounds 3 peint la couleur sous les images de fond.

Problème:

Le badge de contraste dit que les couleurs échouent, mais le bouton me paraît lisible.

Solution:

Le contraste se mesure sur la luminance relative, pas sur l'impression de vivacité d'une couleur. Des couples de tons moyens comme #f59e0b avec du texte blanc tombent autour de 2:1 tout en paraissant éclatants. Assombrissez le fond ou passez le libellé en quasi-noir ; le rapport se met à jour pendant que vous tapez.

Questions fréquemment posées

Écrivez une seule règle pour la classe et posez six déclarations : background-color, color, font-size, font-weight, padding et border-radius. N'ajoutez box-shadow et une bordure que si la maquette les demande. Le générateur écrit exactement cette règle pour vous : déplacez les curseurs, observez l'aperçu en direct, puis copiez le bloc .btn de l'onglet CSS dans votre feuille de style.

L'onglet CSS donne une classe .btn réutilisable et ses règles d'état à coller dans une feuille de style : tous les boutons du site changent quand vous modifiez ce bloc. L'onglet HTML + CSS donne un seul élément button avec les mêmes déclarations en ligne dans un attribut style, ce dont ont besoin les constructeurs de pages, les blocs de CMS et les modèles d'e-mail, qui suppriment les feuilles de style externes. Remplacez-le par un lien avec href quand le clic navigue.

Montez le curseur Rayon de bordure. Vers 8px vous obtenez le rectangle adouci utilisé par la plupart des interfaces, et au-delà de la moitié de la hauteur du bouton les angles fusionnent en pilule. Avec la police de 16px et le padding vertical de 12px par défaut, le bouton fait 43px de haut : tout rayon au-delà de 22 environ paraît déjà entièrement arrondi, et 999px écrit à la main veut dire la même chose.

Oui. À chaque changement de couleur de texte ou de fond, il recalcule le rapport de contraste WCAG et affiche AAA, AA ou un échec. Le texte normal demande 4,5:1 pour AA et 7:1 pour AAA ; un texte de 24px, ou de 18,66px en gras, compte comme grand et n'a besoin que de 3:1 et 4,5:1. Les dégradés sont mesurés sur leurs deux arrêts de couleur.

Le panneau de taille indique la hauteur rendue : deux fois le padding vertical, plus deux fois l'épaisseur de bordure, plus 1,2 fois la taille de police - l'interligne que le générateur fixe dans la règle, si bien que le nombre correspond au bouton dessiné juste au-dessus. Le critère 2.5.8 des WCAG 2.2 demande une cible de 24 x 24 pixels CSS et le critère 2.5.5 la porte à 44 x 44. La police de 16px avec 12px de padding vertical donne 43px, ce qui dépasse largement le minimum.

Utilisez button quand le clic agit sur la page en cours : envoyer un formulaire, ouvrir une boîte de dialogue, exécuter du JavaScript. Il est focusable par défaut, se déclenche avec Entrée et Espace et accepte l'attribut disabled. Utilisez un lien avec href quand le clic mène à une autre URL, pour que le clic du milieu et « ouvrir dans un nouvel onglet » fonctionnent encore. Les deux peuvent porter la même classe .btn.

Le CSS généré contient déjà .btn:hover et .btn:active. Laissez la case « Inclure les états focus et disabled dans le code » cochée et vous obtenez en plus .btn:focus-visible avec un contour de 3px décalé de 2px, et .btn:disabled à demi-opacité avec cursor: not-allowed. Ne supprimez jamais un contour de focus sans le remplacer par quelque chose de visible, sinon les utilisateurs au clavier perdent toute trace de leur position.

Oui. La sortie est du CSS simple, sans licence, sans obligation d'attribution et sans dépendance d'exécution, et le commentaire de crédit de la première ligne peut être effacé. Rien de ce que vous saisissez n'est envoyé ailleurs : l'aperçu, le code généré et le calcul de contraste sont faits en JavaScript dans cette page, vos couleurs et vos libellés n'atteignent donc jamais un serveur.

Les styles hérités en sont presque toujours la cause. Une réinitialisation de framework, une font-family parente, une règle button globale ou un sélecteur plus spécifique peuvent écraser la classe collée. Chargez votre feuille de style après le CSS du framework, gardez .btn sur un seul élément, et lisez le panneau Styles des outils de développement : une déclaration barrée vous dit exactement quel sélecteur l'a emporté.

Normes et références

FreeWebTools AI
Powered by free AI models · Full chat →