Используется для создания различных типов кнопок.
| Модификатор | Допустимые значения | Способы использования | Описание |
|---|---|---|---|
| type | 'link', 'submit' |
BEMJSON |
Тип кнопки. |
| togglable | 'check', 'radio' |
BEMJSON |
Тип переключателя. |
| disabled | true |
BEMJSON, JS |
Неактивное состояние. |
| focused | true |
BEMJSON, JS |
Фокус на блоке. |
| pressed | true |
– | Действие «нажатие на кнопку». |
| hovered | true |
– | Наведение курсором. |
| theme | 'islands' |
BEMJSON |
Стилевое оформление. |
| size | 's', 'm', 'l', 'xl' |
BEMJSON |
Размер кнопки. Используется для кнопок с модификатором theme в значении islands. |
| view | 'action', 'pseudo', 'plain' |
BEMJSON |
Тип визуального выделения кнопки. |
| Поле | Тип | Описание |
|---|---|---|
| name | String |
Уникальное имя блока. Не используется, если модификатор type выставлен в значение link. |
| val | String, Number |
Значение, отправляемое на сервер. Не используется, если модификатор type выставлен в значение link. |
| text | String |
Текст кнопки. |
| url | String |
Адрес. Используется только для кнопки с модификатором type в значении link. |
| target | String |
Поведение кнопки-ссылки. |
| icon | BEMJSON |
Иконка на кнопке. Формируется блоком icon. |
| title | String |
Текст всплывающей подсказки. |
| id | String |
Уникальный идентификатор кнопки. |
| tabIndex | Number |
Последовательность перехода между контролами при нажатии на Tab. |
Блок button предоставляет возможность изменять размер, состояние, содержимое и внешний вид кнопок.
Допустимые значения: 'link', 'submit'.
Способ использования: BEMJSON.
Используется для создания кнопки, обеспечивающей переход по адресу, указанному в поле url.
{
block : 'button',
mods : { theme : 'islands', size : 'm', type : 'link' },
url : 'https://bem.info/',
text : 'Попробуй БЭМ'
}Используется для создания кнопки, обеспечивающей отправку данных на сервер. Кнопка такого типа всегда должна располагаться в форме.
{
block : 'button',
mods : { theme : 'islands', size : 'm', type : 'submit' },
text : 'Я отправляю данные'
}Допустимые значения: 'check', 'radio'.
Способ использования: BEMJSON.
Используется для реализации «залипания» кнопки. Определяет поведение нажатой кнопки.
Первое нажатие на кнопку вдавливает ее, второе – приводит в первоначальное состояние.
{
block : 'button',
mods : { theme : 'islands', size : 'm', togglable : 'check' },
text : 'Я нажата'
}Нажатие на кнопку вдавливает ее, и она может быть приведена в первоначальное состояние только программно. Используется в составе радиогруппы.
{
block : 'button',
mods : { theme : 'islands', size : 'm', togglable : 'radio' },
text : 'Я «залипла» :)'
}Пример использования в радиогруппе:
{
block : 'radio-group',
mods : { theme : 'islands', size : 'm', type : 'button', togglable : 'radio' },
name : 'radio-button',
options : [
{ val : 1, text : 'Первый' },
{ val : 2, text : 'Второй', checked : true },
{ val : 3, text : 'Третий' }
]
}Допустимое значение: true.
Способы использования: BEMJSON, JS.
Отвечает за неактивное состояние, при котором блок виден, но недоступен для действий пользователя.
{
block : 'button',
mods : { theme : 'islands', size : 'm', disabled : true },
text : 'Неактивна'
}Допустимое значение: true.
Способы использования: BEMJSON, JS.
Отвечает за наличие фокуса на блоке.
Выставляется автоматически при получении кнопкой фокуса.
{
block : 'button',
mods : { theme : 'islands', size : 'm', focused : true },
text : 'В фокусе'
}Способ установки фокуса на блок определяет выбор модификатора: focused или focused-hard. Читать подробности.
Допустимое значение: true.
Способ использования: – .
Определяет действие «нажатие на кнопку».
Выставляется автоматически при нажатии на кнопку.
Допустимое значение: true.
Способы использования: – .
Выставляется блоку автоматически, когда курсор мыши находится в пределах контрола, но щелчка по нему не происходит.
Допустимое значение: 'islands'.
Способ использования: BEMJSON.
Отвечает за стилевое оформление блока.
Необходимо использовать с модификатором size.
{
block : 'button',
mods : { theme : 'islands', size : 'm' },
text : 'Тема islands'
}Допустимые значения для темы islands: 's', 'm', 'l', 'xl'.
Способ использования: BEMJSON.
Задает размер всем типам кнопок.
Необходимо использовать с модификатором theme в значении islands.
s
{
block : 'button',
mods : { theme : 'islands', size : 's' },
text : 'Размер s'
}m
{
block : 'button',
mods : { theme : 'islands', size : 'm' },
text : 'Размер m'
}l
{
block : 'button',
mods : { theme : 'islands', size : 'l' },
text : 'Размер l'
}xl
{
block : 'button',
mods : { theme : 'islands', size : 'xl' },
text : 'Размер xl'
}Допустимые значения: 'action', 'pseudo', 'plain'.
Способ использования: BEMJSON.
Используется для визуального выделения кнопки на странице.
{
block : 'button',
mods : { theme : 'islands', size : 'm', view : 'action' },
text : 'Купить сейчас!'
}Используется для изменения внешнего вида блока при необходимости сделать кнопку менее заметной на странице.
{
block : 'button',
mods : { theme : 'islands', size : 'm', view : 'pseudo' },
text : 'У меня прозрачный фон'
}{
block : 'button',
mods : { theme : 'islands', size : 'm', view : 'pseudo', disabled : true },
text : 'У меня нет границ'
}Используется при необходимости представить кнопкой другой блок, например, иконку (icon).
{
block : 'button',
mods : { theme : 'islands', size : 'm', view : 'plain' },
text : 'Кнопка без границ'
}{
block : 'button',
mods : { theme : 'islands', size : 'm', view : 'plain' },
icon : {
block : 'icon',
mods : { social : 'twitter' }
}
}Тип: String.
Определяет уникальное имя блока.
Не используется, если модификатор type выставлен в значение link.
{
block : 'button',
mods : { theme : 'islands', size : 'm', type : 'submit' },
name : 'Test_1',
val : 'passed',
text : 'Проверить результат'
}Тип данных: String, Number.
Определяет значение кнопки, которое будет отправлено на сервер.
Не используется, если модификатор type выставлен в значение link.
{
block : 'button',
mods : { theme : 'islands', size : 'm', type : 'submit' },
name : 'Test_1',
val : 'passed',
text : 'Проверить результат'
}Тип: String.
Определяет текст, который отображается на кнопке.
{
block : 'button',
mods : { theme : 'islands', size : 'm', type : 'submit' },
name : 'Test_1',
val : 'passed',
text : 'Проверить результат'
}Примечание Поле text позволяет определить текст кнопки и подходит для решения большинства задач, однако через него нельзя задать произвольный BEMJSON. В случае если необходимо внутри блока button определить некую HTML-разметку, нужно использовать поле content.
Тип: String.
Определяет адрес, по которому осуществляется переход при нажатии на кнопку с модификатором type в значении link.
Не используется с другими типами кнопок.
{
block : 'button',
mods : { theme : 'islands', size : 'm', type : 'link' },
url : 'https://bem.info/',
text : 'Попробуй БЭМ'
}Тип: String.
Определяет поведение кнопки-ссылки. Принимает все допустимые значения HTML-атрибута target: _blank, _self (используется по умолчанию), _parent, _top.
Не используется с другими типами кнопок.
{
block : 'button',
mods : { theme : 'islands', size : 'm', type : 'link' },
url : 'https://bem.info/',
target: '_blank',
text : 'Попробуй БЭМ'
}Тип: BEMJSON.
Определяет иконку, которая отображается на кнопке. Иконка задается с помощью блока icon.
{
block : 'button',
mods : { theme : 'islands', size : 'm' },
text : 'Twitter',
icon : {
block : 'icon',
mods : { social : 'twitter' }
}
}Тип: String.
Определяет содержание всплывающей подсказки. Вид такой подсказки зависит от браузера, настроек операционной системы и не может быть изменен с помощью HTML-кода или стилей.
{
block : 'button',
mods : { theme : 'islands', size : 'm', type : 'submit' },
name : 'Тест №1',
val : 'Пройден успешно',
text : 'Проверить результат',
title : 'Кнопка отправки результатов теста'
}Тип: String.
Определяет уникальный идентификатор кнопки.
{
block : 'button',
mods : { theme : 'islands', size : 'm', type : 'submit' },
name : 'Тест №1',
val : 'Пройден успешно',
text : 'Проверить результат',
id : 'Unique_1'
}Тип: Number.
Определяет порядок получения фокуса при переходе между контролами с помощью клавиши Tab.
{
block : 'button',
mods : { theme : 'islands', size : 'm', type : 'submit' },
name : 'Тест №1',
val : 'Пройден успешно',
text : 'Проверить результат',
id :'val_1',
tabIndex : 2
}