Tokens

Импорт Переменных и Стилей

Импорт локальных переменных и стилей Figma в token JSON: режимы Smart/Strict/Generate, обновление config.json и поддержка round-trip через diff-id.

Overview

Импорт Переменных и Стилей преобразует локальные Variables и Styles из текущего Figma-файла в DTCG token JSON. Это обратный поток относительно Экспорта Переменных и Стилей.

ИмпортируетТакже обновляет
Локальные коллекции переменных → variable-токеныconfig.json (коллекции / modes / файлы)
Локальные text / paint / effect / grid стили → токеныdiff-id.json (для diff-safe round-trip экспорта)

Импорт работает только с локальными коллекциями/стилями в текущем открытом файле Figma (без REST-пайплайна), как с config.json, так и без него.

Как открыть

  1. Откройте вкладку Tokens.
  2. Нажмите Import variables & styles в нижнем блоке действий.

В заголовке модалки сейчас используется UI-имя Import from Figma.

Что выбирается перед импортом

Variable collections

  • Источник: локальные коллекции переменных Figma.
  • Переключатель в заголовке секции = выбрать всё / снять всё.
  • Если коллекции есть, должна остаться выбрана минимум одна.

Style groups

  • Источник: локальные text/paint/effect/grid стили Figma.
  • Правило группировки: первый сегмент пути стиля (Group/Name -> группа Group).
  • Если группы есть, должна остаться выбрана минимум одна.

Фильтры по типам

Импортируются только включённые типы.

Переменные

ПереключательFigma resolved type
colorCOLOR
numberFLOAT
stringSTRING
booleanBOOLEAN

Стили

ПереключательВид стиля Figma
typographyText styles
fill, gradientPaint styles
shadow, blur, effects, glassEffect styles
gridGrid styles
borderЗарезервирован в схеме/UI; отдельного импорта border-style из Figma в текущем рантайме нет

Режимы маппинга config

РежимRuntime keyПоведение
Smart (по умолчанию)smartИспользует существующие пути из config, где это возможно; добавляет отсутствующие коллекции/моды/файлы для выбранных данных; объединяет alias-derived зависимости ref; может сохранить обновлённый config.json.
Strictfrom-configИмпортирует только в пути, уже описанные в config.json; неизвестные коллекции/моды пропускаются с предупреждениями.
GenerategenerateСтроит greenfield-структуру коллекций/модов/файлов на основе выбранных Figma-коллекций и сохраняет её в config.json.

Если в UI выбран Strict, но валидного config нет, запуск блокируется до смены режима.

Опции поведения импорта

ОпцияRuntime fieldЧто делает
Multi-file layout (greenfield)fileLayoutДля generated/greenfield путей: несколько файлов на mode (multi-file) или один файл на mode (single-per-mode).
Overwrite existing token valuesconflictPolicyON = overwrite, OFF = merge-only (merge-only).
Preserve variable aliases as {paths}aliasPolicyON = сохранять алиасы (preserve-path), OFF = по возможности литерализовать (literalize).
Map Figma scopes -> $extensionsreadScopesToExtensionsЗаписывает figma.scopes в импортированные variable-токены (best effort).
Update diff-id.jsonupdateDiffIdСохраняет Figma ID и хеши для round-trip экспорта.
FLOAT -> dimensionfloatSemanticУправляет маппингом FLOAT: dimension (по умолчанию) или number.

Куда записываются файлы

Smart / Strict при наличии маршрутов в config

Данные пишутся в enabled-пути из config.json (collections[].modes[].files).

Generate (или greenfield-добавления в Smart)

Создаётся новый путь вида:

  • <slug-коллекции>/<slug-мода>/...

Fallback для стилей

Если маршрутов для стилей нет, импорт может писать в:

  • styles/imported-styles.json

Как сериализуются значения

  • Алиасы переменных сохраняются как {token.path}, если включено сохранение алиасов.
  • Bound-переменные внутри стилей (typography, paint, effects) сериализуются той же alias-политикой.
  • Пути токенов нормализуются из Figma-имён.

Ограничения и заметки

  • Image paint styles импортируются как img с пустым URL-плейсхолдером ({ "url": "" }).
  • Часть сложных эффектов может приходить как объект effects и требовать ручной доработки.
  • Strict режим критично зависит от точности config.json; отсутствующие маршруты пропускаются.
  • Импорт затрагивает только выбранные коллекции/группы и включённые type-toggle.

Минимальный пример результата

JSON
{
  "color": {
    "brand": {
      "primary": {
        "$type": "color",
        "$value": "#0057ff"
      }
    }
  },
  "typography": {
    "body": {
      "md": {
        "$type": "typography",
        "$value": {
          "fontFamily": "Inter",
          "fontSize": "16px",
          "lineHeight": "24px"
        }
      }
    }
  }
}

Связанные разделы