Альтернативные схемы именования

Существуют альтернативные решения, основанные на соглашении по именованию БЭМ.

Стиль Two Dashes

block-name__elem-name--mod-name

  • Имена записываются в нижнем регистре.
  • Для разделения слов в именах БЭМ-сущностей используется дефис (-).
  • Имя элемента отделяется от имени блока с помощью двух подчеркиваний (__).
  • Булевые модификаторы отделяются с помощью двух дефисов (--).
  • Модификаторы вида «ключ-значение» не используются.

Важно! Двойной дефис внутри комментария (--) воспринимается как часть комментария и соответственно его наличие приводит к ошибке при валидации документа.

Стиль CamelCase

MyBlock__SomeElem_modName_modVal

Данный стиль отличается от классического CamelCase использованием дополнительных подчеркиваний для разделения имен БЭМ-сущностей.

Стиль без подчеркиваний

blockName-elemName--modName--modVal

  • Для записи имен используется CamelCase.
  • Имя элемента отделяется от имени блока с помощью одного дефиса (-).
  • Для отделения модификатора используется два дефиса (--).
  • Значение модификатора отделяется от его имени с помощью двух дефисов (--).

Важно! Двойной дефис внутри комментария (--) воспринимается как часть комментария и соответственно его наличие приводит к ошибке при валидации документа.

Стиль No-namespace

_available

Основное отличие данного стиля в отсутствии имени блока и/или элемента перед модификатором. Такая схема накладывает ограничения на использование миксов, так как не дает возможности определить, к какому блоку/элементу относится модификатор.

Какой стиль выбрать

Методология БЭМ предлагает общие принципы именования БЭМ-сущностей. Выбор схемы именования зависит от требований вашего проекта и личных предпочтений. Использование предложенного методологией соглашения по именованию имеет один существенный плюс — наличие готовых инструментов для разработки, которые ориентируются именно на «классическое именование».

Помимо этого, БЭМ-методология не ограничивается использованием технологий HTML и CSS, рассмотренных в этом документе. Понятия блоков, элементов и модификаторов применяются при работе с JavaScript, шаблонами и файловой структурой БЭМ-проекта. Инструмент bem-naming позволяет применять одинаковые имена БЭМ-сущностей во всех используемых технологиях реализации.

По умолчанию bem-naming содержит настройки соглашения по именованию, предложенного методологией, но позволяет добавлять правила для использования альтернативных схем.

results matching ""

    No results matching ""