Меню
Поиск

Интерфейс и визуал · Паттерны и состояния

Как собрать общий паттерн, чтобы одинаковые задачи решались одинаково

Когда продукт делают разные люди, одну и ту же задачу решают тремя способами, и человек каждый раз учится заново. В уроке разберём, как собрать решения одной задачи на один лист, выбрать из них по цене ошибки, описать паттерн так, чтобы его применяли без вас, держать его рядом с компонентами, заменять разнобой по списку мест и открыто выводить устаревшее. Для практики — удаление в магазине кофе, тренажёр «как удалять здесь» и прогон чужого экрана по паттерну.

Пример для всего урока. Тот же магазин кофе, что и в уроках про основные состояния и крайние случаи, но теперь вы смотрите на продукт целиком. Приложение, корзину и офисный аккаунт делали разные люди в разное время. Задача урока — удаление: товара из корзины, кофе из избранного, адреса из профиля.

1Одна задача — три решения

Разнобой не виден, пока смотришь на экраны по одному. Он виден, когда решения одной задачи лежат рядом.

Каждый экран магазина по отдельности выглядит разумно.

Но человек, который удалил товар из корзины, а потом адрес из профиля, встречает два разных ответа на один вопрос:

«Что будет, если нажал случайно?»

Удаление в магазине · три экрана рядом

Корзина

←Корзина
Эфиопиязёрна, 250 г890 ₽
Кениязёрна, 250 гУдалить

Свайп влево — и товара нет. Вернуть нельзя.

Избранное

←Избранное
Вы уверены?Это действие нельзя отменить.НетДа

Спрашивают перед каждым удалением.

Адреса в профиле

←Адреса
Домул. Лесная, 8к2, кв. 14
Адрес удалён Вернуть

Удаляется сразу, внизу плашка с возвратом.

Три экрана — три ответа. В корзине ничего не вернуть, в избранном спрашивают каждый раз, в адресах удаляют сразу и дают вернуть.

Таблица к листу

Лист с экранами дополните таблицей: где задача встречается, как решена и что будет при ошибке. Таблица находит и то, что на снимках не видно.

ГдеКак удаляютЕсли нажал случайноТекст
КорзинаСвайп влево, сразуНе вернуть—
ИзбранноеКнопка, затем диалогСпросили заранее«Вы уверены? Это действие нельзя отменить»
АдресаКнопка, сразуПлашка «Вернуть»«Адрес удалён»
Общий заказ офисаКрестик, сразуНе вернуть, а собирали всем офисом—
Аккаунт компанииКнопка, затем диалогСпросили заранее«Вы уверены?»

Инвентаризация интерфейса

Дизайнер Брэд Фрост в 2013 году в своём блоге назвал такой сбор инвентаризацией интерфейса, а потом описал его в книге «Atomic Design».

Снимают не каждый экземпляр, а по одному на каждый непохожий вариант, и раскладывают по категориям. Когда похожие, но разные решения стоят рядом, лишние видны сразу.

Фрост собирал так кнопки, поля и другие детали. Для паттерна собирают не детали, а решения одной задачи.

Прежде чем спорить, какое решение лучше, соберите все на один лист. Спор о пяти местах, которые лежат рядом, короче, чем о каждом по отдельности.

2Какое решение оставить

Оставляют не то, что нравится, а то, что лучше решает задачу. Для удаления главный вопрос — чего стоит ошибка.

В Nielsen Norman Group советуют спрашивать подтверждение перед действиями с серьёзными последствиями — когда пропадает работа человека или крупная сумма денег.

Если спрашивать на каждое обычное действие, люди перестают читать вопрос и нажимают «Да» не думая. Тогда подтверждение не защищает и там, где оно действительно нужно.

Там же советуют по возможности давать отмену: она спасает от ошибки и не мешает, когда ошибки нет.

Чего стоит ошибкаКак удалятьПример
Возвращается тем же нажатиемБез подтверждения и без плашкиСнять сердечко «В избранное» на карточке
Ошибиться легко, вернуть тоже легкоСразу, внизу плашка «Вернуть»Товар из корзины, адрес из профиля
Вернуть нельзя, пропадёт работа или деньгиСпросить до и назвать последствияУдалить аккаунт компании, очистить общий заказ

Если подтверждение нужно

Оно называет последствия, а кнопка — действие.

«Вы уверены?» с кнопками «Да» и «Нет» заставляет перечитывать вопрос.

Удаление аккаунта компании · общий вопрос и последствия

Общий вопрос

←Аккаунт компании
Вы уверены?Это действие нельзя отменить.НетДа

Последствия и действие

←Аккаунт компании
Удалить аккаунт «Кофейня на Лесной»?Пропадут 214 заказов, счета и доступ 12 сотрудников. Вернуть аккаунт не получится.ОставитьУдалить аккаунт
Справа видно, что именно пропадёт, и на кнопке написано действие. Нажать «Удалить аккаунт» не читая труднее, чем «Да».

Проверьте себя

Восемь удалений в магазине. Как удалять в каждом случае?

Тренажёр · как удалять здесь
  1. Убрать товар из корзины.

  2. Удалить аккаунт компании вместе с историей заказов и счетами.

  3. Снять сердечко «В избранное» на карточке товара.

  4. Очистить общий заказ, который офис собирал всю неделю.

  5. Удалить сохранённый адрес доставки.

  6. Убрать фильтр «Молотый» в каталоге.

  7. Убрать прошлый заказ из «Моих заказов» в архив.

  8. Отменить оплаченный заказ, который уже собирают на складе.

Спросите себя: чем вернуть сделанное — тем же нажатием, кнопкой «Вернуть» или никак?
Решение для паттерна выбирают по цене ошибки, а не по вкусу. Если спорить не о чем, кроме вкуса, проверьте варианты на людях: юзабилити-тестирование ответит быстрее, чем обсуждение.

3Из чего состоит описание паттерна

Паттерн — это не картинка, а решение задачи: когда его применять, когда нет, как он себя ведёт и какими словами говорит.

В GOV.UK Design System компоненты и паттерны разделены.

Компонент — многоразовая часть интерфейса: кнопка, поле, плашка.

Паттерн — проверенное решение задачи человека. Он часто собран из нескольких компонентов и объясняет, как применить их к случаю.

Например, «Плашка» — компонент. «Удаление с возвратом» — паттерн: в нём плашка, кнопка «Вернуть», поведение списка и тексты.

РазделЧто в нём«Удаление с возвратом»
ЗадачаКакую задачу человека решаетУбрать то, что легко вернуть: товар, адрес, прошлый заказ
Когда применятьПризнаки случаяУдаляют часто, промахнуться легко, объект можно восстановить
Когда не применятьГде нужен другой паттерн и какойПропадает работа или деньги — «Подтверждение необратимого». Возвращается тем же нажатием — ничего не нужно
Как работаетШаги и состоянияСтрока уходит, список смыкается, внизу плашка «Вернуть». Плашка не пропадает сама, пока человек на экране. «Вернуть» ставит строку на прежнее место
Крайние случаиДлинное, много, без связиУдалили три подряд — одна плашка про последнее. Нет связи — строка помечена, удаление уйдёт, когда связь появится
ТекстыГотовые формулировкиЧто удалено: «Товар удалён», «Адрес удалён». Кнопка — «Вернуть»
КомпонентыИз чего собранСтрока списка, плашка с действием — ссылки на библиотеку
Где используетсяЭкраны со статусом заменыАдреса, корзина, архив заказов
Почему такДанные и исследованияПодтверждение на каждое удаление приучает нажимать «Да» не читая
Статус и владелецКто отвечает и в каком он состоянииПринят · владелец — дизайнер корзины · пересмотр раз в полгода

Про плашку с действием есть готовое правило в Material Design 3. У такой плашки одно действие, и она остаётся на экране, пока человек его не нажмёт или не закроет плашку. Пример в руководстве — письмо, отправленное в архив, с кнопкой Undo.

Как это устроено в GOV.UK

У страниц паттернов в GOV.UK Design System повторяются одни и те же разделы:

  • когда применять;
  • как работает;
  • что показали исследования;
  • у части — ещё и когда не применять.

Критерии для нового паттерна там тоже записаны: он полезен многим командам и не повторяет то, что в системе уже есть.

Прежде чем паттерн опубликуют, его проверяют на людях, собирают из существующих стилей и компонентов и убеждаются, что он подходит разным сервисам.

Паттерн без раздела «когда не применять» начнут применять везде. Этот раздел пишут вторым, сразу после задачи.

4Паттерн рядом с компонентами

Паттерн в отдельном файле находят те, кто его писал. Остальные собирают экран из компонентов и о паттерне не знают.

Дизайнер, который делает новый экран, открывает библиотеку компонентов, а не папку с документами. Разработчик открывает компоненты в коде.

Значит, паттерн должен встретиться обоим там, куда они и так идут.

Где лежит паттернКто его найдёт
Отдельный документ «Паттерны» в облакеТот, кто знает, что он есть
Страница в библиотеке Figma рядом с компонентами, у плашки — ссылка на паттернКаждый, кто взял плашку
Сайт дизайн-системы, где у компонента есть раздел «Где используется»Дизайнеры и разработка
Компонент в коде с примером паттерна рядомРазработка, которая собирает экран

В Nielsen Norman Group хранилище дизайн-системы делят на три части: руководство по стилю, библиотеку компонентов и библиотеку паттернов.

Компоненты — отдельные элементы, паттерны — их сочетания и раскладки. Это части одного хранилища, а не три разных места.

Для кода и документации есть готовые инструменты. Storybook — открытый бесплатный инструмент, в котором разработка собирает, проверяет и описывает компоненты отдельно от продукта. Туда же кладут пример паттерна.

zeroheight — платформа дизайн-системы, куда подтягиваются материалы из Figma и Storybook. Так описание паттерна и живой компонент оказываются на одной странице.

Проверка простая: откройте компонент, из которого собран паттерн. Если оттуда не видно паттерна, его не найдут.

5Замена без большого переделывания

Разнобой не убирают за один спринт. Его убирают по списку мест, у каждого из которых есть статус.

  1. С сегодняшнего дня новые экраны — только по паттерну. Это ничего не стоит и сразу останавливает рост разнобоя.
  2. Выпишите все места, где задача решена иначе: они уже есть в таблице инвентаризации.
  3. Начните с самого дорогого: частое действие, дорогая ошибка. Общий заказ офиса, который удаляется крестиком без возврата, — первым.
  4. Остальное меняйте, когда экран всё равно трогают. Правите корзину — заодно меняете удаление.
  5. Место, которое осознанно оставлено, получает причину. Без неё его заменят по ошибке или не заменят никогда.
МестоСейчасСтатусПочему такой порядок
Общий заказ офисаКрестик, без возвратаЗамененоОшибка стоит дороже всего: собирали всем офисом
КорзинаСвайп, без возвратаВ работеСамое частое удаление в продукте
Избранное«Вы уверены?»Когда будут править избранноеМешает, но ничего не теряется
АдресаПлашка «Вернуть»Уже по паттернуС него паттерн и взят
Аккаунт компании«Вы уверены?»Оставлено, текст переписанДругой паттерн: подтверждение необратимого
Место без статуса никто не заменит. Список со статусами показывает, как идёт замена, без собраний и напоминаний.

6Прогон чужого экрана по паттерну

Паттерн работает, когда по нему собирают экраны без вас. Первый такой экран стоит прочитать внимательно.

Коллега собрал экран подписки «Кофе каждый месяц» и сделал удаление товара из подписки «по паттерну». Ниже его описание.

Пять строк расходятся с паттерном «Удаление с возвратом» — с тем, как он работает, или с тем, когда его применять. Нажимайте на них.

Подписка «Кофе каждый месяц» · описание коллеги
  • удаление товараКнопка «Убрать» у товара. Строка уходит, список смыкается.
  • перед удалениемДиалог «Вы уверены?» с кнопками «Да» и «Нет».
  • после удаленияВнизу плашка «Товар убран из подписки» и кнопка «Вернуть».
  • плашкаПропадает через 3 секунды.
  • нажали «Вернуть»Товар встаёт на прежнее место в списке.
  • удалили три товара подрядТри плашки одна над другой.
  • нет связиСтрока помечена «Удалится, когда появится связь». «Вернуть» работает.
  • отказ от подпискиКнопка «Нет, я больше не люблю кофе».
  • удаление всей подписки с оплаченным месяцемСразу, внизу плашка «Вернуть».
  • фокусПосле удаления фокус переходит на следующий товар в списке.
  1. Кнопка «Убрать», строка уходит, список смыкается.По паттерну. Так и описано в разделе «Как работает».
  2. Диалог «Вы уверены?» перед удалением.Расходится с паттерном. Товар из подписки легко вернуть, значит, подтверждение не нужно — вместо него плашка «Вернуть». А если бы оно было нужно, то не «Вы уверены?», а с последствиями.
  3. Плашка «Товар убран из подписки» и «Вернуть».По паттерну. Сказано, что именно удалено, кнопка называется как в паттерне.
  4. Плашка пропадает через 3 секунды.Расходится с паттерном. Плашка с действием не пропадает сама, пока человек на экране: за 3 секунды многие не успеют прочитать и нажать «Вернуть».
  5. «Вернуть» ставит товар на прежнее место.По паттерну. Возврат восстанавливает всё как было, включая место в списке.
  6. Три плашки одна над другой.Расходится с паттерном. В крайних случаях паттерна записано: одна плашка про последнее удаление. Три плашки закрывают список, в котором человек как раз работает.
  7. Нет связи: строка помечена, «Вернуть» работает.По паттерну. Так в разделе про крайние случаи.
  8. Кнопка «Нет, я больше не люблю кофе».Обманный паттерн. Это стыжение — confirmshaming: отказ подписан так, чтобы человеку стало неловко. В библиотеку такое не попадает. Кнопка называет действие: «Отказаться от подписки».
  9. Удаление всей подписки с оплаченным месяцем — сразу, с плашкой.Не тот паттерн. Пропадают деньги за оплаченный месяц — это случай из раздела «Когда не применять». Нужно «Подтверждение необратимого»: спросить до и назвать, что будет с деньгами.
  10. Фокус переходит на следующий товар.По паттерну. Тот, кто работает с клавиатуры или слушает экран, не теряется после удаления.

Все пять найдены. Три расхождения — в поведении, два — в том, когда паттерн применять и какими словами говорить. Если коллега понял паттерн иначе, чем задумано, это повод дописать сам паттерн, а не только поправить экран.

Строки, которые совпадают с паттерном, тоже можно нажать: вы прочитаете, почему там всё в порядке, а счётчик «Найдено» не изменится.
Каждое расхождение ссылается на строку паттерна. «Так не принято» — мнение. «В разделе „Как работает“: плашка не пропадает сама» — правило, с которым не спорят.

7Когда паттерн перестал работать

Паттерн — не закон навсегда. Когда он перестал работать, его выводят открыто, а не молча перестают применять.

Признаки

  • Его обходят. Новые экраны снова собирают по-своему, и у каждого находится причина.
  • Случаи не помещаются. Раздел «Когда применять» обрастает исключениями.
  • Данные против. Жалобы в поддержку, ошибки в аналитике, провалы на проверках с людьми.
  • Изменилась основа. Платформа или компоненты, из которых собран паттерн, стали другими.

Вывод по статусам

Так устроено в больших системах. В Atlassian Design System у компонентов три фазы выпуска и две фазы вывода:

  • «собираемся вывести» — в новом не использовать, брать замену;
  • «выведен» — заменитель назван, переезд описан.

Ни один стабильный компонент там не удаляют без заранее объявленного срока.

В GOV.UK Design System с августа 2026 года у компонентов два статуса — «проба» и «стабильный». Компонент на пробе может заметно измениться или быть выведен.

Статус паттернаЧто значитЧто делает команда
ПробаПаттерн проверяют на нескольких экранах, он может изменитьсяПрименяет там, где договорились
ПринятПроверен, основной способ решать задачуВсе новые экраны — по нему
Под вопросомЕсть сомнения, решение ищутВ новых экранах не применяет, старые не трогает
УстарелНазван заменитель и срокМеняет по списку мест до срока
УдалёнМест с ним не осталосьСтраница остаётся в журнале с причиной

Сказать вслух

Это четыре действия:

  • запись в журнале изменений системы с датой и причиной;
  • пометка на странице паттерна;
  • сообщение в общем канале команды;
  • отдельное сообщение владельцам экранов из списка мест.
Паттерн, который работает против человека, выводят сразу, без срока. Отказ от подписки кнопкой «Нет, я больше не люблю кофе» — стыжение (confirmshaming). Подписка, которую легко оформить и трудно отменить, — «трудно отменить» (hard to cancel). Оба типа описаны на сайте Deceptive Patterns Гарри Бриньолла, и к большинству типов там привязаны законы и решения регуляторов. Если такой паттерн попал в библиотеку, его повторят в каждом новом экране.
Паттерн выводят так же открыто, как вводили: со статусом, заменителем, сроком и записью в журнале.

8Задание

Найдите в продукте задачу, которая решена тремя способами, сведите её к одному паттерну, опишите его и замените хотя бы в двух местах.

Часть 1 · Инвентаризация, 1 час

  1. Выберите задачу, которая встречается на многих экранах: удаление, пустой поиск, подтверждение действия, выбор даты, ошибка в форме.
  2. Найдите все места, где она решается. Снимите по одному экрану на каждое непохожее решение.
  3. Сведите в таблицу: где, как решено, что будет при ошибке, какой текст.

Часть 2 · Паттерн, 2 часа

  1. Выберите решение по цене ошибки, частоте и данным. Если данных нет, проверьте варианты на людях.
  2. Опишите паттерн по шаблону. «Когда не применять» пишите сразу после задачи.
  3. Положите описание рядом с компонентами и поставьте на него ссылку из каждого компонента, который в нём участвует.
Описание паттерна · заполните и положите рядом с компонентами
ПАТТЕРН: ______________________   статус: проба / принят / под вопросом / устарел
владелец: ______________   дата: __.__.____   пересмотр: __.__.____

ЗАДАЧА: ______________________
КОГДА ПРИМЕНЯТЬ: ______________________
КОГДА НЕ ПРИМЕНЯТЬ и что вместо: ______________________

КАК РАБОТАЕТ
шаги: ______________________
состояния: ожидание / успех / ошибка / нет связи: ______________________
крайние случаи: ______________________

ТЕКСТЫ: ______________________
КОМПОНЕНТЫ (ссылки на библиотеку): ______________________
ПОЧЕМУ ТАК (данные, проверки, жалобы): ______________________

ГДЕ ИСПОЛЬЗУЕТСЯ
место ______________   заменено / в работе / позже / оставлено, причина ______________
место ______________   заменено / в работе / позже / оставлено, причина ______________

ЖУРНАЛ
__.__.____ · что изменилось ______________ · почему ______________
Раздел «Где используется» — это и есть план замены. Обновляйте статус, когда место заменено.

Часть 3 · Замена, по списку мест

  1. Замените два места: самое дорогое по ошибке и то, которое и так сейчас в работе.
  2. Остальным дайте статус и, где нужно, причину.
  3. Скажите команде: что за паттерн, где лежит, с какого дня новые экраны собираются по нему.
Как понять, что задание выполнено. Новый экран с этой задачей собран по паттерну кем-то другим.

Что должно получиться

  • Лист инвентаризации с тремя и больше решениями одной задачи.
  • Описание паттерна рядом с компонентами, со ссылками из них.
  • Список мест со статусами, два места заменены.
  • Сообщение команде и первая запись в журнале.

План работы: час на инвентаризацию, два на паттерн, замены — в ближайших задачах, которые и так трогают эти экраны.

Частые сложности

  • «Все три решения по-своему хороши». Для разных случаев — возможно. Тогда это два паттерна с ясной границей в разделе «Когда не применять», а не три решения одного случая.
  • «Владельцы экранов не хотят менять». Не требуйте менять всё сразу: новое — по паттерну, старое — когда экран трогают. Список со статусами покажет движение без давления.
  • «Паттерн написан, а экраны всё равно собирают по-своему». Проверьте, находится ли он из компонента. Если нет — дело не в людях, а в месте, где он лежит.
  • «Жалко выводить паттерн, который сам придумал». Вывод со статусом и заменителем — такая же часть работы, как ввод. Молча брошенный паттерн вредит больше: по нему продолжают собирать.

9Чек-лист и ошибки ступени

Паттерн готов, если

  • Решения задачи со всех экранов собраны на один лист
  • Решение выбрано по цене ошибки и данным, а не по вкусу
  • В описании есть «когда применять» и «когда не применять»
  • Описаны поведение, состояния и крайние случаи
  • Есть готовые тексты
  • Паттерн лежит рядом с компонентами, из компонентов на него есть ссылка
  • Места с разнобоем выписаны, у каждого статус
  • У паттерна есть статус, владелец и журнал изменений

Что мешает

  • Паттерн-картинка. Есть макет, нет «когда не применять» — и паттерн применяют везде.
  • «Заменим всё сразу». План на полгода, который никто не начинает.
  • Отдельный документ. О паттерне знают только авторы.
  • Молчаливое устаревание. Паттерн не работает, а в библиотеке висит как принятый.
  • Обманный паттерн в библиотеке. Его повторяют в каждом новом экране.

10Три ступени темы целиком

Тема прошла путь от одного экрана к продукту. Сначала все состояния экрана, потом экран на настоящих данных с описанным поведением. Теперь — одинаковые решения одинаковых задач во всём продукте.

СтупеньЧто нужно уметьКак проверить результат
Junior Перечислять состояния до макета; рисовать пустой экран с объяснением; выбирать индикатор загрузки; отличать ошибку ввода от ошибки системы; называть результат в подтверждении У экрана нет состояния, про которое разработка спросит «а что здесь показывать»
Middle Проверять экран на длинном тексте, сотнях строк, пустых полях, отсутствии прав и медленной сети; отличать состояние элемента от состояния экрана; описывать поведение словами Разработка задала по макету меньше трёх вопросов о поведении
Senior — этот урок Находить задачу, которую решают по-разному; собирать паттерн с «когда применять» и «когда не применять»; держать его рядом с компонентами; заменять разнобой по списку мест; выводить устаревшее открыто Новый экран с этой задачей собран по паттерну кем-то другим
Ориентир по этой теме: одинаковые задачи в продукте решаются одинаково, и это держится без вас — по описанию, которое находят там, где берут компоненты.

Что почитать дальше

  • The Atomic WorkflowAtomic Design, Брэд Фрост, глава 4 · книга на английском · полный текст открыт на сайте книгиКак провести инвентаризацию интерфейса: снимать по одному примеру каждого непохожего решения, раскладывать по категориям (ошибки, успех и загрузка — отдельная, их труднее всего поймать) и показывать разнобой всей команде. Это около трети главы; остальное — как продать дизайн-систему и работать без водопада.
  • Patterns · Contribution criteria · Component lifecycle statusesGOV.UK Design System · на английском · бесплатноЧем паттерн отличается от компонента в GOV.UK Design System и по каким пяти признакам решают, принимать ли новый: полезен многим командам, не повторяет существующее, проверен на людях, собран из готового, подходит разным сервисам. Третья ссылка — два статуса компонентов, «проба» и «стабильный».
  • Confirmation Dialogs Can Prevent User Errors — If Not OverusedNielsen Norman Group, Якоб Нильсен · на английском · бесплатноВосемь правил для подтверждений: спрашивать только перед тем, что уничтожает работу или стоит больших денег, называть последствия, подписывать кнопки действием («Удалить файл» и «Оставить файл» вместо «Да» и «Нет»), а для самых опасных действий просить ввести слово. Статья 2018 года, пересмотрена в 2026-м.
  • Release phasesAtlassian Design System · на английском · бесплатноТри фазы выпуска (Early Access, Beta, General Availability) и две фазы вывода (Intent to Deprecate, Deprecated): что значит каждая и можно ли брать компонент в новую работу. Стабильное не удаляют без объявленного заранее срока. Страница на минуту чтения.
  • Types of deceptive patternDeceptive Patterns, Гарри Бриньолл · на английском · бесплатноВосемнадцать типов обманных паттернов — от скрытых доплат до стыжения (confirmshaming) и подписки, которую трудно отменить: у каждого определение, пример, случаи из «Hall of shame», законы и решения регуляторов. У двух самых новых типов законов пока нет, только примеры.