Основни концепции на механизма за шаблони BEMHTML

Шаблоните BEMHTML са изградени на декларативен принцип (като XSLT), всеки шаблон се състои от две части: предикат и тяло на шаблона.
Предикат Е набор от условия, при които се изпълнява шаблонът.
Тяло - инструкции за изпълнение.

Предикатът може да се състои от едно или повече условия. Например:

Обозначението, разделено със запетая, означава, че моделът е приложим само когато са изпълнени всички условия.

Условията могат да бъдат от следните типове:
  • изразяване на съвпадение с входното BEM дърво
  • приложна мода
  • произволно условие

Съвпадение на условията с входно BEM дърво

Използвайки тези условия, можете да изразите съвпадение срещу входното BEM дърво. Например можете да опишете, че шаблонът е приложим за определен блок.

Възможни са следните описания на BEM обекти, към които се прилага шаблонът:
  • блок предикат - блок b-меню
  • предикат за блоков елемент - блок b-меню, елемент елемент
  • предикат за модификатор на блок - блок b-link, мод псевдо да
  • предикат на модификатора на елемент - блок b-меню, елемент на елем, текущо състояние на елемМод

Имена и стойности на BEM обекти при такива условия също могат да бъдат JS изрази:

За всеки блок може да са ви необходими няколко шаблона: за тялото, за атрибутите, за съдържанието. Следователно е необходимо да се въведе концепцията за режимите. Наличието на различни модове ви позволява да напишете няколко шаблона за едно и също BEM обект, всеки от които създава своя част от изходния HTML на този BEM обект.