ADR-UI-020. Кнопки

ADR Версия: 1.0 accepted

Кнопки встречаются по всей системе. Фиксируем базовый компонент кнопки (типы, состояния, геометрия) и единое правило их размещения в футерах (порядок и стороны), чтобы пользователь выработал мышечную память, а разработчик/ИИ не решали заново на каждом экране.

⟨/⟩ Исходник

1. Контекст и постановка задачи

Кнопки нужны везде: футеры форм, шапки страниц, карточки, действия в строках. Зафиксировать надо две вещи:

2. Драйверы решения

  1. Предсказуемость — главное действие всегда в одном месте.
  2. Единообразие — одинаковые кнопки во всех контекстах.
  3. Один факт в одном месте — остальные ADR/страницы ссылаются сюда.
  4. Готовность к codegen — генераторы получают однозначное правило.

3. Рассмотренные варианты (размещение)

4. Решение

1. Базовый компонент Button

Base-компонент набора ui/. Геометрия едина для всех типов, различаются только цвета.

2. Размещение в футерах (выбран вариант A + уточнение по деструктивным)

Главный принцип — целевая (главная) кнопка слева, вторичные и «Отмена» — следом, в левом кластере. Деструктивная кнопка ставится справа и оторванно только если она вторичная.

3. Типы по роли действия

4. Выравнивание

Правила подтверждений в модалках/поповерах — отложены вместе с модалками.

5. Положительные следствия

6. Отрицательные следствия и компромиссы

7. Проверка

8. Открытые вопросы / отложено

Связанные артефакты

Документы