Composition и Drift
Как Inspect отслеживает связи Composition, находит drift между JSON и Figma, и восстанавливает компоненты/component set через Re-apply.
Что означает Composition Drift
Если компонент или component set привязан к Composition JSON, Inspect может сравнить текущее состояние в Figma с JSON-эталоном.
Drift означает, что эти состояния больше не совпадают.
Типичные причины:
- ручные правки на холсте после генерации;
- JSON обновили, но в Figma изменения не переприменили;
- компонент пересоздали/перенесли, и diff-id ссылка устарела.
Секция Composition Tracking
Для composition-linked компонентов/component set Inspect показывает состояние связи:
- Linked: текущий node id связан в diff-id с composition name.
- Unlinked: composition name есть, но id mapping расходится.
Re-link обновляет diff-id mapping для текущего файла, если имя совпадает, а ID изменился.
Для legacy-компонентов, которые никогда не генерировались из Composition JSON, сначала используйте
Adopt composition из контекстного меню бейджа composition. Он привяжет выбранный компонент/component set без
пересборки, после чего Audit composition сможет показать, совпадает ли принятая нода с JSON-эталоном.
Секция Out of Sync
Если drift обнаружен, Inspect показывает:
- общее число различий;
- бейджи категорий;
- действия: Show Diff и Re-apply.
Категории различий
| Категория | Что сравнивается |
|---|---|
hash | быстрый composition hash-check |
structure | иерархия и порядок узлов |
property | metadata component properties |
binding | token/style variable bindings |
layout | autolayout поля (direction, gap, padding и т.д.) |
fill | заливки |
stroke | обводки |
effect | эффекты |
text | текстовые свойства |
sizing | width/height/constraints |
style | style links и style-level mapping |
Show Diff
Show Diff открывает подробное модальное сравнение по категориям и path-level изменениям перед восстановлением.
Поведение Re-apply
Re-apply запускает composition apply в repair-mode для выбранного composition-linked узла.
Ожидаемое поведение:
- текущий node identity сохраняется;
- структура/стили/привязки приводятся к JSON-цели;
- для component set восстановление применяется по связанным вариантам.
После успешного Re-apply секция Out of Sync должна исчезнуть для исправленных различий.
Рекомендованный workflow
- Выберите компонент/component set.
- Проверьте состояние Composition Tracking.
- Если
Unlinked, выполните Re-link. - Если есть drift, откройте Show Diff.
- Выполните Re-apply.
- Проверьте статус drift повторно.