Open DjonyBastone opened 7 years ago
В целом годно, но есть пара вопросов ко второму пункту:
@tadatuta спасибо, и за табы отдельно - спасибо
Лучше складывать их туда в build time.
Этот вариант работает только если сборка происходит на сервере (runtime, v8)? Или все таки есть какой то хитрый способ для статичных html лежащих на хостинге?
Если есть, скажите куда смотреть, чем можно реализовать.
идея в том, чтобы в исходниках библиотеки SVG и шаблоны лежали отдельно, а в момент публикации версии — собирать их. Например, так работает публикация bem-components
— мы предоставляем чистый CSS, хотя исходники написаны на PostCSS.
Идея понятна, но реализация в коде не понятна. Что должно содержаться в bundle page.bemjson.js ?
То же, что и в исходом варианте:
{
block: 'icon',
mods: { rub: true }
}
Я бы ввёл дополнительный неймспейс для разных типов иконок. У себя использую icon_symbol_*
для простых одноцветных, и отдельно — свои неймспейсы для групп цветных: icon_account_*
, icon_social_*
и т. д.
Хмм...
@tadatuta
А что подразумевается в исходниках? В каком месте декларируется наличие ссылки на SVG
? в bemhtml
, css
, js
или где?
Реализация не понятна
К примеру на форуме результат иконки лежит в псевдоэлементе :before
background-image: url(data:image/svg...);
. Элемент имеет класс list__link[href*='twitter.com']:before
Не факт что он был задекларирован по Володиной схеме. Но это вопроса про внутренности не меняет.
например, в репозитории можно хранить только сами svg
, а шаблоны и стили по ним генерировать скриптом
@tadatuta
а пример генерации стилей можешь привести?
Не могу допетрить как менять стили из bemjson, bemhtml или вообще через js
Пользуясь случаем, скажу, что есть набор material иконок от google адаптированый под БЭМ проекты https://github.com/appwilio/bem-material-icons
Всем привет! Мне нравятся иконки Font Awesome, но не нравится подключать файлы расположенные на другом хосте, так же как и копировать все подряд. Это субъективное мнение, можно сказать личное предпочтение. Еще не всегда существуют в одной библиотеке все иконки которые нужны. Принято решение использовать кастомную накопительную библиотеку SVG-иконок. И конечно же использование по БЭМ-методологии. Хочу поделиться мыслями.
Реализация:
1) Каждая иконка является модификатором блока
icon
cтруктура папок:2) На уровне
common.blocks
в папочках модификатора лежат файликиbemhtml.js
, примерicon_rub.bemhtml.js
:3) На уровне
desktop.blocks и пр.
в папочках модификатора лежат стилиicon_mods.post.css
, примерicon_rub.post.css
:со стилями цвета может перемудрил )))
4) В
bundles
файликеpage.bemjson.js
декларируется блок иконки:Люди, хочется верить что схема идеальная, поправьте - если что не так.