Lors de la conférence “Maîtriser son style CSS” donnée dans le cadre du BDX.IO, Pierre Renaudin nous a présenté ses conseils pour mieux concevoir et maintenir son CSS.
Pourquoi s’occuper de son CSS?
Un CSS doit être maintenable au fil du temps. Pour une meilleure maintenabilité, un code lisible pourrait aider. Ensuite, un CSS continue d’évoluer. Il faut donc pouvoir ajouter des nouveaux styles sans tout casser.
TIP 1: Définir quelques règles
- Ecrire les noms de classes en minuscule.
Exemple:
- Eviter d’utiliser les id: choisir entre un id ou une classe. Si le style doit être utilisé à plusieurs endroits, il nous faut donc une classe.Exemple:
- Un sélecteur par ligneExemple:
- Séparer les composants fonctionnels et graphiquesExemple:
- Utiliser les sélecteurs plus directsExemple:
- Refactorer son code au mieuxDéfinir des règles est utile lorsque nous écrivons les feuilles de style manuellement.
TIP2: Les préprocesseurs: SASS /LESS
Utiliser un préproceseur permet d’optimiser son code en amont et augmente la productivité.
Pour la conférence, le préprocesseur utilisé est SASS.
Niveau syntaxe, le CSS devient un “jeu d’enfant”. Par exemple avec SASS, on remplace les accolades par des tabulations.
Exemple:
Si nous utilisons SASS, nous aurons donc des fichiers .sass.Quelques bases de SASS:
- définition des variables
Exemple .sass:
**Après compilation (.css):** - les opérationsExemple de fichier .sass:
**Après compilation (.css):** - Découper en partial les feuilles de styles** sass/
|—–style.sass
|—–_mixins.sass
|—–_variables.sass
|—–base/
| |—–_colors.sass
| |—–_typo.sass
| |—–_utilities.sass
|
|—–components/
| |—–_avatars.sass
| |—–_buttons.sass
|
pages/
|—–_form.sass
|—–_header.sass**
L’utilisation d’un préprocesseur de type SASS permet de faciliter l’écrire de feuilles de styles. A contrario, il est aussi plus facile de se tromper.
TIP3: Framework
Utiliser un framework permet de:
- démarrer rapidement
- respecter les normes que le framework impose
- normaliser des propriétés de base
Exemples de frameworks:
- Bootstrap (orienté style)
- Foundation (orienté structure)
- Inuit.css
- Knacss etc.
Lors de l’utilisation d’un framework, les conseils sont les suivants:
- Etendre le framework plutôt que le surcharger
- Initialiser les variables du framework
- Importer certaines portions du framework
Exemple: Définition de variables de Bootstrap et import partiel
## TIP4: Composants BEM (BLOCK-ELEMENT-MODIFIER)BEM est une méthode de nommage et de classification des classes CSS. Chacune d’entre elles a une responsabilité unique. On a ainsi beaucoup de classes mais moins de code. Elles deviennent plus strictes et informatives.
Exemple :
On se retrouve avec du code légèrement redondant dans le HTML mais pas dans le CSS.Exemple :[
## TIP5: Single Responsability PrincipleMéthode utilisée principalement dans le développement Orienté-Objet.
Chaque classe a une responsabilité unique :
- une classe pour le style graphique
- une classe pour identifier un bloc fonctionnel
- une classe pour modifier ou nuancer une autre
Exemple :
## TIP6 : Utilisation de sélecteurs spécifiques- u-utilities : déclaration d’un utilitaire
Exemple :
- **is-modifier** : modification d’un bloc dans un certain étatExemple :
- **block-element–modifier** : spécification d’une variationExemple :
- **js-property** : réservation au JavascriptExemple :
## TIP7: STYLEGUIDESouvent, nos feuilles de style ne sont pas documentées. Il est utile d’avoir la documentation pour maintenir notre CSS. Il existe donc un outil pour générer des guides de style : Hologram. Cet outil est écrit en Ruby. Il va parser les commentaires de nos feuilles de style et générer un guide. On pourra utiliser Cortana pour définir le thème du guide.
Exemple: http://yago.github.io/Cortana-example/
Conclusion
Pour maîtriser son CSS , il faut retenir les points suivants:
- Respecter les règles de développement définies par l’équipe
- Structurer ses feuilles de style
- Utiliser des frameworks pour faciliter l’écriture de ses feuilles de style
- Documenter
ALLER PLUS LOIN
Hologram: http://trulia.github.io/hologram/
Cortana: https://github.com/Yago/Cortana
Guidelines : http://cssguidelin.es/ by Harry Roberts
https://medium.com/@fat/ by FAT (Bootstrap)