Мой Справочник | HTML | PUG & BEM

BEM
Блок — независимый элемент страницы с собственным смыслом.
Элемент — составная часть блока, имеющая смысл только внутри блока.
Модификатор — модификация внешнего вида или поведения блока (или элемента).

НАЗВАНИЕ для css-селекторов:

.block //БЛОК
.block__element //ЭЛЕМЕНТ внутри блока
.block--modif //МОДИФИКАТОР блока

Основные принципы БЭМ:

  1. Минимум тегов без классов
  2. Каскадность свести к минимуму
  3. Блок независим от окружения (может быть размещён в любой части страницы и не сломается при этом).
  4. У разных блоков не должно быть общих классов (и в CSS — не группируем общие правила, а копируем их).
  5. У одного блока (элемента) может быть несколько модификаторов.
  6. Осторожно используем дочерний селектор ( >), последовательность ( +), псевдоклассы ( :nth-child).