Bonnes pratiques CSS
Principes fondamentaux
-
Mobile‑first: écrire les styles de base pour les petits écrans, puis ajouter des media queries progressives. Pourquoi : cascade plus simple et meilleures performances.
-
Séparation des responsabilités : HTML = sémantique/structure ; CSS = présentation. Utiliser des classes pour le style, pas l’imbrication d’éléments.
-
Architecture modulaire : séparer en base, components, layout, pages ; garder des fichiers petits et ciblés.
Nommage et structure
-
BEM recommandé :
block,block__element,block--modifier..btn { } .btn--primary { } .card__title { } -
Éviter les sélecteurs descendants trop profonds et
!important. Préférer des sélecteurs courts basés sur des classes pour de meilleures performances.
Variables, unités et tailles responsives
-
Variables CSS dans
:rootpour les couleurs, espacements et échelle typographique ::root { --brand: #0a74da; --gap: 1rem; } -
Unités : utiliser
rempour la typographie,clamp()/min()/max()pour des tailles fluides,%/frpour des layouts flexibles.
Mise en page et fonctionnalités modernes
-
Flexbox pour les layouts unidimensionnels ; Grid pour les layouts bidimensionnels. Utiliser
gapplutôt que des astuces avecmargin. -
Utiliser
prefers-reduced-motionet:focus-visiblepour l’accessibilité.
Performance et build
-
Normalize ou reset au début du projet pour une cohérence entre navigateurs.
-
Critical CSS en inline pour le premier rendu (first paint) ; charger les styles non critiques de manière différée (lazy-load).
-
Outillage : PostCSS + Autoprefixer, minification, et stylelint + Prettier dans la CI.
Bases d’accessibilité
-
Contraste : garantir des ratios de contraste conformes aux WCAG pour le texte.
-
Focus clavier : ne jamais supprimer les contours de focus ; styliser
:focus-visible. -
Réduction des animations : respecter
prefers-reduced-motion.
Checklist rapide avant commit
-
Mobile-first et breakpoints documentés
-
Variables centralisées pour couleurs / espacements / typographie
-
Pas de sélecteurs trop spécifiques ; pas de
!important -
Linting OK (stylelint) et build minifié
-
Vérifications d’accessibilité : contraste, focus, animations réduites
Exemples rapides (snippets pratiques)
- Conteneur responsive
.container {
width: 100%;
max-width: 1200px;
margin-inline: auto;
padding-inline: clamp(1rem, 4vw, 2rem);
}- Grille simple
.grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap:1rem; }Prochaines étapes que je peux fournir
-
Générer une arborescence de fichiers de départ et des exemples de configuration
stylelint/ PostCSS adaptés à ton stack. -
Créer un exemple de Critical CSS sur une page pour ton site.