🔥

Тред (@thekashey)


@jsunderhood Альтернатива BEM - css modules github.com/css-modules/cs…
И так везде - люди думают что БЕМ это про__эти--селекторы, чтобы свойства не пересекались, и CSSModules прям отличная замена всему__этому-старому--говну. НЕТ. БЕМ это не только naming convention - это про РАЗДЕЛЕНИЕ на Блоки и Элементы. twitter.com/nastia_splin/s…

Буду честен - я сам это немного не понимал все те годы что провел в Яндексе. А там не только БЕМ из всех щелей, но и конкретно в нашей команде был BEViS от Вадима "37" Макишвили. И я честно B и E не догонял. github.com/bevis-ui/docs/…

Сильно позже, когда жена пошла на курсы @htmlacademy_ru, другой Вадим - @pepelsbey_ - обьяснил что и как. Шестеренки вошли друг в друга, зацепились, 🤯 И я уверен, что официальна документация ru.bem.info/methodology/qu… в понимании ключевого момента не помогает.

- Любой Блок Является Элементом - Любой Блок принимает className от Родителя - DOM нода Блока содержит минимум ДВА className : от блока, и от элемента.
notion image

Сами Блоки не имеют ни размеров, ни маржинов, и тем самым являются - независимыми - переиспользуемыми - удобными А CSSModules это все отлично дополняет. "БЕМ" даже на CSS-in-JS можно, потому что это не про именование, а про разделение.