IconButton

IconButton — кнопка без текстовой метки, только с иконкой. Используется в тулбарах, карточках, строках таблиц — где пространство ограничено или иконка однозначно передаёт смысл.

1. Key Principles of Use

When to use

Use — для действий, смысл которых однозначно передаётся иконкой: закрыть, удалить, редактировать, поделиться, развернуть.

Don't use:

  • Если иконка не самоочевидна — добавьте Tooltip или используйте BasicButton
  • Для основного CTA на экране — используйте BasicButton с лейблом

Core principles

  • Всегда с aria-label — иконка-only требует программного описания
  • Всегда с Tooltip — визуальная подсказка для не-очевидных иконок
  • Квадратные пропорции — ширина равна высоте

2. Anatomy

┌──────┐
│ icon │
└──────┘
СлотОбязательностьОписание
iconrequiredИконка действия
spinnerconditionalПри Loading=True

3. Variants

Figma Component Sets

Имя в FigmapxT-shirt
IconButton 24 XXS24XXS
IconButton 32 XS32XS
IconButton 40 S40S
IconButton 48 M48M
IconButton 56 L56L
IconButton 64 XL64XL

View

ViewНазначение
DefaultНейтральный
AccentАкцентный
SecondaryВторичный
ClearПрозрачный фон
PositiveПозитивный
WarningПредупреждение
NegativeДеструктивный
CheckedОтмеченное/активное состояние
Dark / Black / WhiteМонохромные варианты
AccentTransparentТолько в XXS

Shape

ShapeОписание
DefaultСтандартное скругление согласно размеру
PilledПолностью скруглённый (circle)

4. Sizes

T-shirtpxКонтекст
XXS24Встроенные в поля, чипы
XS32Тулбары, таблицы
S40Карточки, панели
M48Стандартный — дефолт
L56Акцентные действия
XL64Touch-first, hero

5. States

СостояниеFigma-пропОписание
default—Базовый вид
hover—Курсор над кнопкой
loadingLoading=true (нижний регистр в XS–L)Спиннер
disabledDisabled=true (нижний регистр в XS–L)Недоступна

Внимание: в IconButton XS–L используется нижний регистр true/false, в XXS и XL — True/False.

6. Behavior

Keyboard interaction

КлавишаДействие
Tab / Shift+TabПеремещение фокуса
EnterАктивация
SpaceАктивация

7. Accessibility

АтрибутЗначениеКогда
<button>—Всегда
aria-labelОписание действияВсегда (нет видимого текста)
aria-busy="true"—Loading=true
disabled—Disabled=true
Нашли расхождение документации и библиотеки — напишите команде.Сообщить о расхождении