Нужны ли здесь модификаторы?

Драсте.
У меня в дизайне вот такой вот раздел с кнопками:

6123d1a4ca03e507851401.png

Кнопки именуются таким образом: Button/[какая-то особенность]
У меня 2 вопроса:
1. Все, что подписано как button должно быть одним блоком, но с разными модификаторами в зависимости от особенности? Или мне вообще должно быть наплевать, что написано в дизайне, и я могу делать так, как захочу?
2. Меня смущает кнопка в левом нижнем угле. Как видите, при наведении у нее появляется выпадающая часть. Я сначала подумал, это select, но потом в левой панели фигмы посмотрел, что название элемента Button/Language. Стоит ли переделывать мой select как button с модификатором language?

P. S. Есть в дизайне раздел с селектами и они совсем немного отличаются от этого селекта language.
Я тут подумал и мне кажется, это надо сделать button'ом, т. к. при выборе языка же должна перезагрузиться страница, но тогда возникает другая проблема - усложняется внутренняя структура кнопки и тогда как мне изменять "внутренности" кнопки через один модификатор блока?
6123d4210ef4b255667600.png

В общем, как бы вы поступили в данной ситуации?
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
Realetive
@Realetive
MODX Ambassador России, самозванный БЭМ-евангелист
1. Если делать по БЭМ, то да, правильно выделять каждое отличие от базовой реализации в отдельный модификатор (по возможности группируя их по признакам: размер, состояние, оформление + одиночные «булевы» модификаторы «disabled», «loading»). Хорошо сделано, например, в https://ru.bem.info/libraries/classic/bem-componen.... Иконка внутри — это не модификатор, это просто вложенный блок. Если вложенный блок меняет внешний вид, то да, тут использование модификатора оправдано. Например:
<button type="button" class="btn btn_size_large btn_state_success">
  Подробнее
</button>

<a href="/article" class="btn btn_size_large btn_state_success">
  Подробнее
</a>

<button type="button" class="btn btn_size_large btn_type_like">
  <span class="icon icon_size_large icon_type_thumb-up icon_state_success"></span>
</button>

<button type="button" class="btn btn_size_large btn_type_dislike btn_with-count">
  <span class="icon icon_size_large icon_type_thumb-down icon_state_error"></span>
  <span class="btn__count">12</span>
</button>


2. Select — это три блока: Button + Popup с Menu
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы