UI/UX дизайн

Дизайн-система: из чего она состоит и как проверить, что ею пользуются

Токены, компоненты, композиция — и команды в терминале, которыми видно, действительно ли системой пользуются, существует ли она только в макетах.

1 августа 2026 г.
2 мин чтения

Дизайн-система живет в продакшне-HTML. Не у Figma, не в репозитории с компонентами. Ее видно в том, сколько разных оттенков серого реально отдается браузеру, сколько на сайте вариантов кнопки «Купить» и одинаково ли ведет себя фокус на клавиатуре в чекате и в форме обратной связи. Все остальное – намерения.

Ниже — то, из чего систему составляют, и как увидеть своими глазами, пользуются ею или нет.

Что ломается, когда системы нет

Симптомы узнаваемы. В собранном CSS живет 40 оттенков серого, потому что каждый новый экран приносил свой. Кнопка «Отправить» на трех страницах имеет три разных высоты. Разработчик, получив макет новой главы, тратит полдня на выяснение того, какое отступление здесь «правильное», и наконец берет тот, что стоял в соседнем компоненте.

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

Три уровня: токены, компоненты, композиция

Уровень 1: токены

Токены – атомарные значения, на которые ссылается все остальное. Никакого "магического" числа в компоненте быть не должно.

:root {
  /* Цвета*/
  --color-primary-50: #f0fdf4;
  --color-primary-500: #22c55e;
  --color-primary-900: #14532d;

/* Типографика */
  --font-family-sans: 'Inter', system-ui, sans-serif;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;

/* Отступы */
  --spacing-1: 0.25rem;
  --spacing-2: 0.5rem;
  --spacing-4: 1rem;
  --spacing-8: 2rem;

/* Тени */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
}

Правило, которое экономит больше споров: в компоненте нельзя писать цвет напрямую. Только переменная. Нет нужного оттенка – это повод поговорить о токене, а не добавить еще один хардкод.

Уровень 2: базовые компоненты

// Button.tsx
interface ButtonProps {
  variant: 'primary' | 'secondary' | 'ghost'
  размер: 'sm' | 'md' | 'lg'
  children: React.ReactNode
  isLoading?: boolean
}

Теги

FigmaUXTailwind CSSReact

🤔Вам понравилась статья?

Ваше мнение помогает нам создавать лучший контент

Поделитесь с друзьями

Нашли что-нибудь полезное? 🚀

Помогите другим узнать это — поделитесь статьей в социальных сетях

https://lionex.com.ua/blog/design-system-guide

💚 Спасибо, что помогаете нам расти

Владислав Чистяков

Пише про те, що робить руками: інтернет-магазини на OpenCart, застосунки на Next.js, інтеграції та швидкість сайтів. У статтях — заміри й перевірки, які читач може повторити на своєму проєкті, а не загальні поради. Комерційна розробка з 2015 року.

Частые вопросы

Ответы на популярные вопросы по теме

Чтобы десять кнопок не превратились в десять разных кнопок. Система нужна не из-за размера проекта, а из-за количества рук и времени: как только над интерфейсом работает больше одного человека или правки длятся дольше нескольких месяцев, согласованность начинает рассыпаться сама. На маленьком проекте система тоже маленькая — токены и десяток компонентов, а не многотомная документация.

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

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

Это не проект с датой завершения, а способ работы. Первое, что даёт пользу сразу, — токены и базовые компоненты: после них новые экраны собираются заметно быстрее. Дальше система растёт вместе с интерфейсом и отдельного «завершения» не имеет. Срок на конкретный объём мы называем после разбора, в рабочих днях, и фиксируем в договоре.

Она не делает продукт удобным и не заменяет решения о том, что показывать человеку. Система убирает разнобой и ускоряет сборку экранов, но плохой сценарий, собранный из безупречных компонентов, остаётся плохим сценарием. Это инструмент согласованности, а не замена проектированию.

Получайте лучшие статьи на почту

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

Мы уважаем вашу конфиденциальность. Отписаться можно в любой момент.