Générateur de barre de défilement CSS
Les barres de défilement personnalisées étaient autrefois un cauchemar de pseudo-éléments préfixés par le fournisseur. Aujourd’hui, scrollbar-color et scrollbar-width couvrent les cas courants dans tous les navigateurs modernes : largeur étroite ou normale et thème à deux couleurs (curseur et rail). Pour un contrôle au pixel près (marge intérieure du rail, rayon du curseur, états au survol), les anciens pseudo-éléments ::-webkit-scrollbar fonctionnent toujours dans Chrome et Safari. Ce générateur produit les deux versions et les combine correctement en cascade.
Comment styliser une barre de défilement
-
1
Choisissez la largeur
Auto (largeur par défaut de la plateforme), étroite (plus fine) ou une valeur en pixels précise via les règles webkit.
-
2
Définissez les couleurs du curseur et du rail
La propriété moderne `scrollbar-color` prend deux couleurs. Les règles webkit permettent des couleurs, rayons et états au survol distincts.
-
3
Ajoutez un effet au survol (facultatif)
Le curseur s'éclaircit au survol. Fonctionne via `::-webkit-scrollbar-thumb:hover`.
-
4
Choisissez la portée
Appliquez-le à `html` / `body` (toute la page) ou uniquement à un conteneur défilant précis.
-
5
Copiez le CSS
Règles modernes et webkit combinées : fonctionne dans tous les navigateurs modernes avec une dégradation élégante.
Propriétés standard modernes (2023 et après)
/* Applies to the element that scrolls */
html {
scrollbar-width: thin; /* auto | thin | none */
scrollbar-color: #4f46e5 #e5e7eb; /* thumb track */
}
Compatibilité des navigateurs (2024) :
scrollbar-width: Chrome 121+, Safari 18.2+, Firefox 64+.scrollbar-color: Chrome 121+, Safari 18.2+, Firefox 64+.scrollbar-gutter: stable: Chrome 94+, Safari 14+, Firefox 97+. Réserve l’espace de la barre de défilement même lorsqu’elle n’est pas nécessaire, ce qui évite les sauts de mise en page.
Pseudo-éléments webkit (Chrome, Safari, ancien Edge)
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
::-webkit-scrollbar-track {
background: #e5e7eb;
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
background: #4f46e5;
border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
background: #3730a3;
}
Un contrôle plus fin. width définit la largeur de la barre de défilement verticale ; height définit la hauteur de la barre horizontale. Ajoutez les deux pour les conteneurs qui peuvent défiler dans les deux sens.
Combinez les deux approches en cascade
Indiquez d’abord les règles modernes, puis webkit comme amélioration pour les navigateurs qui interprètent les deux :
.scroll-area {
scrollbar-width: thin;
scrollbar-color: #4f46e5 #e5e7eb;
}
.scroll-area::-webkit-scrollbar { width: 8px; }
.scroll-area::-webkit-scrollbar-track { background: #e5e7eb; }
.scroll-area::-webkit-scrollbar-thumb {
background: #4f46e5;
border-radius: 4px;
border: 2px solid #e5e7eb;
}
Firefox ne respecte que les règles modernes scrollbar-*. Chrome et Safari respectent les règles webkit (qui remplacent les modernes, pour un comportement cohérent).
scrollbar-gutter empêche le décalage du contenu
Sans gouttière réservée, le contenu se recompose lorsqu’une barre de défilement apparaît (fréquent dans les listes dynamiques). Solution :
html { scrollbar-gutter: stable; }
/* or */
html { scrollbar-gutter: stable both-edges; }
L’emplacement de la barre de défilement est réservé, que le contenu défile ou non. both-edges ajoute une gouttière équivalente du côté opposé pour garder le contenu visuellement centré.
Masquer entièrement les barres de défilement
.no-scrollbar {
scrollbar-width: none; /* Firefox */
}
.no-scrollbar::-webkit-scrollbar { display: none; } /* Chrome, Safari */
Attention : masquer la barre de défilement empêche les utilisateurs de voir que le contenu peut défiler. Ne le faites qu’avec un indicateur clair (flèches, points de page) ou lorsque le défilement est évident d’après le contexte (carrousels horizontaux, historiques de discussion).
Considérations mobiles
Sous iOS et Android, les barres de défilement n’apparaissent qu’un instant pendant le défilement. Votre CSS de barre personnalisée s’applique quand même, mais les utilisateurs ne la voient peut-être jamais plus d’une seconde. Concevez en conséquence : n’investissez pas trop dans des fioritures visuelles qui apparaissent rarement.
Accessibilité
- Contraste : le curseur par rapport au rail doit atteindre 3:1 pour le contraste non textuel (WCAG 1.4.11).
- Largeur : les barres de défilement fines peuvent être difficiles à attraper à la souris, surtout pour les utilisateurs ayant des difficultés motrices. La largeur normale est une valeur par défaut plus sûre.
- Ne retirez jamais la barre de défilement dans les zones défilantes sans fournir un autre moyen de défilement. Les utilisateurs qui dépendent de la barre se retrouveront bloqués.
Questions fréquentes
Oui, avec les propriétés modernes scrollbar-width et scrollbar-color. Firefox ne prend pas en charge les pseudo-éléments webkit ; pour une apparence cohérente entre les navigateurs, utilisez donc d’abord les propriétés modernes et ajoutez les règles webkit en complément.
Parce que les barres de défilement par défaut se superposent au contenu et ne réservent aucun espace avant d’être nécessaires. Définissez scrollbar-gutter: stable sur l’élément défilant pour toujours réserver la gouttière et éviter la recomposition lorsque la barre apparaît ou disparaît.
Généralement oui, car la barre de défilement paraît déplacée et concurrence le contenu. Ajoutez des points de pagination ou des flèches visibles pour que les utilisateurs sachent toujours que le contenu défile. Respectez prefers-reduced-motion si vous utilisez l’accroche au défilement (scroll-snapping).
Elle le peut. Les barres très fines ou peu contrastées sont difficiles à utiliser pour les personnes ayant des difficultés motrices ou une basse vision. Gardez la barre d’au moins 8–10 px de large pour une prise confortable et maintenez un contraste de 3:1 entre le curseur et le rail.
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 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.
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.