В этой статье
UI kit дает команде набор элементов интерфейса для повторного использования. Дизайн-система добавляет правила, ответственность и процесс проверки, чтобы эти элементы оставались полезными по мере изменения продукта. Стартапу не нужно выбирать один вариант навсегда. Начните с небольшого набора, если повторяющимся экранам нужна согласованность; добавляйте практики системы, когда различия и переделки обходятся достаточно дорого, чтобы оправдать затраты на сопровождение.
Например, команде, которая впервые проектирует клиентскую панель, могут понадобиться общие компоненты: кнопка, поле ввода и карточка. Если одни и те же паттерны используются в веб-приложении, мобильном приложении и рабочем пространстве администратора, нужно больше: определения состояний, правила для контента, проверки доступности, примеры реализации и человек, который решает, как выпускать изменения. Общие компоненты и стили Pixso помогают хранить дизайн-ресурсы, но правила их использования команда должна согласовать сама.
Разница не в количестве компонентов
UI kit обычно представляет собой набор визуальных строительных блоков: кнопок, полей, иконок, карточек, навигации и примеров экранов. Он может стать полезной отправной точкой, даже если содержит всего несколько паттернов. Его ценность — в быстрой сборке экранов и общей визуальной основе.
Дизайн-система включает эти ресурсы, но также отвечает на вопросы, которые сам набор не решает. Какой вариант кнопки использовать для подтверждения удаления или другого разрушительного действия? Как показать сообщение об ошибке и озвучить его для пользователя? Что произойдет, если переведенная подпись займет две строки? Кто утверждает изменение компонента и что разработчикам нужно обновить при переименовании токена? Эти решения превращают набор файлов в поддерживаемые договоренности между дизайном, контентом и разработкой.

Когда достаточно небольшого UI kit
Выбирайте компактный набор, если небольшая команда исследует один продукт, повторяющихся паттернов мало, а исключения можно обсудить напрямую. Создавайте компоненты, которые уже повторяются на реальных экранах, а не каталог всех мыслимых будущих элементов управления. Для ранней версии панели это могут быть основное действие, текстовое поле, индикатор статуса, пункт навигации и карточка контента. Покажите хотя бы их распространенные состояния, включая недоступность и ошибку там, где они применимы.
Рядом с каждым компонентом оставьте краткое описание: его назначение, варианты и пример ситуации, когда его использовать не следует. Это требует немного времени и не дает набору превратиться в папку с красивыми, но неоднозначными фигурами. Не называйте аккуратную библиотеку дизайн-системой, если никто не отвечает за изменения, не документирует использование и не проверяет соответствие реализованных экранов.
Признаки того, что одного набора уже недостаточно
Повод для перехода — стоимость повторных решений, а не раунд инвестиций или заданная численность команды. Ищите конкретные признаки:
- Один компонент скопирован в несколько файлов и в каждом получает разные исправления.
- Дизайнеры и разработчики снова и снова выясняют, какой цвет, отступ или вариант поведения считается основным.
- Проблемы доступности или локализации повторяются, потому что ограничения компонента не задокументированы.
- Изменение общего паттерна создает незапланированную работу в нескольких продуктах или командах.
- Проверяющие не могут отличить намеренный вариант от случайного расхождения.
Если такие проблемы возникают изредка, улучшайте набор и пояснения к нему. Если они регулярно отнимают время на проверку, вводите системные практики для паттернов, вызывающих больше всего переделок. Один ответственный и понятный процесс изменений могут помочь больше, чем новая масштабная классификация компонентов.

Практический переход от набора к системе
- Проверьте паттерны в выпущенном продукте. Найдите кнопки, поля, карточки и элементы навигации, которые уже повторяются. Сравните реальные состояния и зафиксируйте существенные различия.
- Называйте базовые элементы по роли. Определите семантические роли цветов, типографики и отступов, затем свяжите с ними самые используемые компоненты. Роль вроде
text/primaryлучше переживет смену палитры, чем название оттенка, прописанное на каждом экране. - Полностью опишите один компонент. Для поля формы задайте подпись, подсказку, ошибку, недоступное состояние и состояние фокуса. Учтите длинную подпись и узкий экран. Если существует соответствующая реализация, явно укажите ее.
- Назначьте ответственных. Укажите, кто может предлагать изменение, кто его проверяет и как команды, использующие компонент, узнают об изменении, нарушающем совместимость. Без ответственного за решения компонент со временем распадается на отдельные версии.
- Выпускайте изменения небольшими шагами. Опубликуйте один согласованный паттерн, примените его в реальной функции, соберите исключения и уточните рекомендации. Затем повторите процесс для следующего затратного паттерна.
В Pixso общая библиотека позволяет повторно использовать согласованные компоненты и стили в дизайн-файлах. Но сама библиотека не гарантирует автоматически, что выпущенный код следует тем же правилам. Свяжите исходный дизайн с примерами реализации и проверяйте расхождения при передаче в разработку.

Пример: форма заявки в двух продуктах
Предположим, у стартапа есть внешняя контактная форма и внутренняя форма обращения в поддержку. Обеим нужны текстовое поле и состояние подтверждения отправки, но внутренняя форма дополнительно содержит поле исполнителя. Сначала повторно используйте из набора одинаковую структуру поля, оформление фокуса и расположение сообщения об ошибке. Не заставляйте внешнюю форму показывать ненужное поле исполнителя только ради визуального единообразия.
По мере развития обеих форм запишите общее правило: подпись остается видимой, проверка ввода объясняет, как исправить ошибку, а после отправки заявки пользователь видит, что произойдет дальше. Опишите необязательное поле исполнителя как композицию для конкретного продукта, а не отдельную ветку базового поля. До публикации паттерна проверьте длинную переведенную подпись и поведение на узком экране. В этот момент набор начинает работать как система: у компонента появляются назначение, ограничения, примеры и ответственный, способный оценивать изменения.
Сохраняйте размер системы, который сможете поддерживать
Система добавляет работу. Кто-то должен отвечать на вопросы, проверять предложения, сообщать об изменениях и выводить из использования неподходящие паттерны. Если команда не может заниматься этим, небольшой ухоженный набор лучше сложной библиотеки, которой никто не доверяет. И наоборот: если одну проблему снова и снова исправляют в нескольких местах, расходы на сопровождение, возможно, уже существуют — просто они скрыты в переделках.
Оценивайте внедрение по реальным экранам и реализации. Используют ли команды согласованный компонент повторно? Приходится ли им заново собирать типовые состояния? Какие исключения действительно вызваны различиями продуктов? По ответам решайте, стоит ли расширять систему. Цель — не максимальное количество ресурсов, а более простые и безопасные повторяющиеся решения.

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