Чтение 6 минут

Дизайн-система: как масштабировать продукт и сохранить единый стиль


Дизайн-система: как масштабировать продукт и сохранить единый стиль - Студия Вебтую

Пока продукт состоит из десятка экранов, единый стиль держится на памяти команды. Когда экранов становится сотни, а над ними работают несколько дизайнеров и разработчиков, память перестаёт справляться: кнопки отличаются на два пикселя, оттенков серого набирается полтора десятка, одна и та же форма ведёт себя по-разному в двух разделах. Дизайн-система — это способ вынести договорённости из головы в общий и проверяемый набор правил. Разберём, из чего она состоит, как её собирать и что делает её живой, а не красивой презентацией.

Когда дизайн-система нужна, а когда достаточно UI-кита

Дизайн-система стоит времени, поэтому начинать её имеет смысл не всегда. Мы ориентируемся на несколько признаков: над интерфейсом работает больше одного дизайнера, продукт живёт дольше года и продолжает развиваться, есть несколько платформ или несколько продуктов одной компании, а на согласование мелких решений регулярно уходит больше времени, чем на сами решения.

Если продукт небольшой и меняется редко, хватает библиотеки стилей и набора готовых макетов. Разница простая: UI-кит отвечает на вопрос «как это выглядит», дизайн-система дополнительно отвечает на вопросы «когда это использовать», «как оно себя ведёт» и «кто и как вносит изменения».

Из чего состоит дизайн-система

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

УровеньЧто в него входитПризнак, что уровень не готов
ТокеныЦвета, шрифты, размеры, отступы, радиусы, тени, тайминги анимацийВ макетах встречаются произвольные значения, подобранные на глаз
КомпонентыКнопки, поля, переключатели, таблицы, модальные окна, уведомленияОдин и тот же элемент собран заново в каждом макете
ПаттерныФормы, фильтры, пустые состояния, ошибки, загрузка, пагинацияВ каждом разделе своя логика подтверждения и своя обработка ошибок
ПравилаТон текстов, работа с ошибками, доступность, поведение на узких экранахФормулировки в интерфейсе противоречат друг другу
ПроцессКак вносятся изменения, кто согласует, как выходят версииКомпоненты правят напрямую, команда узнаёт об изменениях случайно

Чаще всего проекты застревают на втором уровне: библиотека компонентов собрана, а правил и процесса нет. Через несколько месяцев такая библиотека расходится с продуктом и превращается в архив.

Аудит интерфейса: с чего мы начинаем

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

  • Сколько на самом деле используется цветов, размеров шрифта и величин отступов.
  • Какие элементы решают одну задачу разными средствами и могут быть объединены.
  • Какие состояния нигде не проработаны: ошибка, загрузка, пустой список, длинный текст, отсутствие прав.
  • Что из этого встречается на большинстве экранов, а что было сделано один раз под конкретную задачу.

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

Токены: основа, с которой всё связывается

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

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

Компонентная библиотека: что включать и как описывать

Компонент попадает в библиотеку не потому, что он удачно выглядит, а потому, что он повторяется и его поведение можно описать. Для каждого мы фиксируем набор свойств, все состояния и границы применения.

  1. Назначение: какую задачу компонент решает и чем отличается от соседнего похожего.
  2. Свойства: размеры, варианты оформления, наличие иконки, ширина по содержимому или по контейнеру.
  3. Состояния: обычное, наведение, фокус, нажатие, отключено, загрузка, ошибка.
  4. Поведение на разных ширинах экрана и при длинном тексте.
  5. Требования доступности: контраст, размер зоны нажатия, работа с клавиатуры, подписи для программ чтения с экрана.
  6. Примеры уместного и неуместного применения — короткие, с пояснением почему.

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

Как связать макеты и код

Дизайн-система приносит пользу, когда одно и то же название означает одно и то же в макете и в разметке. Мы добиваемся этого простыми средствами: общий словарь имён для токенов и компонентов, выгрузка токенов в переменные стилей, отдельная страница с живыми компонентами, где их можно посмотреть в браузере во всех состояниях.

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

Что поддерживает систему в рабочем состоянии

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

  • Регулярная сверка макетов с продуктом: раз в один-два месяца проверяем, не появились ли элементы вне системы.
  • Автоматические проверки в сборке: контраст, использование токенов вместо произвольных значений, наличие подписей у интерактивных элементов.
  • Визуальные тесты компонентов, чтобы правка базового элемента не ломала соседние экраны незаметно.
  • Короткая инструкция для новых участников команды: где лежит система, как ей пользоваться, как предложить изменение.

Ошибки, из-за которых системы перестают работать

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

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

Если нужно навести порядок в интерфейсе продукта или собрать дизайн-систему с нуля, мы можем взять эту работу на себя — от аудита текущих экранов до библиотеки компонентов и правил её развития. Посмотрите, как мы делаем проектирование веб-интерфейсов, и расскажите нам о продукте.

Нужно спроектировать интерфейс?

Соберём прототип до начала разработки — от 72 000 руб.

Проектирование интерфейсов

По теме статьи

Мы это уже делали

Похожие статьи

Нужен новый сайт?

Оставьте контакты — вернёмся с вопросами по задаче и ориентиром по срокам и стоимости.

Читайте также

Разбираем задачи, с которыми к нам приходят: от структуры сайта до поддержки и продвижения.

Внимание: мошенники представляются сотрудниками Вебтую Внимание: мошенники представляются сотрудниками Вебтую Посторонний человек обращается к рекламным и маркетинговым агентствам от имени Вебтую через Telegram-аккаунт @vetaroki22010, заказывает работы и не оплачивает и 10-09-2026 Читать Работа в digital: процессы, инструменты и команда Работа в digital: процессы, инструменты и команда Цифровые проекты редко проваливаются из-за технологий: чаще мешает организация работы. Разбираем этапы, роли, постановку задач, инструменты распределённой коман 30-08-2026 Читать Реклама и аналитика: как считать заявки, а не клики Реклама и аналитика: как считать заявки, а не клики Показы и клики не отвечают на вопрос, сколько принесла реклама. Разбираем, как настроить цели, разметить источники, учесть звонки и связать заявку со сделкой, ч 30-08-2026 Читать Поддержка сайта: обновления, резервные копии и безопасность Поддержка сайта: обновления, резервные копии и безопасность Сайт без регулярного обслуживания ломается предсказуемо. Разбираем, из чего состоит поддержка: обновления, резервные копии, доступы, безопасность, выбор хостинг 30-08-2026 Читать Техническое SEO: индексация, скорость и структура сайта Техническое SEO: индексация, скорость и структура сайта Техническая часть сайта решает, попадут ли страницы в индекс и дождётся ли их посетитель. Разбираем структуру и адреса, индексацию и дубли, работу с устаревшими 30-08-2026 Читать Продвижение сайта в поиске: стратегия, семантика и ссылки Продвижение сайта в поиске: стратегия, семантика и ссылки Разбираем продвижение сайта в поиске от постановки цели до регулярной работы: как собрать и разложить семантику по страницам, что должно быть на посадочной стра 30-08-2026 Читать Тексты для сайта: как писать, чтобы читали и покупали Тексты для сайта: как писать, чтобы читали и покупали Как выбрать тему для страницы и построить текст, который просматривают глазами и дочитывают, чем заменить оценочные формулировки, как переработать существующую 30-08-2026 Читать Автоматизация бизнеса: CRM, ERP и искусственный интеллект Автоматизация бизнеса: CRM, ERP и искусственный интеллект С чего начинать автоматизацию и что автоматизировать в первую очередь, чем различаются CRM, ERP и системы документооборота, внедрять по модулям или всё сразу, г 30-08-2026 Читать Как устроена разработка: технологии, тестирование и инструменты Как устроена разработка: технологии, тестирование и инструменты Из чего состоит веб-проект, как выбирают язык, фреймворк и базу данных, зачем нужны тестирование и контроль версий, где заканчиваются возможности low-code и ген 30-08-2026 Читать Создание сайта: от технического задания до запуска Создание сайта: от технического задания до запуска Проекты срываются не из-за технологий, а из-за неясных договорённостей. Разбираем весь путь создания сайта: как сформулировать цель, что должно быть в техническ 30-08-2026 Читать
Обсудить проект