Подскажите как правильно в рамках бэм это сделать?
Возможно нужно как то переопределить блок page?
Имеется ввиду чтобы этот css скомпилировался в runtime css, а не подключался из link в head , вообщем это касается любого другого css файла
Подскажите как правильно в рамках бэм это сделать?
Возможно нужно как то переопределить блок page?
Имеется ввиду чтобы этот css скомпилировался в runtime css, а не подключался из link в head , вообщем это касается любого другого css файла
Я делаю по аналогии с i-jquery из старой bem-bl: https://github.com/bem/be m-bl/blob/0.3/blocks-comm on/i-jquery/_version/i-jq uery_version.bemhtml
Т.е. создается блок i-normalize, туда кладётся css из normalize.css и указывается в .b-page.deps.js.
А в каком месте в блоке b-page ты вставляеешь блок i-normalize? где то в head?
Хотя я уже сомневаюсь что правильно понял вопрос.
Покажи пример bemjson в котором указано, что нужно подключить normalize.css
https://github.com/bem/pr oject-stub/blob/bem-core/ desktop.bundles/index/ind ex.bemjson.js
Смотри, в bemjson ты указываешь блок page. У блока page в зависимостях в page.deps.js указываешь блок i-normalize. В i-normalize ты указываешь в i-normalize.bemhtml что твой блок i-normalize должен цепляться к блоку page как элемент css:
block i-normalize, default: {
return apply(
this._mode = '',
this.ctx = {
block: 'page',
elem: 'css'
}
);
}
И в итоге в итоговом css для бандла у тебя есть css-код из блока i-normalize.
Спасибо, вроде понял, попробую. С applyCtx получилось бы изящнее
Кстати, было бы логичнее как то универсально подключать css файл в runtime-ый css, пока не знаю как, хотя возможно это не совсем правильно в рамках бэм
Верю, но я пока что тоже учусь использовать bemhtml и данный кусок бездумно скопировал, посмотрел что работает и забыл Рефакторинг будет после выпуска первой вёрстки, сейчас главное чтобы работало.
А можно объяснить что есть "runtime css"? Моё решение не претендует на единственно верное, оно скорее первое заработавшее и основано на коде как минимум годичной давности.
P.s. Вам не должно хотеться использовать нормализацию или сброс стилей, все необходимое для стилизации должно быть независимо в каждом блоке, а оптимизацией пусть занимаются роботы(csso в данном случае).
По поводу p.s согласен, normalize не вписывается в бэм, подумаю над этим на досуге. Просто привык, что он в каждом проекте подключался
runtime css имеется ввиду общий файл в который склеиваются все css блоков
ну и в принципе всякие ресеты-нормалайзы — это не тру, хотя на вкус и цвет...
Дошло, спасибо)
csso это просто оптимизатор, он ничего не нормализует или я ошибаюсь?