bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

Stylus и глобальные перемененные #265

Open belozer opened 9 years ago

belozer commented 9 years ago

Добрый день :) Или кому-то ещё утро ;)

Как использовать глобальные переменные less, sass, stylus и т.д. при написании кода?

У меня есть соображение, что нужно объявить блок с ними и потом его просто подключить в проекте где-то вначале, но есть сомнения.

Как это сделать правильней?

awinogradov commented 9 years ago

Мы именно так и делаем. Зависит от задачи.

tadatuta commented 9 years ago

Если только есть уверенность, что глобальные переменные — это добро ;)

qfox commented 9 years ago

Пацаны, вот вы молодцы... Подсказали прям как на духу чего делать ;-)

@belozyorcev https://github.com/verybigman/bem-content/tree/master/common.blocks/variables — вот пример.

Технически, логика такова: создается блок с файлом less/sass/stylus, в нем описываются значения по умолчанию, при желании можно разнести на разные уровни, и на своих уровнях переопределять эти значения.

Возможно, так же, объявлять/использовать эти переменные в разных блоках или их элементов, но в таком случае на мой взгляд будет каша, и лучше так не делать, а делать как в первом варианте: объявлять в одном месте (блоке), а в блоках, где используется, объявлять блок в переменными в обязательные зависимости (mustDeps).

К слову, таким же образом удобно описывать конфиги для сервер-сайда: значения по умолчанию на базовом уровне, и значения для платформ в виде модификаторов либо для серверов на подключаемом уровне с блоком конфига на самом сервере.

tadatuta commented 9 years ago

Хозяйке на заметку: использование блока с переменными для препроцессора сильно усложняет вычитание деклараций бандлов.