Convention d’écriture CSS pour les projets Access42
Quelques règles, très simples sont indispensables pour produire des feuilles de styles avec un minimum de lisibilité.
Voici celles que nous utilisons et que nous vous recommandons de respecter pour vos propres contributions sur nos projets.
Règles de nommage
- Employer des noms anglais :
.alert
au lieu de.alerte
- Indiquer tous les noms au singulier :
.slide
au lieu de.slides
- Utiliser uniquement le trait d’union :
.open-popin
au lieu de.open_popin
- Donner des noms pertinents aux éléments :
#eventau
lieu de#block-block-1
- Utiliser les classes et identifiants comme nom d’images de fond :
body.png
au lieu defond.png
- Privilégier les intitulés courts :
#slideshow-control
au lieu de#playpause_slideshow_slider_block-3
- La classe
.sr
: rend invisible un élément mais utilisable par les lecteurs d’écrans, ne pas remplacer par duvisibility:hidden
ou dudisplay:none
surtout. - Toute classe commençant par
.is-*
: classe commençant paris-
pour les classes d’état. Par exemple :is-hidden
, .is-expanded
, etc.
Choix des sélecteurs
- Choisir le sélecteur le plus court possible (remonter le moins de générations possible). Pour cela, on privilégie l’ajout de
class
sur les éléments pour les sélectionner directement (surtout lorsque la nature du sélecteur n’est pas prédictible). - Sélectionner les éléments dans la mesure du possible par une
class
, plutôt que par un nom d’élément ou par unid
.
Découpage modulaire
Dans la mesure du possible, on procède à un découpage modulaire des éléments. Ceci n’est pas toujours possible, voire contre-productif (nom de classe à rallonge parfois). Mais dans la majeure partie des cas, cela permet d’obtenir des noms de classe explicites.
Post-processeur et automatisation de tâches
S’il n’est pas nécessaire d’utiliser de post-processeur ni de logiciel d’automatisation de tâches pour utiliser nos outils, certains de nos projets utilisent ce genre de procédés pour optimiser la contribution et il est possible que nous vous demandions de vous en servir pour contribuer à nos projets.
Post-processeur : Myth
Le post-processeur que nous utilisons est Myth. Pour contribuer au CSS il est indispensable de passer par cet outil, les sources étant ensuite compilées.
Toutes les infos sur Myth sur le site du projet.
Automatisation des tâches avec Grunt
Pour la compilation nous utilisons Grunt. Les projets contiennent le Gruntfile.js
avec notre configuration.
Nous utilisons Grunt pour des besoins réduits. Notre configuration concerne : la compilation Myth, le regroupement des media-queries et la minification du CSS.
Pour les CSS nous effectuons 2 compilations : une minifiée et une non-minifiée, pour permettre à des intégrateurs qui n’utiliseraient ni Myth ni Grunt de pouvoir malgré tout modifier le code.
RWD
Nous privilégions, dans la mesure du possible, des déclarations mobile-first, ceci pour alléger le code CSS en sortie.
Dans les fichiers de développement, les media-queries sont déclarées aux endroits concernés, plutôt que de ne créer qu’une seule déclaration par point de rupture.
Lors de la compilation du CSS avec Grunt, les media-queries sont réunies, le CSS en sortie ne contient alors qu’une déclaration par point de rupture.
Documentation
Pensez à commenter vos déclarations surtout lorsque les sélecteurs ne sont pas explicites. Nous utilisons la syntaxe CSSDoc. Découpez le code en grande partie :