Редактор сущности

Редактор открывает уже существующую сущность и правит её по частям. Настройка не помещается в один поток, поэтому делится на секции, между которыми человек ходит, не теряя сводку и текущее состояние сущности.

Статус: experimental · в системе с 2026-08

Когда использовать

  • Настройка одной сущности не помещается в один экран и делится на самостоятельные секции.
  • Человеку нужно видеть состояние и сводку сущности, пока он правит любую из секций.

Не использовать:

  • Значения запрашиваются один раз и целиком — это «Форма».
  • Сущность только создаётся: у новой ещё нет ни состояния, ни сводки, ни истории.
  • Правится одно-два поля — секции и сводка вокруг них избыточны.
  • Сущность или раздел только показывают: секций нет, править нечего — это «Обзор раздела».

Состав

Юнит или компонентРоль
entity-idИдентификатор сущности в сводке.
chatПереписка по заявке или модерации сущности.
codeКод подключения сущности.
qr-codeQR-код подключения сущности.
subscription-limitДиапазон давности подписки аудитории.
popover-previewРаскрываемое превью привязанного креатива.
statusТекущее состояние сущности рядом с её идентификатором.
badgeКороткая метка рядом с идентификатором или заголовком блока: «NEW», «BETA», счётчик новых.
amountСумма в сводке сущности: баланс, стоимость, списание.
switchВключение и выключение сущности целиком.
alertПричина, по которой сущность остановлена или требует внимания.
titleЗаголовок блока сводки или секции текущей настройки.
labelПодпись группы контролов или отдельного значения в сводке.
user-lineВладелец сущности одной строкой в сводке или рядом с заголовком.
user-nameПочта участника или автора одной строкой: лог изменений, список доступов.
page-navigationСписок секций сущности в колонке слева: где человек сейчас и куда может перейти внутри неё.
file-uploadФайл сущности: креатив, логотип, документ проверки.
input-dateОдна дата сущности: начало показа, срок действия, дата операции.
radioВзаимоисключающий выбор секции, когда вариантов больше шести или у каждого нужна подпись.
input-colorЦвет как значение сущности: фирменный цвет, метка, фон креатива.
cardИменованный блок сводки или секция полей с дочерними узлами.
islandПоверхность региона без заголовка: группа полей сущности, строка итога в подвале.
fields-groupСтроки из равных ячеек в карточке сущности: правила, ставки, пары значений.
select-toggleСписок значений с режимом «включить или исключить»: страны, площадки, источники.
schedulerРасписание показа по часам недели внутри редактора сущности.
descriptionПояснение под полем редактора: формат значения, влияние на результат.
comboПовторяющийся блок редактора: условия, ставки, шаги — с добавлением и удалением.
drag-and-dropПорядок строк, который задаёт человек: приоритет правил, очередь шагов.
inputКороткие значения текущей секции.
copy-fieldГотовое значение сущности для переноса наружу: ссылка трекера, postback, код вставки.
input-numberЧисловые значения и границы.
selectОдно значение из короткого списка.
comboboxОдна сущность из справочника — владелец, кампания, площадка: список ищется по буквам, а не листается; подгрузку и loading готовит приложение.
input-selectСтрока правила из связанных селектов одной сущности.
multi-selectНесколько значений одного поля.
tag-inputСвободные метки сущности в секции: хэштеги креатива, домены источников.
dualistДлинные наборы вроде географии, где выбранное важно видеть рядом с источником.
checkbox-groupНесколько независимых признаков секции.
checkboxОдин независимый признак секции; в сетке расписания — ячейка таблицы дней и часов.
sliderПоложение на известной шкале рядом с полем значения: частота показов, доля трафика.
segmented-controlРежим набора: включающий или исключающий.
textareaКомментарий и другие длинные пояснения.
accordionРедкие настройки секции под свёрнутым заголовком.
tableОднородные строки внутри секции.
toolbarКоманды и локальные режимы над рабочей областью секции: расписание, сетка ставок.
flipperЦиклический режим над рабочей областью секции.
extra-groupСводные счётчики секции рядом с её именем: пройденные проверки, лимиты через слеш.
progressИзвестный ход длительной операции над сущностью в сводке: обработка, импорт.
tagМетки сущности в сводке.
indicatorСостояние объекта в сводке одной точкой рядом с числом или подписью.
iconЗначок в сводке и у поля секции: скрыто, предупреждение, внешняя ссылка.
avatarВладелец сущности в сводке.
thumbnailПревью привязанного креатива в сводке кампании.
chartДиаграмма эффективности сущности в сводке: расход, показы, клики по времени.
dividerГраница групп внутри сводки или секции.
linkПереход к справке по текущей секции.
buttonСохранение, добавление привязанных объектов и второстепенные действия.
tooltipПояснение к полю секции или карточке сводки по наведению — поверх редактора.
popoverПанель с полями рядом с кнопкой секции: добавить правило, пополнить баланс — поверх редактора.
menuДополнительные действия над сущностью из титульной строки — поверх редактора.
dialogПодтверждение архивации, остановки и других необратимых шагов — поверх редактора.
entities-list-dialogМассив значений строками поверх поля редактора: площадки, ключи, id.
toastРезультат сохранения или фонового действия над сущностью — поверх редактора.

Ограничения

  • Обязательно: Показывать состояние сущности и её идентификатор на каждой секции: человек правит часть, а отвечает за целое.
  • Обязательно: Оставлять ровно одно главное действие accent — сохранение; оно относится ко всей сущности, а не к открытой секции.
  • Обязательно: Называть секции по задаче человека, а не по внутренней модели данных.
  • Рекомендуется: Держать в сводке только то, на что человек смотрит во время правки: баланс, владельца, метки, привязанные объекты.
  • Запрещено: Прятать несохранённые изменения при переходе между секциями без предупреждения.
  • Запрещено: Дублировать переход по секциям глобальной навигацией каркаса: она ведёт между разделами продукта, а не внутри сущности.
  • Запрещено: Заполнять outline и actions тем, что уже рисует каркас: разделы продукта и глобальные действия шапки к сущности не относятся. Экран без секций и без действий над сущностью — не редактор, а «Обзор раздела».

Логика отклика

  1. Ориентация Человек открывает сущность из списка. Титульная строка называет сущность, сводка показывает состояние, слева видны все секции.
  2. Переход Человек выбирает секцию настройки. Меняется только содержимое центра; состояние, сводка и главное действие остаются на месте.
  3. Правка Человек меняет поля секции. Ошибки появляются у полей, сводка отражает связанные значения.
  4. Сохранение Человек сохраняет сущность. Результат относится ко всей сущности; несохранённые секции о себе сообщают.

Контекстный пример

Правильно

Состояние и сводка не уходят вместе с секцией

Слева — сущность и её секции, в центре — поля одной задачи, справа — сводка. Сохранение одно и стоит в титульной строке.

status input dualist button

Неправильно

Секции как отдельные формы

Каждая секция открывается своей страницей со своим сохранением, состояние сущности теряется, а сводка дублируется в каждой копии.

input button

Скелет экрана

  1. outlineСущность и переход по её секциям: идентификатор, состояние, список секций настройки.
  2. mainПоля текущей секции одним потоком.
  3. summaryСводка сущности рядом с полями: баланс, владелец, метки, привязанные объекты.
  4. feedbackОбратная связь по всей сущности, а не по отдельному полю.
  5. actionsСохранение сущности и второстепенные действия; стоят в титульной строке страницы.