Раздел 05

Токены

tokens/tokens.source.json — единый источник правды в формате W3C Design Tokens. Скрипт tokens/sync.js генерирует CSS-переменные для сайта. AI-агенты читают JSON напрямую.

Формат W3C

Каждый токен — объект с полями $type, $value и опциональным $description.

{
  "color": {
    "amber": {
      "500": {
        "$type": "color",
        "$value": "#F59E0B",
        "$description": "Базовый акцент. CTA, активные состояния."
      }
    }
  }
}

Структура

  • base — тема-независимые токены: янтарь, статусы, шрифты, размеры.
  • dark — токены тёмной темы (canvas, surface, text и т.д.).
  • light — токены светлой темы.

Как генерируется CSS

Скрипт tokens/sync.js читает JSON и пишет src/styles/tokens.css:

:root {
  --amber-500: #F59E0B;
  --status-success: #10B981;
  --font-sans: 'Golos Text', sans-serif;
}

[data-theme="dark"] {
  --canvas: #0A0A0B;
  --text: #F4F4F5;
}

[data-theme="light"] {
  --canvas: #FAFAF9;
  --text: #1C1917;
}

Для дизайнеров

Подключите tokens.css и используйте переменные: var(--amber-500), var(--canvas).

Для AI-агентов

Читайте tokens/tokens.source.json напрямую. Поле $description объясняет назначение каждого значения. См. также AGENTS.md в корне репозитория.

Команды

  • npm run dev — запуск с автогенерацией токенов (predev hook).
  • npm run build — сборка (prebuild регенерирует токены).
  • npm test — тесты sync-скрипта.