Size: a a a

2019 December 15

SB

Sergey Berezhnoy in БЭМ
Sergey Berezhnoy
да — но наш принцип, что «заборы» нужно иметь на уровне самодисциплины и понимания что за чем используется, а не на уровне апи, которое бы запрещало что-то явно
хотя со временем мы много где усиливаем запреты, т. к. пользователей становится больше и не всегда у всех правильное понимание что к каким последствиям приводит
источник

АН

Авроамэриканец Начрэл in БЭМ
Sergey Berezhnoy
не понимаю, почему это важно и в реальности под капотом там немного по другому, но если так проще понимать, то да, семантически примерно так
Отлично, это то что мне и нужно было узнать. А что именно там по другому? Я посмотрю на гитхабе, но если бы вы описали вкратце, было бы просто отлично. Вдруг там незначительные отличия
источник

SB

Sergey Berezhnoy in БЭМ
Авроамэриканец Начрэл
Отлично, это то что мне и нужно было узнать. А что именно там по другому? Я посмотрю на гитхабе, но если бы вы описали вкратце, было бы просто отлично. Вдруг там незначительные отличия
не думаю, что это можно описать «вкратце» — можно почитать код i-bem-dom блока: https://github.com/bem/bem-core/tree/v4/common.blocks/i-bem-dom
источник

ДХ

Дон Хакатон in БЭМ
Авроамэриканец Начрэл
Отлично, это то что мне и нужно было узнать. А что именно там по другому? Я посмотрю на гитхабе, но если бы вы описали вкратце, было бы просто отлично. Вдруг там незначительные отличия
Только сейчас обратил внимание на твой классный Ник)
источник

АН

Авроамэриканец Начрэл in БЭМ
Sergey Berezhnoy
не думаю, что это можно описать «вкратце» — можно почитать код i-bem-dom блока: https://github.com/bem/bem-core/tree/v4/common.blocks/i-bem-dom
Ну то есть отличия в том что это не просто карта методов, а объект целой системы с своими фичами? Если да, то пока что это не важно. Мне нужен БЭМ, но пока что я не готов исследовать инструменты разработки по методологии, но готов написать свою простейшую и независимую реализацию, для понимания того как это всё работает на низком уровне.

Но если там фундаментально другой подход и используется не патчинг элементов, а какой-нибудь глобальный реестр, то это очень важно для понимания
источник

АН

Авроамэриканец Начрэл in БЭМ
Смотрю https://github.com/bem/bem-core/blob/v4/common.blocks/i-bem-dom/i-bem-dom.js

До конца не читал, но как я понял, всё сохраняется в служебные объекты в замыкании. И наверное передаётся в задекларированные обработчики.

И общение осуществляется через прокси в качестве которого выступает этот фреймворк. select поискал бы внутри себя блок menu, получил бы по его uid служебный объект и вызвал бы из него публичный метод.

Примерно так?
источник

SB

Sergey Berezhnoy in БЭМ
Авроамэриканец Начрэл
Ну то есть отличия в том что это не просто карта методов, а объект целой системы с своими фичами? Если да, то пока что это не важно. Мне нужен БЭМ, но пока что я не готов исследовать инструменты разработки по методологии, но готов написать свою простейшую и независимую реализацию, для понимания того как это всё работает на низком уровне.

Но если там фундаментально другой подход и используется не патчинг элементов, а какой-нибудь глобальный реестр, то это очень важно для понимания
как мне кажется, воспользоваться существующим будет сильно энергоэкономнее, чем писать своё
источник

SB

Sergey Berezhnoy in БЭМ
Авроамэриканец Начрэл
Смотрю https://github.com/bem/bem-core/blob/v4/common.blocks/i-bem-dom/i-bem-dom.js

До конца не читал, но как я понял, всё сохраняется в служебные объекты в замыкании. И наверное передаётся в задекларированные обработчики.

И общение осуществляется через прокси в качестве которого выступает этот фреймворк. select поискал бы внутри себя блок menu, получил бы по его uid служебный объект и вызвал бы из него публичный метод.

Примерно так?
примерно так
источник

АН

Авроамэриканец Начрэл in БЭМ
Спасибо за помощь. Сегодня попробую реализовать свой примитивный инструмент, что бы убедиться что в случае прекращения поддержки эталонного девкита всё реально поддерживать самому, а потом перейду на готовые инструменты.

Кстати, как называется инструмент для поддержки зависимостей? bem-core?
источник

EW

Eugeniy World in БЭМ
Про какие зависимости ты конкретно говоришь?)
источник

SB

Sergey Berezhnoy in БЭМ
Авроамэриканец Начрэл
Спасибо за помощь. Сегодня попробую реализовать свой примитивный инструмент, что бы убедиться что в случае прекращения поддержки эталонного девкита всё реально поддерживать самому, а потом перейду на готовые инструменты.

Кстати, как называется инструмент для поддержки зависимостей? bem-core?
смотря о каких зависимостях и где поддержки речь — ymodules для клиентского рантайма, для сборки разные можно использовать
источник

АН

Авроамэриканец Начрэл in БЭМ
Файлы .deps.js
источник

EW

Eugeniy World in БЭМ
На уровне enb сборщика резолвятся
источник
2019 December 17

AN

Alexander Nemirov in БЭМ
Всем привет, а где можно посмотреть про модификатор theme?


Не пойму как он работает в бэм

Поискал в бэм библиотеках, применение вижу, а реализацию не могу найти
источник

EW

Eugeniy World in БЭМ
А что конкретно не понятно? Это же просто визуальный модификатор, который меняет внешний вид блока
источник

AN

Alexander Nemirov in БЭМ
Eugeniy World
А что конкретно не понятно? Это же просто визуальный модификатор, который меняет внешний вид блока
Я так понимаю, он задаёт общую стилистику страницы, если его миксовать только с корневым блоком page.
И не пойму, как через блок theme выразить несколько цветов

Акцентный, дефолтный и. т. д.
источник

AN

Alexander Nemirov in БЭМ
То есть мы поменяли модификатор theme у блока page и у нас поменялись все цвета страницы, на сколько я понял, логика работы такая
источник

AN

Alexander Nemirov in БЭМ
У себя на проектах, я просто делаю это через переменные, но я эти переменные в каждый блок сую, а тут прям как то очень хитро 😅
источник

EW

Eugeniy World in БЭМ
Так стоп, ты сейчас про whitepaper говоришь?
источник

EW

Eugeniy World in БЭМ
Тут просто через бэм выражены модификаторы темы, все давольно просто, ты задаешь тему, к примеру default в ней описываешь набор цветов для твоих контролов:
.Theme_color_default {
 /* default */
 --color-control-bg-default: #000;
 /* action */
 --color-control-bg-action: #fc0;
}

В своих компонентах используешь эти переменные в css:
.Button_view_default {
 background-color: var(--color-control-bg-default);
}

.Button_view_action {
 background-color: var(--color-control-bg-action);
}
источник