Уже больше года верстаю по БЭМу. Как бы о достоинствах этой методологии (я вообще считаю, что она должна быть всеми принята как стандарт в вёрстке:) нет смысла говорить. Хочу обратить внимание на одну досадную особенность - многословность. Особенно это относится к модификаторам.
Вот например кусок обычной разметки - есть компонент ряд с колонками ("_c-row"), есть дочерние элементы ("__col"), и модификаторые меняющие их размер в зависимости от размера экрана ("--md-2-2")
<div class="_c-row">
<div class="_c-row__col--1-2 _c-row__col--md-2-2">1</div>
мне кажется избыточным упоминание компонента _c-row__col в каждом классе (тупо просто потому что нафиг его вспоминать в каждом дочернем классе)
так почему бы не отделить модификаторы --1-2 и --md-2-2 от имени компонента?
Я озадачился такими вопросами и полез в нашу любимую социальную сеть вкон... github. Пересмотрел там кучу сеток и наткнулся на концепцию
BEMV. Мне понравилась идея отделения модификаторов от компонент. Ну почему бы действительно не использовать отдельный класс .--tablet-size-50 чтобы блок можно было сделать на 50% меньше? ЧТобы не писать каждый раз
<div class="_c-row">
<div class="_c-row__col _c-row__col--mobile-1-2 _c-row__col--tablet-2-2">1</div>
предлагаю писать
<div class="_c-row">
<div class="_c-row__col --mobile-1-2 --tablet-2-2">1</div>
почему бы really не отделить модификаторы от имён компонент? Или вообще (к примеру) все "сеточные" блоки объявлять в своей области видимости в каком-нить - например [data-layout="_c-row"]. Что в этом плохого?