Size: a a a

2018 December 24

Р

Роман in БЭМ
В deps описываются зависимости, в bemtree/bemhtml — структура. Они не взаимозаменяемы и решают разные задачи, просто ситаксис схож, т. к. это JS.
источник

Р

Роман in БЭМ
Если так понятнее, то deps — это регистр DI для технологий BEMTREE/BEMHTML/JS
источник

ВВ

Владислав Ворон in БЭМ
Роман
Если так понятнее, то deps — это регистр DI для технологий BEMTREE/BEMHTML/JS
Ну не то что бы совсем все понятно, но то что они о разном понятно.
источник

ВВ

Владислав Ворон in БЭМ
Как в итоге я понял. Если bemjson имеет следующую структуру:
block: 'page',
content: [
       {
           block: 'header'
       },
       {
           block: 'body'
       },
   ]
То для header + body нужно будет написать bemtree.js
источник

Р

Роман in БЭМ
Ага.
источник

ВВ

Владислав Ворон in БЭМ
Роман
Ага.
Спс еще раз.
источник

ВВ

Владислав Ворон in БЭМ
+
источник

ВВ

Владислав Ворон in БЭМ
Задам еще вопрос, как профессионалам.
Структура сейчас:
block: 'search-home',
content: [
   elem: 'button',
   content: {
       block: 'button'
   }
]
Где search-home__button отвечает только за позицию элемента в родителе. Но зачем писать лишний элемент, если можно воспользоваться методом .wrap() в button.bemtree.js и получить на выходе требуемую структуру. Можно же обернуть button элементом search-home__button? Вот только как тогда для полученного элемента затянуть стили?
источник

Р

Роман in БЭМ
Для этого используют replace() + mix:

block('search-home').elem('button').replace()( node => ( {
 block: 'button',
 mix: { block: node.block, elem: node.elem },
 /* … */
} ) )
источник

Р

Роман in БЭМ
Элемент button блока search-home подменится на блок button и к нему примиксуется класс "search-home__button"
источник

Р

Роман in БЭМ
Миксы для «приклеивания» стилей чаще всего и используются при реплейсе
источник

ВВ

Владислав Ворон in БЭМ
Роман
Для этого используют replace() + mix:

block('search-home').elem('button').replace()( node => ( {
 block: 'button',
 mix: { block: node.block, elem: node.elem },
 /* … */
} ) )
Имелось ввиду не много не так. В bemjson.js можно написать короче:
block: 'search-home',
content: { block: 'button' }
и уже в bemtree.js реализовать обертку над кнопкой. Наверное можно тем же replace
источник

ВВ

Владислав Ворон in БЭМ
Т.е. хочется что бы головной блок не знал про вспомогательные элементы.
источник

Р

Роман in БЭМ
в случае с replace он и не узнает
источник

ВВ

Владислав Ворон in БЭМ
На уровне проекта создаю папку темизации:
/design/common.blocks/button/button_theme_winter.css
пишу модификатор winter для кнопки, но стили для кнопки не подтягиваются. HELP ME PLEASE
Ах да. В make.js у levels-ы прописал путь.
источник

Р

Роман in БЭМ
а в deps'ах theme для button указан?
источник

ВВ

Владислав Ворон in БЭМ
Роман
а в deps'ах theme для button указан?
Неа, не указан. Не очень понимаю как указать только тему.
источник

Р

Роман in БЭМ
Если, например, bemjson про этот button описан в элементе button блока search-home, то:

// search-home__button.deps.js
[{
 shouldDeps: [
   {
     block: 'button',
     mods: {
       type: 'submit',
       theme: 'winter'
     }
   }
 ]
}]
источник

ВВ

Владислав Ворон in БЭМ
Роман
Если, например, bemjson про этот button описан в элементе button блока search-home, то:

// search-home__button.deps.js
[{
 shouldDeps: [
   {
     block: 'button',
     mods: {
       type: 'submit',
       theme: 'winter'
     }
   }
 ]
}]
Вау. Спасибо, все срослось. ))
источник
2018 December 25

И

Ильдар in БЭМ
Подскажите как спозиционировать блок popup из bem-components в правом верхнем углу эерана fixed, документация не доступна
источник