Guidelines pour CSS — Nomenclature des classes
Il existe différentes nomenclatures pour s’y retrouver dans son CSS. Certaines sont totalement compatibles avec BEM.
Préfixes
L’une de ces nomenclatures propose d’ajouter un préfixe (souvent limité à une voire deux lettres) avant chaque classe « utilitaire ».
Exemples
Type | Classe | Exemple |
---|---|---|
Typographique | t- |
t-title |
Helpers | h- |
h-align-right |
État | is- |
is-hidden |
Possession d’attributs | has- |
has-submenu |
Classe dédiée à Javascript | js- |
js-slider |
Ces préfixes peuvent parfaitement coïncider avec la méthodologie ITCSS.
Chaînage de modifiers
Par défaut, la syntaxe de BEM peut se révéler lourde à l’écriture si on cummule plusieurs modifiers. L’idée consiste à faire varier BEM vers ce qui pourrait être BEVM :
block-name[__element-name][--variation-name] -modifier
<input class="input input--full-width input--string">
Il existe des nomenclatures plus pratiques pour leur nommage (et en plus, compatible avec le nesting des préprocesseurs :
<input class="input -full-width -string">
Ce qui se traduirait dans un préprocesseur comme suit :
.input {
&.-full-width { }
&.-string { }
}
Ce qui permet de garder un CSS propre tout en exploitant la puissance du nesting.