Документация для разработчиков
Темная тема

Обычные кнопки

Описание и подключение

Подключается библиотека вызывом расширения:

\Bitrix\Main\UI\Extension::load("ui.buttons"); 

Описание

Конструктор кнопки содержит классы:

constructor.png
  1. Основной класс, определяет базовый стиль элемента.
  2. Класс модификатор. Работает только в паре с основным классом. Изменяет базовые стили элемента. Модификаторы можно комбинировать между собой. Например, мы хотим сделать зелёную кнопку маленького размера с уголком , код будет выглядеть следующим образом:
    <button class="ui-btn ui-btn-success ui-btn-sm ui-btn-dropdown">Кнопка</button>
  3. Кастомный класс. Используется для переопределения базовых стилей. Задается самостоятельно в стилях компонента. Рекомендуется использовать префикс модуля например: crm-btn-*.

Внимание! Менять или переопределять свойства рекомендуется (!) строго в кастомном классе.

Базовые стили

Базовые стили кнопки имеют свойства inline-block и высоту строки 39px. Кнопки делятся 2 типа. Одинарныеui-btn и двойныеui-btn-split. Соответственно, верстка кнопок несколько отличается.

Не рекомендуется использовать теги разметки, такие как span, div, strong и т.п. Лучшей альтернативой является тег button, т.к. он не теряет атрибут tabindex и по нажатию на клавишу enter или пробел, автоматически срабатывает событие onclick.

Кнопки не имеют отступов до того момента, пока рядом не появится ещё одна кнопка. Каждая следующая кнопка получает margin-left: 12px


Одинарная кнопка

Одинарные кнопки состоят только из одного DOM-элемента и имеют базовый класс .ui-btn.

Без этого класса ни одна кнопка работать не будет!

<button class="ui-btn">Кнопка</button>

Двойная кнопка

Двойные кнопки имеют строгую вёрстку.

<div class="ui-btn-split">
	<button class="ui-btn-main">Двойная кнопка</button>
	<button class="ui-btn-menu"></button>
</div>

Размеры

На данный момент кнопки имеют 4 размера.


LG

Модификатор .ui-btn-lg.

Высота строки 47px.

<!-- .ui-btn.ui-btn-lg -->
<button class="ui-btn ui-btn-lg">.ui-btn-lg</button>

<!-- .ui-btn-split.ui-btn-lg -->
<div class="ui-btn-split ui-btn-lg">
	<button class="ui-btn-main">.ui-btn-lg</button>
	<button class="ui-btn-menu"></button>
</div>

MD

Модификатор .ui-btn-md.

Высота строки 39px.

<!-- .ui-btn.ui-btn-md -->
<button class="ui-btn ui-btn-md">.ui-btn-md</button>

<!-- .ui-btn-split.ui-btn-md -->
<div class="ui-btn-split ui-btn-md">
	<button class="ui-btn-main">.ui-btn-md</button>
	<button class="ui-btn-menu"></button>
</div>

SM

Модификатор .ui-btn-sm.

Высота строки 33px.

<!-- .ui-btn.ui-btn-sm-->
<button class="ui-btn ui-btn-sm">.ui-btn-sm</button>

<!-- .ui-btn-split.ui-btn-sm-->
<div class="ui-btn-split ui-btn-sm">
	<button class="ui-btn-main">.ui-btn-sm</button>
	<button class="ui-btn-menu"></button>
</div>

XS

Модификатор .ui-btn-xs.

Высота строки 26px.

<!-- .ui-btn.ui-btn-xs-->
<button class="ui-btn ui-btn-xs">.ui-btn-xs</button>

<!-- .ui-btn-split.ui-btn-xs-->
<div class="ui-btn-split ui-btn-xs">
	<button class="ui-btn-main">.ui-btn-xs</button>
	<button class="ui-btn-menu"></button>
</div>

Цвет

Default

Модификатор .ui-btn-default.

Цвет по умолчанию. Не обязательный класс.

<!-- .ui-btn.ui-btn-default -->
<button class="ui-btn ui-btn-default">.ui-btn-default</button>

<!-- .ui-btn-split.ui-btn-default -->
<div class="ui-btn-split ui-btn-default">
	<button class="ui-btn-main">.ui-btn-default</button>
	<button class="ui-btn-menu"></button>
</div>

Success

Модификатор .ui-btn-success.

<!-- .ui-btn.ui-btn-success-->
<button class="ui-btn ui-btn-success">.ui-btn-success</button>

<!-- .ui-btn-split.ui-btn-success-->
<div class="ui-btn-split ui-btn-success">
	<button class="ui-btn-main">.ui-btn-success</button>
	<button class="ui-btn-menu"></button>
</div>

Success Light

Модификатор .ui-btn-success-light.

<!-- .ui-btn.ui-btn-success-light-->
<button class="ui-btn ui-btn-success-light">.ui-btn-success-light</button>

<!-- .ui-btn-split.ui-btn-success-light-->
<div class="ui-btn-split ui-btn-success-light">
	<button class="ui-btn-main">.ui-btn-success-light</button>
	<button class="ui-btn-menu"></button>
</div>

Danger

Модификатор .ui-btn-danger.

<!-- .ui-btn.ui-btn-danger-->
<button class="ui-btn ui-btn-danger">.ui-btn-danger</button>

<!-- .ui-btn-split.ui-btn-danger-->
<div class="ui-btn-split ui-btn-danger">
	<button class="ui-btn-main">.ui-btn-danger</button>
	<button class="ui-btn-menu"></button>
</div>

Danger Dark

Модификатор .ui-btn-danger-dark.

<!-- .ui-btn.ui-btn-danger-dark-->
<button class="ui-btn ui-btn-danger-dark">.ui-btn-danger-dark</button>

<!-- .ui-btn-split.ui-btn-danger-dark-->
<div class="ui-btn-split ui-btn-danger-dark">
	<button class="ui-btn-main">.ui-btn-danger-dark</button>
	<button class="ui-btn-menu"></button>
</div>

Danger Light

Модификатор .ui-btn-danger-light.

<!-- .ui-btn.ui-btn-danger-light-->
<button class="ui-btn ui-btn-danger-light">.ui-btn-danger-light</button>

<!-- .ui-btn-split.ui-btn-danger-light-->
<div class="ui-btn-split ui-btn-danger-light">
	<button class="ui-btn-main">.ui-btn-danger-light</button>
	<button class="ui-btn-menu"></button>
</div>

Primary

Модификатор .ui-btn-primary.

<!-- .ui-btn.ui-btn-primary-->
<button class="ui-btn ui-btn-primary">.ui-btn-primary</button>

<!-- .ui-btn-split.ui-btn-primary-->
<div class="ui-btn-split ui-btn-primary">
	<button class="ui-btn-main">.ui-btn-primary</button>
	<button class="ui-btn-menu"></button>
</div>

Primary Dark

Модификатор .ui-btn-primary-dark.

<!-- .ui-btn.ui-btn-primary-dark-->
<button class="ui-btn ui-btn-primary-dark">.ui-btn-primary-dark</button>

<!-- .ui-btn-split.ui-btn-primary-dark-->
<div class="ui-btn-split ui-btn-primary-dark">
	<button class="ui-btn-main">.ui-btn-primary-dark</button>
	<button class="ui-btn-menu"></button>
</div>

Secondary

Модификатор .ui-btn-secondary.

<!-- .ui-btn.ui-btn-secondary-->
<button class="ui-btn ui-btn-secondary">.ui-btn-secondary</button>

<!-- .ui-btn-split.ui-btn-secondary-->
<div class="ui-btn-split ui-btn-secondary">
	<button class="ui-btn-main">.ui-btn-secondary</button>
	<button class="ui-btn-menu"></button>
</div>

Link

Модификатор .ui-btn-link.

Кнопка не имеет внутренних полей слева и справа.

<!-- .ui-btn.ui-btn-link-->
<button class="ui-btn ui-btn-link">.ui-btn-link</button>

<!-- .ui-btn-split.ui-btn-link-->
<div class="ui-btn-split ui-btn-link">
	<button class="ui-btn-main">.ui-btn-link</button>
	<button class="ui-btn-menu"></button>
</div>

Light

Модификатор

.ui-btn-light.

<!-- .ui-btn.ui-btn-light-->
<button class="ui-btn ui-btn-light">.ui-btn-light</button>

<!-- .ui-btn-split.ui-btn-light-->
<div class="ui-btn-split ui-btn-light">
	<button class="ui-btn-main">.ui-btn-light</button>
	<button class="ui-btn-menu"></button>
</div>

Light Border

Модификатор .ui-btn-light-border.

<!-- .ui-btn.ui-btn-light-border-->
<button class="ui-btn ui-btn-light-border">.ui-btn-light-border</button>

<!-- .ui-btn-split.ui-btn-light-border-->
<div class="ui-btn-split ui-btn-light-border">
	<button class="ui-btn-main">.ui-btn-light-border</button>
	<button class="ui-btn-menu"></button>
</div>

:hover и :active

К каждой кнопке можно добавить дополнительный модификатор повторяющий стиль :hover и :active. Для этого необходимо добавить классы .ui-btn-hover и .ui-btn-active соответственно.


Hover

Модификаторы .ui-btn-hover, .ui-btn-main-hover, .ui-btn-menu-hover.

<!-- .ui-btn.ui-btn-hover -->
<button class="ui-btn ui-btn-hover">.ui-btn-hover</button>

<!-- .ui-btn-split.ui-btn-hover -->
<div class="ui-btn-split ui-btn-hover">
	<button class="ui-btn-main">.ui-btn-hover</button>
	<button class="ui-btn-menu"></button>
</div>

<!-- .ui-btn-split.ui-btn-main-hover -->
<div class="ui-btn-split ui-btn-main-hover">
	<button class="ui-btn-main">.ui-btn-main-hover</button>
	<button class="ui-btn-menu"></button>
</div>

<!-- .ui-btn-split.ui-btn-menu-hover -->
<div class="ui-btn-split ui-btn-menu-hover">
	<button class="ui-btn-main">.ui-btn-menu-hover</button>
	<button class="ui-btn-menu"></button>
</div>

Active

Модификаторы

.ui-btn-active, .ui-btn-main-active, .ui-btn-menu-active.

<!-- .ui-btn.ui-btn-active-->
<button class="ui-btn ui-btn-active">.ui-btn-active</button>

<!-- .ui-btn-split.ui-btn-active-->
<div class="ui-btn-split ui-btn-active">
	<button class="ui-btn-main">.ui-btn-active</button>
	<button class="ui-btn-menu"></button>
</div>

<!-- .ui-btn-split.ui-btn-main-active-->
<div class="ui-btn-split ui-btn-main-active">
	<button class="ui-btn-main">.ui-btn-main-active</button>
	<button class="ui-btn-menu"></button>
</div>

<!-- .ui-btn-split.ui-btn-menu-active-->
<div class="ui-btn-split ui-btn-menu-active">
	<button class="ui-btn-main">.ui-btn-menu-active</button>
	<button class="ui-btn-menu"></button>
</div>

Disabled

Модификаторы .ui-btn-disabled, .ui-btn-main-disabled, .ui-btn-menu-disabled.

Модификтор не блокирует кнопку, а меняет только внешний вид. Для блокировки используйте атрибут disabled или любой другой удобный для вас способ.

<!-- .ui-btn.ui-btn-disabled-->
<button class="ui-btn ui-btn-disabled">.ui-btn-disabled</button>

<!-- .ui-btn-split.ui-btn-disabled-->
<div class="ui-btn-split ui-btn-disabled">
	<button class="ui-btn-main">.ui-btn-disabled</button>
	<button class="ui-btn-menu"></button>
</div>

<!-- .ui-btn-split.ui-btn-main-disabled-->
<div class="ui-btn-split ui-btn-main-disabled">
	<button class="ui-btn-main">.ui-btn-main-disabled</button>
	<button class="ui-btn-menu"></button>
</div>

<!-- .ui-btn-split.ui-btn-menu-disabled-->
<div class="ui-btn-split ui-btn-menu-disabled">
	<button class="ui-btn-main">.ui-btn-menu-disabled</button>
	<button class="ui-btn-menu"></button>
</div>

Лоудеры

Wait

Модификатор .ui-btn-wait.

<!-- .ui-btn.ui-btn-wait -->
<button class="ui-btn ui-btn-wait">Кнопарь</button>

<!-- .ui-btn-split.ui-btn-wait -->
<div class="ui-btn-split ui-btn-wait">
	<button class="ui-btn-main">Кнопарь</button>
	<button class="ui-btn-menu"></button>
</div>

Clock

Модификатор .ui-btn-clock.

<!-- .ui-btn.ui-btn-clock-->
<button class="ui-btn ui-btn-clock">Кнопарь</button>

<!-- .ui-btn-split.ui-btn-clock-->
<div class="ui-btn-split ui-btn-clock">
	<button class="ui-btn-main">Кнопарь</button>
	<button class="ui-btn-menu"></button>
</div>

Прочее

Dropdown

Модификатор .ui-btn-dropdown.

Не совместим с двойными кнопками .ui-btn-split.

<!-- .ui-btn.ui-btn-dropdown -->
<button class="ui-btn ui-btn-dropdown">.ui-btn-dropdown</button>

Округление кнопок

Модификатор .ui-btn-round.

Не совместим с двойными кнопками .ui-btn-split.

<!-- .ui-btn.ui-btn-round-->
<button class="ui-btn ui-btn-round">.ui-btn-round</button>

Регистр

Модификатор .ui-btn-no-caps.

<!-- .ui-btn.ui-btn-no-caps-->
<button class="ui-btn ui-btn-no-caps">.ui-btn-no-caps</button>

Счетчики

Модификатор .ui-btn-counter.

По-умолчанию все кнопки имеют свойство text-transform: uppercase. Это означает, что весь текст в кнопке будет в верхнем регистре. Чтобы убрать это свойство, добавьте модификатор .ui-btn-no-caps.

<!-- .ui-btn > i.ui-btn-counter -->
<button class="ui-btn ui-btn-light-border">Кнопка<i class="ui-btn-counter">23</i></button>

<!-- .ui-btn-split .ui-btn-main > i.ui-btn-counter -->
<div class="ui-btn-split">
<button class="ui-btn-main">Кнопарь<i class="ui-btn-counter">12</i></button>
<button class="ui-btn-menu"></button>
</div>

Типовое использование

Панель сохранения страницы


Вариант 1: 2 кнопки
<!-- .ui-btn-container.ui-btn-container-center > .ui-btn.ui-btn-success + .ui-btn.ui-btn-link-->
<div class="ui-btn-container ui-btn-container-center">
	<input type="submit" class="ui-btn ui-btn-success"  name="submit"  value="Сохранить" id="" title="Сохранить и перейти к просмотру">
	<input type="button" class="ui-btn ui-btn-link"  name="cancel" value="Отменить" id="" title="Не сохранять и вернуться">
</div>

Вариант 2: 3 кнопки
<!-- .ui-btn-container.ui-btn-container-center > .ui-btn.ui-btn-success + .ui-btn.ui-btn-light-border + .ui-btn.ui-btn-link-->
<div class="ui-btn-container ui-btn-container-center">
	<input type="submit" class="ui-btn ui-btn-success"  name="submit"  value="Сохранить" id="" title="Сохранить и перейти к просмотру">
	<input type="submit" class="ui-btn ui-btn-light-border"  name="apple" value="Применить" id="" title="Сохранить и остаться в форме">
	<input type="button" class="ui-btn ui-btn-link"  name="cancel" value="Отменить" id="" title="Не сохранять и вернуться">
</div>

Вариант 3: Кнопка счётчика
<!-- .ui-btn.ui-btn-light-border.ui-btn-dropdown > i.ui-btn-counter -->
<button class="ui-btn ui-btn-light-border ui-btn-dropdown">
	Общее
	<i class="ui-btn-counter">23</i>
</button>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024