Size: a a a

2019 March 13

SB

Sergey Bocharov in БЭМ
Ильдар
Здравствуйте, дайте пожалуйста разьяснение по уровням переопределения на проекте. Допустим у меня 3 уровня common deskopt и touch. К примеру есть шапка сайта, она не значительно различается для телефона и планшета и чуть больше для десктопа . Как следует распределить код по уровням?

Вариант 1
- В common блок без элементов + его стили
- На уровнях desktop и touch наполняем блок элментами в соответствии с их структурой и пишем для них стили
- В блоке для touch в шаблонизаторе матчимся на некое значение которое позволяет понять планшет или телефон и правим блок для соответствующего девайса

Вариант 2
- В common реализуем блок к примеру полностью для десктопа и пишем стили
- В touch шаблонизатором выпиливаем ненужное и  меняем структуру + переопределяем стили

Вариант 3?
Суть в том, что в common уносят всю общую часть (стили, элементы, ...), которую ты можешь ожидать и в desktop и touch. Все специфичное для платформ реализуешь на других уровнях.
источник

SB

Sergey Belozyorcev in БЭМ
Ильдар
Здравствуйте, дайте пожалуйста разьяснение по уровням переопределения на проекте. Допустим у меня 3 уровня common deskopt и touch. К примеру есть шапка сайта, она не значительно различается для телефона и планшета и чуть больше для десктопа . Как следует распределить код по уровням?

Вариант 1
- В common блок без элементов + его стили
- На уровнях desktop и touch наполняем блок элментами в соответствии с их структурой и пишем для них стили
- В блоке для touch в шаблонизаторе матчимся на некое значение которое позволяет понять планшет или телефон и правим блок для соответствующего девайса

Вариант 2
- В common реализуем блок к примеру полностью для десктопа и пишем стили
- В touch шаблонизатором выпиливаем ненужное и  меняем структуру + переопределяем стили

Вариант 3?
Блок, который есть на touch или desktop не обязательно должен быть на common
источник

SB

Sergey Belozyorcev in БЭМ
Т.е.

common.blokcs/header - нет
deskop.blocks/header - есть
touch.blocks/header - есть
источник

И

Ильдар in БЭМ
Sergey Belozyorcev
Т.е.

common.blokcs/header - нет
deskop.blocks/header - есть
touch.blocks/header - есть
Все мои капания в этом направлении свелись кому что для разработки сайта относительно тех дизайн макетов что я имею мне нужно помимо common ещё 5 уровней, 3 для девайсов и 2 промежуточных
источник

Р

Роман in БЭМ
Ильдар
Все мои капания в этом направлении свелись кому что для разработки сайта относительно тех дизайн макетов что я имею мне нужно помимо common ещё 5 уровней, 3 для девайсов и 2 промежуточных
И кажется, что в этом нет ничего криминального 🤔 Раз задача требует.
источник

И

Ильдар in БЭМ
Роман
И кажется, что в этом нет ничего криминального 🤔 Раз задача требует.
минус что прыгать при разработке из уровня в уровень приходится, плюс в том что на каждый девайс приезжают максимально нужные стили и скрипты
источник

Р

Роман in БЭМ
Ильдар
минус что прыгать при разработке из уровня в уровень приходится, плюс в том что на каждый девайс приезжают максимально нужные стили и скрипты
Единственное решение, которое вижу — сменить схему именования. В чате проскакивала идея сделать уровни не на каталогах, а через постфикс block@<level>.tech
источник
2019 March 14

A

Anton in БЭМ
Роман
Единственное решение, которое вижу — сменить схему именования. В чате проскакивала идея сделать уровни не на каталогах, а через постфикс block@<level>.tech
+
Это весьма удобная штука
источник

И

Ильдар in БЭМ
в шаблонизаторе bemjsxt не работает переопределение extend, почему?
block('header-menu-2')(match((node) => node._demo)({
   extend: (node, ctx) => ({
       "ctx.items": [
           {
               link: '#',
               title: 'Доставка и оплата'
           },
       ]
   })
}
));

block('header-menu-2')(match((node) => node._demo)({
   extend: (node, ctx) => ({
       "ctx.items": [
           {
               link: '#',
               title: 'Доставка'
           },
       ]
   })
}
));
источник

SB

Sergey Berezhnoy in БЭМ
Ильдар
в шаблонизаторе bemjsxt не работает переопределение extend, почему?
block('header-menu-2')(match((node) => node._demo)({
   extend: (node, ctx) => ({
       "ctx.items": [
           {
               link: '#',
               title: 'Доставка и оплата'
           },
       ]
   })
}
));

block('header-menu-2')(match((node) => node._demo)({
   extend: (node, ctx) => ({
       "ctx.items": [
           {
               link: '#',
               title: 'Доставка'
           },
       ]
   })
}
));
источник

Р

Роман in БЭМ
Anton
+
Это весьма удобная штука
Да, но нет примера, как это правильно орагнизовать под enb.
источник

AY

Alexey Yarrr (qfox) in БЭМ
Роман
Да, но нет примера, как это правильно орагнизовать под enb.
В enb-bem-techs 3.0.0-0 вроде бы можно так, но никто не делится опытом
источник

Р

Роман in БЭМ
Alexey Yarrr (qfox)
В enb-bem-techs 3.0.0-0 вроде бы можно так, но никто не делится опытом
Ну вот те, кто не делится, хотя бы подтвердил информацию — «да, возможно» или «нет / сложно / неоптимально», тогда был бы смысл.
источник

AY

Alexey Yarrr (qfox) in БЭМ
В лабоработрных условиях всё работало и тесты проходят
Но это не продакшн сервис, переведенный с 2.x на 3.0.0-0
источник

Р

Роман in БЭМ
О, это уже интереснее. Спасибо, попробую воспользоваться.
источник

n

nodejsgirl@ Liubov in БЭМ
Привет! Где найти расширение BEM для браузера?
источник

Р

Роман in БЭМ
nodejsgirl@ Liubov
Привет! Где найти расширение BEM для браузера?
Это что ещё за расширение?
источник

n

nodejsgirl@ Liubov in БЭМ
у коллеги в браузере в девтулзах есть закладочка BEM
источник

Р

Роман in БЭМ
nodejsgirl@ Liubov
у коллеги в браузере в девтулзах есть закладочка BEM
Если забанили в Гугле, пользуйтесь Яндексом ;)

https://github.com/escaton/bem-chrome-devtools
источник

n

nodejsgirl@ Liubov in БЭМ
спасибо!
источник