Дизайн‑токены в no‑code UI‑редакторах для единых тем
Дизайн‑токены в no‑code UI‑редакторах помогают командам задать цвета, типографику, отступы и варианты один раз и затем выпускать согласованный интерфейс без гаданий.

Почему команды скатываются к несогласованному UI
Несогласованный интерфейс редко начинается как «проблема дизайна». Он начинается как проблема времени. Срочно нужен был объект — кнопку, карточку или форму — поэтому кто‑то скопировал элемент с другой страницы и подправил его, пока он не выглядел «почти так».
Так и просачиваются небольшие различия: два почти одинаковых синего, радиус угла меняется с 6 на 8, заголовок становится «немного жирнее», а отступы зависят от того, кто собирал экран. В no‑code редакторах сделать единичную правку ещё проще: контролы под рукой, и изменения кажутся безобидными.
По мере роста продукта дрейф ускоряется. Больше страниц — больше повторяющихся паттернов. Больше билдовщиков — больше личных вкусов. Больше участников — больше «быстрых исправлений» в изоляции. Если один человек делает портал для клиента, а другой — админку, вы получите две интерпретации одного бренда.
«На глаз» проявляется в повседневной работе: выбирать цвет, пока он «не будет выглядеть правильно», сдвигать отступы на пару пикселей, потому что экран кажется «слишком плотным», создавать новый стиль кнопки вместо использования существующего, смешивать размеры шрифтов, потому что дефолт «чуть маленький», или править один экран, не проверяя остальные.
Цена проявится позже. Ревью замедляются, потому что обратная связь становится субъективной («сделать похожим на ту страницу»). Переделки накапливаются, потому что изменения сложно применить повсюду. Веб и мобильные расходятся, потому что разные люди принимают похожие, но не идентичные решения.
Дизайн‑токены решают это, заменяя решения «почти достаточно» на общие значения. Интерфейс остаётся согласованным даже при росте команды и продукта.
Дизайн‑токены простыми словами
Дизайн‑токены — это именованные решения для вашего UI. Вместо «используйте этот синий» или «сделать кнопки просторными» вы даёте этим выборам понятные имена, которые любой может переиспользовать.
Токен — это не сырое значение. Сырое значение может быть 16px, #2563EB или 600 (вес шрифта). Токен — это ярлык, который объясняет, что это значение значит в вашем продукте, например space-4, color-primary или font-weight-semibold.
Это переключение решает проблему «на глаз». Когда люди подбирают значения интуитивно, вы постепенно собираете пять разных синих, три слегка отличающихся заголовка и отступы, которые меняются от экрана к экрану.
Токены работают лучше всего как единый источник правды. Если каждый экран и компонент ссылается на один и тот же набор имён, вы можете изменить внешний вид приложения везде, обновив несколько значений токенов, а не ища по десяткам экранов.
Токены также связывают дизайн и реализацию. Дизайнеры используют имена токенов в спецификациях, а билдёры используют те же имена в no‑code редакторе, так что дизайн переживает передачу.
Большинство наборов токенов укладывается в несколько категорий: цветовые роли (primary, background, text, danger), типографика (семейство шрифтов, размеры, веса, межстрочный интервал), шаги отступов (padding, margin, gaps), форма и глубина (радиусы, ширины границ, тени) и иногда анимация (длительности и кривые).
Набор токенов, который действительно нужен большинству продуктов
Большинству команд не нужна огромная библиотека токенов. Нужен небольшой ясный набор, который покрывает большинство экранов, чтобы люди перестали гадать с величинами. Это особенно важно в no‑code инструментах, где «вот только этот раз» правки распространяются быстро.
Практичный стартовый набор покрывает пять групп:
- Цвета: несколько брендовых ролей (primary, secondary), нейтральный набор (text, background, border) и ролями состояний (success, warning, error). Добавьте hover и disabled роли, если вы часто их используете.
- Типографика: одно семейство шрифтов (максимум два), компактная шкала размеров (например 12/14/16/20/24/32), веса, которые вы реально используете, и соответствующие межстрочные интервалы.
- Отступы: простая лестница (например 4/8/12/16/24/32) для padding и gap.
- Форма и эффекты: несколько радиусов (none/sm/md/lg), ширины бордюров и небольшой набор теней (0–3).
- Анимация (опционально): только если ваше приложение использует анимации — 2–3 длительности и 1–2 имени easing.
Одно правило сохраняет библиотеку в здравом виде: если значение встречается в трёх и более местах, сделайте его токеном. Если встречается один раз — относитесь к нему с подозрением, прежде чем оно станет «новой нормой».
Правила именования, которые предотвращают хаос токенов
Хорошие имена токенов предотвращают споры ещё до их начала. Если люди могут угадать токен без поиска, они будут его переиспользовать. Если не могут — создадут новый, и ваша тема распадётся.
Используйте семантику в первую очередь (не цвета)
Предпочитайте имена, которые описывают роль значения в UI, а не как оно выглядит. text-primary говорит всем, когда его применять. blue-600 — просто баночка с краской.
Полезный паттерн — две прослойки:
- Базовые токены: сырые строительные блоки, например
color-blue-600,space-16,font-14. - Семантические токены: роли UI вроде
text-primary,bg-surface,border-muted.
В no‑code редакторе семантические токены помогают не‑дизайнерам быстро выбрать правильное значение без «на‑глаз» подбора.
Правила добавления новых токенов
Большинство библиотек токенов путается потому, что «новое» становится поведением по умолчанию. Сделайте «переиспользование» поведением по умолчанию.
Держите правила простыми:
- Добавляйте токен только если он используется в 2+ местах или поддерживает реальное состояние (hover, disabled, error).
- Если это единичный случай — держите стиль локально в компоненте.
- Если два токена отличаются незначительно, выберите один и удалите другой.
- Если вы не можете объяснить назначение токена одним предложением — не добавляйте его.
Затем стандартизируйте названия. Выберите стиль написания (kebab‑case подходит), используйте стабильные префиксы (text-, bg-, border-, icon-, space-) и держите числовые шкалы последовательными (space-4, space-8, space-12, space-16).
Пошагово: определите токены из того, что уже используете
Относитесь к текущему UI как к доказательной базе. Прежде чем создавать что‑то новое, сделайте быстрый инвентарь: соберите скриншоты, инспектируйте стили и запишите все значения цветов, размеров шрифтов и отступов, которые вы реально видите в продакшене (включая «единственные» значения).
Далее сознательно уменьшите дубликаты. Обычно вы найдёте один и тот же серый в пяти близких hex‑значениях или отступы 14, 15 и 16. Выберите одно значение, которое оставить, и сопоставьте старые значения с ним. Здесь токены становятся практичными: вы перестаёте спорить о вкусе и начинаете соглашаться на небольшой набор общих решений.
Хорошая первая версия может быть собрана за один проход:
- Палитра токенов: сырые цвета (бренд, нейтралы, цвета статуса)
- Семантические токены: цвета по смыслу (text, background, border, success, warning)
- Шкала типографики: 6–8 размеров с понятными ролями (body, label, H1–H3)
- Шкала отступов: 6–10 шагов, которые можно переиспользовать везде
- Базовые компоненты: несколько стандартных радиусов и теней
Для каждого токена добавьте одно предложение руководства: где использовать и где не использовать. Пример: “text-muted — для подсказок, не для основных кнопок.”
Наконец, решите вопрос владения. Полезно назначить одного человека (или небольшую группу) для утверждения изменений с простым правилом: «Добавлять новый токен только если существующий не подходит.» Это сохраняет систему стабильной по мере роста продукта.
Как применять токены внутри no‑code UI‑редактора
Начните с дефолтов, которые наследуют все экраны: базовый текстовый стиль (шрифт, размер, межстрочный интервал, цвет), стили заголовков (H1–H3) и небольшой набор правил для отступов, чтобы страницы не выглядели случайными.
Далее сопоставьте токены с тем, как ваш инструмент называет настройки темы: переменные темы, глобальные стили, пресеты стилей или настройки дизайн‑системы. Цель — чтобы выбор «Primary» или «Space/16» выбирал токен, а не единственное значение.
Держите переиспользуемые стили сосредоточенными на паттернах, которые вы используете каждый день. Стартовый набор может включать стиль карточки (фон, бордер, радиус, padding, тень), стиль поля формы (лейбл, input, помощь), стили кнопок и плотность строк таблицы и состояния hover.
Состояния — место, где вкрадывается несогласованность, поэтому задайте их рано. Каждый интерактивный компонент должен иметь значения, управляемые токенами, для hover, focus, disabled и error. Фокус должен использовать один и тот же цвет и толщину обводки везде. Error должен использовать ту же пару цвета границы и текста.
Наконец, планируйте шаринг. Если рабочее пространство поддерживает шаблоны или переиспользуемые модули, поместите токены и базовые стили в «starter app», от которого новые проекты могут копировать настройки. Так новые экраны будут согласованы по умолчанию.
Варианты компонентов, которые остаются согласованными
Варианты — это точка, где система UI либо становится спокойной и предсказуемой, либо превращается в груду одноразовых правок. Варианты работают лучше, когда это тонкий слой, который мапится на токены для цвета, типографики и отступов.
Начните с небольшого набора ключевых компонентов, которые вы используете везде: кнопки, поля ввода, бейджи, алерты и карточки. Дайте каждому из них две размерности выбора: size и intent. Размер должен быть механическим (типографика и отступы). Intent — смысловой (семантические цвета).
Размер и назначение без догадок
Варианты по размеру остаются согласованными, когда они меняют только несколько токен‑свойств: размер шрифта, отступы и радиус. Варианты по назначению должны в основном менять цветовые роли (фон, текст, бордер) и никогда тихо не менять отступы.
Набор, покрывающий большинство продуктов:
- Размеры: sm, md, lg
- Назначения: primary, secondary, danger
- Состояния: default, hover, focus, disabled
Правила взаимодействия, которых команда может придерживаться
Определите правила состояний, применимые ко всем компонентам, а не только к кнопкам. Например: фокус всегда показывает видимое кольцо, hover последовательно повышает контраст, а disabled использует одинаковую непрозрачность и блокирует клики.
Добавляйте новый вариант только когда он представляет повторяющееся значение (например «danger»). Если это одноразовая потребность в раскладке — обычно это новый компонент или обёртка, а не вариант, который потом будут неправильно использовать все.
Как держать темы веба и мобильных согласованными
Когда продукт выходит на веб и мобильные, «тот же бренд» не всегда значит «одинаковые пиксели». Цель — чтобы экраны ощущались как одна семья, даже если платформы имеют разные дефолтные настройки.
Начните с общих токенов, которые хорошо переносятся: цветовые роли (background, surface, text, primary, danger), шкала типографики (размеры и веса) и токены отступов (4, 8, 12, 16, 24). Они убирают догадки и делают обновления предсказуемыми.
Затем примите реальные различия. Мобильный интерфейс требует больших зон для касания и часто чуть больше отступов. Веб нуждается в более плотных таблицах, сайдбарах и многостолбцовых макетах. Шрифты тоже могут различаться: бренд‑шрифт на вебе и системные шрифты на iOS/Android для читабельности и производительности.
Практичный подход — две прослойки: глобальные токены, которые передают смысл, и платформенные токены, которые определяют, как этот смысл рендерится.
- Глобальные:
color.text,color.primary,space.md,radius.sm,type.body - Только веб:
type.family.web,control.height.web,space.tableRow - Только мобильные:
type.family.mobile,control.height.mobile,space.touch
Держите имена компонентов согласованными (Button/Primary), даже если размеры отличаются. Перед релизом проверяйте контраст для обеих тем.
Управление: как токены остаются здоровыми со временем
Токены работают только если они остаются понятными и стабильными. Без лёгкого управления команды тихо добавляют «ещё один синий» или «ещё один отступ», и вы снова приходите к «на‑глаз».
Лёгкий процесс изменения токенов
Держите процесс небольшим, но реальным:
- Запрос: любой может попросить новый токен или изменение, приложив скрин и обоснование.
- Ревью: один дизайнер и один реализатор проверяют влияние на ключевые экраны.
- Утверждение: подтверждение имени, доступности (контраст, размер зоны касания) и действительно ли это новое значение.
- Релиз: публикуйте обновления по расписанию (еженедельно или по спринту), а не ad hoc.
- Коммуникация: сообщайте, что изменилось и чем пользоваться вместо старого.
Ведите простой чейнджлог с пометками об устаревании. Если старый токен заменяют, укажите, чем его заменить, поддерживайте его некоторое время и явно пометьте, чтобы новые экраны не использовали его.
Очистка — часть работы. Раз в месяц удаляйте неиспользуемые токены и варианты компонентов (или хотя бы помечайте их).
Сделайте токены удобными для всех
Не‑дизайнерам нужны примеры, а не теория.
Делайте: используйте лестницу отступов для gap‑ов и Primary Button‑вариант для основного действия.
Не делайте: не ставьте padding = “13px, потому что так выглядит правильно”, и не создавайте новый стиль кнопки под один экран.
Привязывайте работу с токенами к приоритетам продукта: новые фичи, ребрендинг и исправления доступности должны вести обновления токенов, а не личные предпочтения.
Частые ошибки и ловушки
Самый быстрый путь потерять выгоды от токенов — отнестись к ним как к свалке. Начинается с добрых намерений, затем накапливаются быстрые правки, и команда снова работает «на глаз».
Одна из ловушек — создавать слишком много токенов слишком рано. Если у каждого экрана свой цвет или отступ, вы не строите систему — вы каталогизируете исключения. Добавляйте новый токен только когда можете показать как минимум два места его использования.
Тихая проблема — допускать сырые значения в компонентах. Кто‑то ставит padding = 14px «только в этот раз» или использует hex прямо в карточке. Через недели никто не помнит, почему так было сделано. Сделайте привычкой: если это видно и повторяется — это должен быть токен.
Также следите за смешиванием типов токенов. Базовые токены (например gray-900 или space-4) описывают сырые значения. Семантические токены (например text-primary или surface-muted) описывают смысл. Проблемы начинаются, когда один компонент использует базовые токены, а другой — семантические для одной и той же роли.
Состояния — ещё одна боль на поздних этапах. Команды часто определяют нормальные стили, а hover, focus, disabled и error пачками правят перед релизом. Так появляются несогласованные фокус‑кольца и три разных «error» красных.
Перед масштабированием проведите быструю проверку ловушек:
- Ограничивайте новые токены общими нуждами, а не одноразовыми экранами
- Избегайте сырых значений внутри компонентов
- Разделяйте базовые и семантические токены и применяйте их последовательно
- Определите состояния (focus, error, disabled) заранее
- Оставьте место для тёмной темы или будущего ребренда, меняя семантические токены, а не переписывая компоненты
Быстрый чек‑лист перед масштабированием
Прежде чем разворачивать UI на новые экраны, команды, или продукты, проверьте, хватает ли основания, чтобы копировать без догадок.
- Цветовые роли семантические. Токены покрывают текст (default, muted, inverse), поверхности (page, card), бордюры (default, focus) и статусы (success, warning, danger).
- Типографика соответствует небольшой шкале. Короткий набор текстовых стилей (H1–H3, body, small) с определённым размером, весом и межстрочным интервалом.
- Отступы по запоминающейся лестнице. Распространённые паддинги и gap‑ы берутся из плотной лестницы (4, 8, 12, 16, 24). Если постоянно появляется «14» — знак, что лестница требует доработки.
- Ключевые компоненты имеют варианты. Самые используемые компоненты имеют размеры (sm/md/lg) и назначения (primary/secondary/danger), которые соответствуют ролям токенов.
- Владение ясно. Один человек (или небольшая группа) утверждает изменения по лёгкой процедуре: зачем, влияние и когда выпускать.
Пример: остановить дрейф UI в портале и админке
Небольшая команда строит два приложения одновременно: портал клиента и внутреннюю админку. Разные люди трогают разные экраны и работают быстро в no‑code редакторе. Через несколько недель интерфейс начинает «не складываться», хотя никто и не может назвать конкретную проблему.
До токенов комментарии к ревью накапливаются: кнопки почти одинаковые, но чуть разные, отступы скачут, поля форм не совпадают, и портал по ошибке кажется «дружелюбным», а админка — «строгой».
Они решают это, введя небольшой практичный набор токенов. Они задают семантические цвета (Primary, Success, Danger, TextMuted), шкалу отступов (4, 8, 12, 16, 24) и варианты кнопок (Primary, Secondary, Ghost) с одним радиусом и согласованными состояниями.
Теперь контрибьюторы перестают выбирать случайные hex‑коды и размеры шрифтов на каждом экране. Они выбирают токены и варианты, так что каждая новая страница наследует одни и те же решения.
Сборка идёт быстрее, потому что выбор уже сделан. Ревью переходят от мелких визуальных правок к реальным UX‑вопросам. «Сделай эту кнопку primary‑вариантом» заменяет «сделай её чуть более синей и на пару пикселей выше».
Потом случается небольшой ребренд: меняется primary‑цвет и ужимается шкала шрифтов. С токенами команда обновляет несколько значений один раз, и портал и админка обновляются одновременно.
Следующие шаги: начните с малого, затем стандартизируйте
Выберите один поток, который часто используется и там очевиден дрейф — например онбординг, страница настроек или простая форма. Конвертация одного потока — самый быстрый способ доказать идею и остановить «на‑глаз» подход.
Начните с небольшого безопасного набора токенов: primary/background/text/border/danger, короткая шкала типографики, лестница отступов и 2–3 уровня радиусов и теней. Затем создайте крошечный набор компонентов, который использует только токены: одна кнопка, одно поле, одна карточка, один алерт. Добавляйте варианты только когда они решают реальную задачу.
Запустите короткое ревью с командой, используя два скриншота: «до» — с несогласованными отступами и шрифтами, и «после» — собранный с помощью токенов и вариантов. Согласуйте пару правил (например «без жестко заданных цветов» и «отступы должны быть токенами») и исправьте топ‑несоответствия в первую очередь.
Для развёртывания сначала переводите новые экраны, затем постепенно приводите в порядок старые по мере их редактирования. Когда саппорт просит новую фильтрацию в админке — перестройте этот экран с использованием токенов и замените только то, что редактируете.
Если вы строите полноценные продукты (backend, веб и мобильные) в AppMaster, полезно задать токены и переиспользуемые UI‑стили рано, чтобы новые экраны наследовали одинаковые решения. Так визуальная согласованность и логика приложения могут развиваться вместе без повторной очистки позже.
Вопросы и ответы
Дрейф интерфейса обычно начинается с мелких правок «только в этот раз»: копирование компонента, подгонка отступов или выбор цвета «на глаз». Со временем такие небольшие отличия накапливаются по страницам и участникам команды, и ревью превращаются в субъективные споры вместо быстрых проверок по общим правилам.
Дизайн‑токены — это именованные решения по элементам UI, которые люди переиспользуют вместо того, чтобы гадать с сырыми значениями. Значение может быть 16px или #2563EB, но имя токена объясняет назначение — например space-16 или color-primary — чтобы все выбирали одно и то же в одинаковых ситуациях.
Начните с ролей цвета, типографики, отступов и небольшого набора радиусов и теней. Это покрывает большинство экранов и устраняет основные проблемы «на глаз», при этом набор токенов остаётся достаточно компактным, чтобы люди реально им пользовались.
Практическое правило — создавать токен, когда значение встречается в двух и более местах или когда оно поддерживает состояние (hover, focus, disabled, error). Если значение действительно единственное, держите его локально в компоненте, чтобы оно не стало случайно глобальным стандартом.
Семантические имена описывают назначение токена — например text-primary или bg-surface — чтобы люди могли выбирать правильно без запоминания палитры. Сырые имена вроде blue-600 полезны как базовый строительный блок, но если компоненты полагаются на них напрямую, цвета легче использовать неправильно.
Проведите аудит того, что уже в продакшене: соберите цвета, размеры шрифтов и отступы, которые реально используются, затем сознательно объедините близкие значения. Когда у вас есть компактный набор, сопоставьте старые значения с ближайшими токенами, чтобы новые экраны ссылались на токены, а не заново вводили «почти такие же» значения.
Сначала задайте глобальные значения по умолчанию, затем сопоставьте токены с тем, как ваша платформа называет настройки темы (переменные темы, глобальные стили, пресеты стилей). После этого создайте небольшой набор переиспользуемых стилей для привычных компонентов и убедитесь, что их состояния (hover, focus, disabled, error) тоже используют токены.
Держите варианты простыми и предсказуемыми: ограничьте их размером и назначением. Размер должен менять лишь несколько токен‑управляемых свойств (размер шрифта, отступы), а назначение — в основном подменять семантические цветовые роли, чтобы, например, кнопка «danger» не меняла незаметно отступы или типографику.
Делитесь глобальными семантическими токенами между платформами, чтобы смысл оставался единым, а платформо‑специфические токены решали различия: размеры касаний, плотность, семейства шрифтов. Цель — «одно семейство, не одинаковые пиксели»; веб и мобильные будут ощущаться согласованно, но сохранят особенности платформы.
Назначьте владельца и используйте простой процесс проверки изменений, чтобы новые токены не добавлялись как «быстрые починки». Публикуйте обновления по расписанию, декларируйте устаревшие токены и не удаляйте их мгновенно. Это помогает системе оставаться стабильной по мере роста числа людей, которые создают экраны, в том числе в AppMaster‑проектах.


