40 votes

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

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

Avec la dernière version, nous devons remplacer certaines des variables LESS de Bootstrap. Une option 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 redéclarant la variable après la déclaration d'importation.

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 ? S'agit-il d'un artefact du fonctionnement du compilateur LESS ou d'un élément intentionnel de ce dernier ? Je n'ai pas trouvé beaucoup d'informations à ce sujet, mais 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

y

Personnalisez les colonnes et les gouttières en surchargeant ces trois variables (après avoir déclaré l'import grid.less).

http://semantic.gs/

Le site LESS lui-même indique que les variables sont des "constantes" :

http://lesscss.org/

Notez que les variables dans LESS sont en fait des "constantes", c'est-à-dire qu'elles ne peuvent être définies qu'une seule fois.

Mais ensuite, je vois d'autres sites qui utilisent cette approche C'est certainement plus facile que de maintenir une branche de fournisseur et semble fonctionner correctement avec less.js.

J'apprécierais que vous me disiez si c'est une mauvaise chose à faire ou non !

46voto

sync Points 1651

Ok ! L'un des problèmes susmentionnés a donné lieu à une discussion sur le comportement souhaité, et il s'avère que le remplacement des variables LESS est acceptable.

Vos déclarations s'écraseront l'une l'autre dans la même portée en CSS ; il en va de même pour LESS.

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

Comme dans le cas de CSS, la substitution au sein d'une portée est une façon prévue d'utiliser LESS.

6voto

kurroman Points 56

C'est bon !

Je crée généralement un fichier less avec des "composants" et des variables avec une valeur par défaut. Puis j'importe ensuite un fichier avec les mêmes variables mais des valeurs "clients", en écrasant les valeurs par défaut. De cette façon, je n'ai qu'à changer quelques valeurs pour créer un nouveau design pour chaque client.

C'est bon et très utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X