ну бэм - это всего лишь способ именования классов. Я про компоненты твига. Есть даже модуль для этой штуки
https://www.drupal.org/project/componentsСуть в том, что создаёшь компоненты просто как элементы дизайна. Например компонент «карточка», где есть картинка, заголовок и краткое описание. Создаёшь компонент и в нём переменные image, title, text. И вот надо тебе карточками вывести статьи, берёшь шаблон ноды, или тизера ноды и пишешь там:
{% inlclude ‘@component-library/components/card’ with {
image: content.field_image,
title: label,
text: content.body,
}
И если потом такими же карточками нужно вывести, скажем, юзеров или категории, то берёшь соответственно шаблон юзера или термина, инклюдишь туда тот же компонент, только меняешь маппинг полей.
Казалось бы, всё просто и удобно, но ведь поля отрендерятся с шаблонами полей и будет куча лишней разметки. И как тогда лучше поступить, чтобы передавать в компонент только значения полей без обёрток?