Malheureusement, vous aurez peut-être déjà fait ce constat : ce réflexe n’est que trop rarement encouragé. J’ai beau parcourir des dizaines d’articles, de tutoriaux, de frameworks CSS ou de Gist, trop peu font ce rappel : testez, relisez, améliorez, testez à nouveau et finalement améliorez encore. Ça devrait se passer comme ça. On peut argumenter qu’un bon intégrateur le ferait — mais c’est trop facile, non ?
Premier contact avec Sass
Après avoir lu énormément de ressources sur Less puis Sass pendant longtemps, je ne m’étais toujours pas décidé à franchir le pas pour plusieurs raisons :
- le changement bien sûr : rien de plus naturel que la résistance au changement;
- la perspective d’une « naturalisation » des avancées intéressantes dans les évolutions prévues de CSS .[1]
- l’intérêt limité — ou imitable — de certaines fonctionnalités .[2]
Dans l’ensemble, je pensais — et je pense toujours — que l’utilisation de Sass n’avait pas d’intérêt à mon échelle : petits projets, récupération de code, très peu de collaboration… J’y percevais plus de risques et d’inconvénients que d’avantages, et certaines de mes lectures le confirmaient.
L’évolution de mon projet personnel ffeeeedd conjointe à la lecture de l’excellent CSS maintenables puis de Sass & Compass avancé m’ont finalement motivé : bien qu’à l’aise avec mon workflow, je voulais l’améliorer et Sass m’a semblé être l’outil idéal.
Découvertes particulières
J’y suis allé pas à pas, dans l’ordre de la documentation. Des règles imbriquées aux fonctions, j’ai pris un temps considérable et me suis consciencieusement appliqué à découvrir le résultat de chacune des fonctionnalités .[3]
La définition de variables — et par extension, la structuration d’un projet — est un gain de clarté évident. La compilation automatique est un gain de temps remarquable, et la qualité est au rendez-vous. Les fonctions, mixins et autres boucles sont extrêmement intéressantes, mais on touche aussi aux limites de l’outil : il faut de très, très bonnes bases en CSS pour s’en servir de façon optimale.
Étendre une classe est un piège parfait, probablement le plus efficient en tant que piège ; les nombreuses subtilités des fonctions et mixins peuvent également générer des erreurs très discrètement — et elles peuvent donc rester, pour peu que l’utilisateur ne soit pas consciencieux.
Je ne gâcherais pourtant pas mon plaisir : créer des mixins, fonctions et placeholders pour factoriser mes feuilles de styles « sources » est terriblement agréable 😀 .
Une simplification, vraiment ?
Je suis encore en phase de découverte et pourtant me voilà sur ma faim : beaucoup de choses sont considérablement simplifiées, mais je garde l’impression que la complexité « d’avant » est simplement déportée vers les fonctionnalités dynamiques .[4]
La distance « cognitive » entre les fonctions/mixins et leur contexte d’utilisation, ainsi que la séparation des feuilles de styles en fragments .[5]
Sass n’est qu’un outil
Vous connaissez le dicton :
Il n’y a pas de mauvais outil, il n’y a que de mauvais ouvriers.
Et bien elle se vérifie avec Sass. Ce qui ne me convainquait pas l’an dernier ne me convainc toujours pas : les articles vantant les mérites des pré-processeurs sont relativement évasifs, et l’élan massif vers l’adoption de Sass me fait penser au crime passionnel au pays des Toupoutous.
Oui, Sass est un outil formidable qui peut grandement faciliter et accélerer votre travail d’intégration ; oui, les possibilités semblent infinies ; oui, son utilisation est plutôt simple…
Mais n’oublions que Sass reste un outil, et en tant que tel sa vocation est seulement de faciliter votre travail et pas d’en améliorer la qualité. Ce n’est pas le marteau qui fait en sorte que le clou rentre droit, c’est votre geste.
Les calculs simples sont déjà là grâce à calc(), les variables sont à l’état de brouillon au W3C, etc. ↩︎
Les placeholders, par exemple, sont limités puisqu’on peut créer ses propres classes transportables et modulables. ↩︎
Soit dit en passant, je préfère ne pas passer à Compass tout de suite, je pense devoir manier Sass correctement avant d’ajouter un autre crayon à ma palette. ↩︎
Compass me semble d’ailleurs être un écueil remarquable pour le débutant, qui ne comprendra pas en profondeur le fonctionnement et la portée des mixins et fonctions proposées. ↩︎
Des « partials » dans le vocabulaire Sass ↩︎