0+

Определение токенов

Токен — именованное решение, а не случайное число. Вместо «вот этот голубой» и «вот 13 пикселей» система держит сущности, к которым можно обратиться по имени, переиспользовать и преобразовать под носитель.

Токен — не только CSS‑переменная. Он связывает макет, код, тему, документацию и производство. На экране его произносят как --c4 или --1s. На бумаге — той же ролью в миллиметрах и краске. На площадке — шагом человека и цветом ткани. Имя одно. Единица может быть разной.

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

1. Токен — атом решения

Токен — минимальная именованная единица: цвет, шаг, радиус, край, тень, длительность, форма, материал. Главное свойство — звать решение по имени, а не ловить его значением.

В ЮАИ сырьё цвета — шкала --c0 … --c11. Сырьё ритма — точка морфинга --1s и ступени --01s … --20s. Пока решение живёт в имени, его можно сдвинуть в корне. Пока оно зашито hex или px внутри блока, корень его не знает.

2. Три слоя, не склад чисел

Устойчивая архитектура отвечает на три разных вопроса. Путать слои — частая ошибка новичка: он либо пишет в контент сырой hex, либо заводит «токен кнопки» на один макет.

Примитив

Какое значение существует? --c4, --1s, --1_5s. Нейтральное сырьё, без должности.

Семантика

Что это значит? Поверхность страницы, текст, действие, отклик, шаг поля. В ЮАИ роль чаще всего названа классом: .bg0, .c0, .bg5, .pad.

Орган

Где применяется? Кнопка, поле, карточка, рамка сертификата. Орган берёт семантику, не прыгает сразу к hex.

Цепочка ЮАИ такая: --c4 → роль действия → кнопка или плашка на листе. Примитив даёт наличие. Семантика даёт смысл. Орган даёт место. Носитель даёт единицу измерения.

3. Примитив не носит должность

Имя --c4 не должно значить «фон этой кнопки». Один и тот же примитив может окрасить действие, край, заливку знака, плашку печати. Если сырьё назвать в честь одной кнопки, тему уже не переназначить: все должности приклеены к одному месту.

Смысл появляется на семантическом слое. Поэтому в контенте почти не пишут var(--c4) руками. Пишут класс роли. Класс держит должность. Тема подменяет сырьё под этой должностью.

4. Точка морфинга и шкала шага

--1s — база ритма. На широком экране обычно 16px, на узком и в ландшафте считается от ширины, на больших мониторах чуть растёт, в печати задаётся отдельно. Имена ступеней те же:

--01s --017s --025s --05s --075s --1s --1_25s --1_5s --2s --2_5s --3s --4s --5s и дальше до --20s.

Смысл не в пикселе. Смысл в том, что «один шаг» и «полшага» называются одинаково в карточке сайта, в поле формы и в модуле листовки. Класс .pad — один шаг внутрь. .pad2 — два. .margin — шаг снаружи. Выдумать «отступ 13px, потому что так влезло» — выйти из шкалы.

5. Шкала цвета и роли классов

В светлой теме --c0 — самый тёмный текст, --c10 — поверхность страницы, --c11 — прозрачность. Акценты: --c4 голубой действия, --c5 салатовый отклик.

В тёмной теме шкала зеркалится сама. Имена ролей не меняют. Поэтому семантический слой выдерживает смену режима: компонент по‑прежнему просит «текст» и «поверхность», а не «почти чёрный» и «почти жёлтый».

Грамматика фона.

Класс .bg0 красит поверхность страницы и берёт --c10. Нумерация фона зеркальная к номеру текста. Это не ошибка. Кто пишет «bg0 значит тёмный» — путает имя роли и номер сырья.

Текст: .c0 … .c10. Фон: .bg0 … .bg11. Край: .br включает рамку, .br0 … .br10 красят её в --c0 … --c10. Обычно пишут оба: br br4. Заливка знака: .ui_fil0 … .ui_fil11.

bg0
bg1
bg5
bg6
bg9
bg10

Откуда берётся сама шкала темы. Базовый алгоритм — Соляризатор цвета Лето ЮАИ. Он собирает палитру в духе лета и отдаёт её ролям --c0…--c10. В контент значения не копируют. Копируют классы.

6. Радиус и край — тоже токены

Острота угла не «16 пикселей с макета». Класс .rounded берёт var(--1_5s): радиус дышит вместе с --1s и подстраивается под тему. .rounded-top скругляет только верх. .circle делает круг. Свой border-radius в px выдёргивает блок из темы: тема больше не знает этот угол.

Рамку включают ролью, не толщиной в стилях. Без .br цвет края не проявится как задумано. Связка br br4 — типичный край действия. Цвет края мутирует со светлой, тёмной и кастомной темой.

7. Органный слой и состояния

Компонентный токен нужен, когда у органа своя анатомия и свои состояния. В ЮАИ этот слой не плодят в контенте отдельными переменными «радиус этой карточки». Орган берёт семантические классы и наследует поведение темы.

Карточка: bg1 rounded pad boxshadow. Поле формы: поверхность, шаг, скругление. Кнопка: нативный control и роль действия. Если значение живёт только внутри одной кнопки одного макета — это не глобальный токен, это локальный долг.

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

8. Тема — переназначение, не вторая система

Тема не рисует новый ЮАИ. Тема подменяет значения под теми же именами. Светлая, тёмная, кастомная, печатная, высококонтрастная — разные положения ручки, один словарь ролей.

Тема может сменить не только цвет. Она может сменить остроту угла, плотность, допустимый контраст, материал листа. Пока контент говорит классами, блок переезжает сам. Пока в блоке зашит hex из соляризатора «для точности», тема этот кусок уже не ведёт.

9. Токены вне экрана

  • Печать. Те же роли в краске и в модуле миллиметров. Радиус не обязан совпасть в мм с экраном. Обязана совпасть ступень характера: мягкий орган ЮАИ, не чужой острый прямоугольник.
  • Крупная форма. Баннер читают с десяти метров. Токен текста там — ступень «заголовок носителя», не экранный --1s. Роль акцента сохраняется.
  • Лента и бот. Часто нет CSS ЮАИ. Едут текст, знак, короткая формула действия. Токены становятся ограничениями: не вводить третий акцент, не орать капсом вместо иерархии.
  • Пространство. Токен расстояния — шаг человека. Токен акцента — свет, ткань, табличка. Если сцена зелёная, а действие системы голубое, это решение языка, не случайность подрядчика.

10. Имя, перенос, новый токен

Имя — часть архитектуры. Примитив зовут по месту в шкале: --c4, --2s. Семантику зовут по должности: поверхность, текст, действие. Не называют токен в честь случайной страницы, если роль шире этой страницы.

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

Новый токен заводят, когда роль повторилась на двух носителях и не выражается текущим словарём. Разовый «чтобы влезло» — не токен. Это долг, который потом вычищают.

Что запомнить сборщику

Токены — не склад чисел. Они отвечают: какое значение есть; какую роль играет; где применяется; какие состояния держит; как меняется в теме; как произносится на другом носителе; какие ограничения нельзя снять.

В контенте это выглядит просто. Цвет — .c / .bg / .br. Шаг — .pad и .margin. Угол — .rounded. Hex, 13px и «чуть скруглил руками» не мутируют. Поэтому их в контент не кладут: иначе носители перестают быть одной биосферой.