Swap
Swap в SXL Studio: перепривязка переменных и стилей для инстансов и для file/page миграций.
Что делает Swap
Swap перепривязывает переменные и стили с одного источника на другой без пересборки компонентов.
Типовые сценарии:
- миграция library -> local;
- миграция между локальными коллекциями/стилями;
- очистка после copy/paste из внешних файлов.
Swap не меняет main component инстанса. Для этого используйте Rebind.
Два режима Swap
В Inspect есть два swap-потока.
| Режим | Откуда открыть | Для чего | Scope |
|---|---|---|---|
| Swap | Кнопка Swap в основной панели | Точечная перепривязка по выбранному инстансу/компоненту | Single или All matching instances на текущей странице |
| Swap libs & variables | Кнопка внизу левого дерева | Массовая file/page миграция в двухколоночном режиме | Page или Document |
Режим A: Swap (инстансный)
- Выберите инстанс, компонент или component set.
- Откройте Inspect и нажмите Swap.
- Проверьте найденные привязки в группах
VariablesиStyles. - Выберите target collection (для variables) и target styles.
- При необходимости используйте Auto-match styles.
- Выберите scope:
Single: только текущий инстанс;All: все инстансы этого component key на странице.
- Нажмите Apply Swap.
Поведение сохранения
Инстансный Swap сохраняет mapping в diff-id (saveSwapOverride) и регистрирует watcher. Это делает перепривязку устойчивой для следующих совпадающих изменений.
Режим B: Swap libs & variables (двухколоночный)
- В левом дереве Inspect нажмите Swap libs & variables.
- Выберите тип данных:
VariablesилиStyles. - Выберите scope:
PageилиDocument. - Слева отметьте source bindings (локальные + внешние ссылки).
- Справа выберите target library/current file candidates.
- Проверьте auto-match и unmatched строки.
- Нажмите Apply Swap.
Статусы в левой колонке
ok: источник валиден и резолвится.ghost: источник принадлежит orphan local collection.error: source id не резолвится (применение блокируется до исправления).
Важное отличие от инстансного режима
Swap libs & variables применяет изменения сразу в выбранном scope, но не сохраняет persistent per-component swap override mapping.
Что перепривязывается
- Variables, привязанные к свойствам узлов (fill, stroke, radius, spacing, typography и т.д.).
- Figma styles: paint, text, effect, grid.
Рекомендуемый порядок с Ghost Heal
Если в файле есть ghost collections/modes или unresolved bindings:
- Сначала запустите Ghost Heal.
- Затем откройте Swap и примените mapping.
Это уменьшает количество красных/ghost строк и снижает риск работы со stale источниками.
Ограничения
- Swap требует фичу
TOKEN_SWAP. - Качество auto-match зависит от стабильности имен и доступности target collections/styles.
- Видимость внешних библиотек зависит от прав в Figma и публикации assets.