Est-ce une mauvaise pratique de remplacer les variables LESS?

J’utilise Twitter Bootstrap pour un projet en ce moment, y compris les fichiers LESS et la compilation avec du code LESS supplémentaire que nous avons écrit.

La dernière version signifie que nous devons remplacer certaines des variables Bootstrap LESS. Une option ici consistait à maintenir une copie modifiée de Bootstrap que nous corrigions à chaque version.

Mais je remarque qu’il est possible de remplacer une variable définie dans un fichier @import LESS en déclarant à nouveau la variable après l’instruction import.

Par exemple:

 @import "twitter-bootstrap/bootstrap.less"; // Restore base font size to pre 2.1.1 defaults @baseFontSize: 13px; // Add some custom LESS code here 

Est-ce une mauvaise pratique? Est-ce un artefact de la façon dont fonctionne le compilateur LESS ou une partie de celui-ci? Je n’ai pas trouvé beaucoup d’informations à ce sujet, bien que j’ai trouvé les deux références suivantes:

En raison d’un bogue dans le compilateur Less, vous pouvez remplacer la valeur «constante» d’une variable en la modifiant après sa déclaration initiale.

http://rubysource.com/how-to-customize-twitter-bootstrap%E2%80%99s-design-in-a-rails-app

et

Personnalisez les colonnes et les gouttières en remplaçant ces trois variables (une fois l’importation grid.less déclarée).

http://semantic.gs/

Le site LESS lui-même dit que les variables sont des “constantes”:

http://lesscss.org/

Notez que les variables dans LESS sont en réalité des “constantes” dans la mesure où elles ne peuvent être définies qu’une seule fois.

Mais alors je vois d’autres sites utilisant cette approche. C’est certainement plus facile que de maintenir une twig fournisseur et semble fonctionner correctement avec less.js.

J’apprécierais toute idée sur si c’est une mauvaise chose à faire ou non!

D’accord! L’un des problèmes ci-dessus a conduit à une discussion sur le comportement souhaité et il s’avère que les variables LESS les plus importantes sont correctes.

Vos déclarations écraseront les unes les autres dans la même scope en CSS; La même chose est vraie pour MOINS.

https://github.com/cloudhead/less.js/issues/297

Comme dans CSS, le remplacement dans une scope est une manière prévue d’utiliser LESS.

C’est bon!

Je crée généralement un fichier moins avec des “composants” et des variables avec une valeur par défaut. Ensuite, j’importe après cela un fichier avec les mêmes variables mais les valeurs “clients”, écrasant celles par défaut. De cette façon, je n’ai qu’à modifier certaines valeurs pour créer un nouveau design pour chaque client.

C’est ok et très utile.