Архитектура дизайн-токенов: цвет, типографика, отступы
Мы провели аудит дизайн-процессов и выявили «узкие места», замедляющие разработку. Часто причина неэффективности — отсутствие единого языка между дизайном и кодом. Чтобы решить эту проблему, мы переходим от рисования статичных макетов к проектированию систем.
От атомарного дизайна к токенизации
В основе современной методологии лежит Атомарный дизайн. Мы разделяем интерфейс на мельчайшие частицы (атомы), из которых собираем молекулы и организмы. Но в современной разработке просто иметь библиотеку компонентов недостаточно — нужно управлять данными, которые стоят за этими компонентами.
Для этого используют Design Tokens (дизайн-токены). Это визуальные атомы системы, представленные в виде переменных. Вместо того чтобы передавать разработчику HEX-код цвета или значение отступа, вы передаете имя переменной.
Иерархия и семантика токенов
Эффективная архитектура строится на трех уровнях вложенности. Это делает систему гибкой: вы сможете сменить брендинг или внедрить темную тему за считанные минуты, не перерисовывая компоненты.
Как устроена эта вложенность, можно увидеть на Схеме 1.
- Primitives (Примитивы): Базовые значения. Например,
blue-500со значением#2F80ED. Они определяют палитру, но не несут смысла. - Semantic Tokens (Семантические токены): Описывают роль элемента. Например,
action-primary-bgссылается на примитивblue-500. - Component Tokens (Компонентные токены): Узкий уровень для конкретных элементов, например
button-submit-padding.
Пример правильного наследования для кнопки:
- Primitive:
color-brand-blue: #0052CC - Semantic:
surface-action-active: {color-brand-blue} - Component:
button-primary-background: {surface-action-active}
Использование Семантических токенов — критически важный навык. Вы перестаете думать категориями «сделай это красным» и начинаете думать «сделай это критическим».
Ошибка именования:
Использовать токен text-red для сообщения об ошибке. Если бренд решит, что ошибки должны быть оранжевыми, название text-red станет ложным и запутает разработчиков.
Правильно:
Использовать text-error или text-critical. Значение внутри может измениться, но смысл (семантика) останется прежним.
Практика в Figma: переменные и режимы
Основной инструмент для работы с токенами — Figma Variables. В отличие от стилей (Styles), переменные поддерживают логику и режимы (Modes).
Работа с отступами и сеткой
Для системных отступов используйте числовые переменные (Number Variables) с шагом 4px или 8px. Это обеспечит визуальный ритм.
Для расчета шкалы отступов применяется формула: Где — это 4px или 8px, а — шаг в иерархии.
Настройка темной темы
Благодаря семантическому слою создание темной темы сводится к добавлению нового режима в коллекции переменных. Вы просто переназначаете, на какие примитивы ссылаются семантические токены в режиме Dark.
Задание: Создание токенизированной палитры
- В Figma создайте Local Variable Collection «Primitives». Добавьте 3 оттенка серого.
- Создайте вторую коллекцию «Semantic» и переменную
bg-primary. - Свяжите
bg-primaryс самым светлым серым из примитивов. - Добавьте в коллекции «Semantic» второй режим (Mode) — «Dark».
- В режиме «Dark» свяжите
bg-primaryс самым темным серым из примитивов. - Примените токен к фрейму и переключите режим слоя, чтобы проверить смену темы.
Чек-лист именования (Naming Convention)
Чтобы архитектура была понятна коллегам, придерживайтесь структуры:
[System]-[Category]-[Item]-[Subitem]-[State]
- System: Продукт или тема (например,
crm). - Category: Тип (например,
color,spacing,radius). - Item: Объект (например,
button,surface,text). - Subitem: Роль (например,
primary,success,muted). - State: Состояние (например,
hover,disabled).
Мы заложили фундамент «живой» системы. Теперь, когда у нас есть архитектура токенов в Figma, нужно передать эти данные разработчикам без ручного копирования HEX-кодов.
В следующей теме мы разберем, как превратить переменные в JSON-спецификации и настроить автоматический мост между дизайном и кодом.
Понравился урок?
Сохраните прогресс и получите персональный курс по любой теме — без форм и паролей
Продолжить в Telegram