Карта шаблона ds-component в библиотеке «Astra DS: Docs» (references/engine-map.md)

Источник: ds-skills/src/skills/astra-figma-doc-build/references/engine-map.md — справочник скилла astra-figma-doc-build

Снято 22.10.2026 из файла Astra DS (eGpqY0OqVR8l8zhmlHdfb9), к которому подключена библиотека «Astra DS: Docs». Ключи — опубликованные, работают в любом файле, где библиотека включена. Файл самой библиотеки в этой карте не нужен.


1. Как находить

Только импортом по ключу: figma.importComponentByKeyAsync для компонентов, figma.importComponentSetByKeyAsync для наборов. Компоненты подключённой библиотеки Plugin API не перечисляет, а имена в «Astra DS: Docs» задвоены (раздел 6) — поиск по имени не работает дважды.

Id импортированного узла живёт один вызов. В каждом вызове, который пишет, импорт повторяется — это дёшево.

Ключ не импортировался — библиотека не включена в файле или компонент удалён при перепубликации. Первое чинит человек в Assets → Libraries, второе — обновление этой карты.


2. Шаблон и страницы

ds-component — компонент, ключ 8f7cbc56b451e2dafa03085a38c7b28835d397fa. Внутри пять инстансов страниц. Скилл импортирует шаблон только как проверку библиотеки, а страницы — каждую своим ключом.

История измененийcc0b93384365461d9de59ebef15fbbe2f7c7ee4cChangelogсобирает
Спецификация54dba64bb1ed6734946f020991c07b30459cc21fSpecificationсобирает
❖ Компонентcb2cff7d2706d72096e1e206734e05e275771489Assetsсобирает
Рекомендации797dcbddf8fdbd1264da64a3b5aba5a1104d9fa6Tricks and tipsнет — ручная
Редактура2a53c9db27e3542d68b4d9fdc5b832e34075c891Editingнет — ручная

У страниц нет свойств и слотов, поэтому обёртка страницы открепляется (detachInstance). Ширина страницы — 640, у «❖ Компонент» — по содержимому.

2.1 Устройство страницы

<Страница>                    FRAME после открепления, вертикальный auto-layout, gap 0
├── Header                    FRAME
│   └── ds-head               INSTANCE — не трогать
└── Content                   FRAME, вертикальный auto-layout
    └── … демо-блоки шаблона  удалить и заполнить своими

Демо-блоки шаблона:

История измененийgap 16один ds-log Релизовано=False
Спецификацияgap 64Group (gap 24): ds-paragraph-dev-mode + ds-mcp-component View=Anatomy; Group (gap 24): ds-paragraph H1 «Состояния» + ds-mcp-component View=State с пятью строками Default, Hover, Pressed, Disabled, Skeleton
❖ Компонентgap 64Name (gap 24): ds-format-component-head, Components (GRID 2×2), ds-format-component-footer

Отступы групп (itemSpacing, padding*) копируются с демо-групп до их удаления, а не пишутся числом.

2.2 Сетка «❖ Компонент»

Name                                   вертикальный auto-layout, gap 24, padding 16
├── ds-format-component-head           → вложен ds-format-component-head-title
├── Components                         GRID 2×2
│   ├── Horizontal Props               правый верхний: строки «Variable» с подписями
│   ├── Components                     правый нижний, padding 24
│   │   └── Container                  вертикальный auto-layout — сюда переезжает набор
│   └── Vertical Props                 левый нижний: столбцы «Variable» с подписями
└── ds-format-component-footer         «Версия» + .ds-log-changelog-version

В демо Horizontal Props и Vertical Props заполнены подписями-примерами (Medium, Large, Fixed, Scroll…) — их скилл удаляет и строит свои.


3. Атомы, которые ставит скилл

Суффиксы свойств (#814:0) меняются при перепубликации — свойства резолвить по имени до # (рецепт 0), суффиксы ниже — для сверки.

ds-head — шапка страницы

Набор, ключ 287294fb2c2358cb427985c718ccea3a27dc04c6. Не трогать.

ContextVARIANTChangelog, Specification, Editing, Tricks and tips, Assets, Анимация, Accessibility, Tokens, Описание, Интерактивность; задаёт заголовок и подзаголовок текстом варианта
NavigationVARIANTFalse, True; в шаблоне True
Title#814:0, Description#814:14TEXTдействуют только в Context=Описание
Show Web#69663:36, Show Mobile#69663:54BOOLEANметки платформ в шапке «Спецификации», в шаблоне обе true
Show React#4:0, Show Flutter#4:7, Show Motion#1902:22, Show Taptic#1902:4BOOLEANссылки на реализацию, в шаблоне false

ds-log — запись истории изменений

Набор, ключ 00d9e32bc28904a27517489b84f9f281a39b2011.

РелизованоVARIANTFalse, True; True показывает блок «Реализовал»
Описание#29:0BOOLEANпоказать текст описания
Описание #12813:0TEXTтекст описания. В имени пробел перед #
Дата изменения#1521:3BOOLEANпоказать дату
Реализовано в React#17367:1, Реализовано в Flutter#17367:4BOOLEANстроки «Реализовал»

Ловушка: имена Описание (BOOLEAN) и Описание (TEXT) отличаются только пробелом. Резолвер свойств обязан сравнивать имя точно и проверять тип (рецепт 0).

Вложенные атомы — приватные (имя с точкой), не опубликованы, по ключу не импортируются. Достаются только через родителя: log.findOne(n => n.type === "INSTANCE" && n.name === "<слой>").

Версия.ds-log-changelog-versionmajor#30279:0, minor#30279:1, patch#30279:2 — TEXT
Дата.ds-log-changelog-dateDay#1521:0, Month#1521:1, Year#1521:2 — TEXT, две цифры
Тип изменения.ds-log-labelVARIANT Тип изменения: Новая версия, Доработка компонента, Исправление бага
Дизайнер внёсший изменения.ds-log-designersVARIANT Department: Design System Team, User; BOOLEAN Сергей, Жасур, Рашид, User 1–3; TEXT Name 1–3
React, Flutter.ds-log-devTEXT Разработчик#30279:5, BOOLEAN Дизайн-ревью#30279:4

Скилл трогает только Версия, Дата, Тип изменения и свойства самого ds-log.

ds-paragraph — заголовок и абзац

Набор, ключ ca2f04a5efaa20c9d9ae32a396330b7a13e696e9. Type: H1, H2, H3, H4. Свойства: Title#25618:5, Description#25618:0, Show Title#25618:15, Show Description#25618:10.

ds-paragraph-dev-mode — блок «Структура»

Компонент, ключ a9e5a749b4add3badd7752e7c068489722c5d2be. Свойств нет. Внутри ds-paragraph H1 с текстом «Структура» и «Для ознакомления структурой компонента используйте DevMode (Shift+D).» Текст не меняется.

ds-mcp-component — иллюстрация

Набор, ключ f9ee550e7ecc537fc63075015db4c76d0355a619.

ViewVARIANTAnatomy (640×402), State (640×210)
Title#120:0, Show Title#120:3TEXT, BOOLEANподпись над иллюстрацией
Description#757:3, Show Desciption#757:0TEXT, BOOLEANподпись под ней. Опечатка в имени Desciption — писать дословно
Slot Container#70207:0SLOTживой у View=Anatomy; демо — простой FRAME Button
Slot Container State#70662:0SLOTживой у View=State; демо — инстансы ds-mcp-component-state

ds-mcp-component-state — строка значения

Набор, ключ ddafef2738b4d3183aa5e0e418da8fa23ede1cf2.

PositionVARIANTHorizontal (640×80): подпись слева, пример справа; Vertical (640×128): подпись сверху
Type#29447:1TEXTимя значения
Description#422:0, Show Description#422:3TEXT, BOOLEANпояснение под именем
Slot Container#70209:3SLOTпример; демо — инстанс ds-slot Type=Hug, Size=Small

ds-mcp-component-label — подпись оси

Набор, ключ 9d9fc72e383e614ac585a65acdeb7a621e094875. Label#29891:0 — TEXT; Large: False, True — внешний уровень крупнее; Vertical: False, True — скобка сверху или слева. Размеры по умолчанию: 120×48, 120×54, 66×57, 76×57.

Шапка и подвал сетки

ds-format-component-head5d877a1052d6fd833a5969feac53fb80621aece8своих нет; вложен ds-format-component-head-title
ds-format-component-head-titled1b7347f55d88914406954e35b3e5c08c04d33dbНазвание компонента#24266:7 — TEXT, имя набора
ds-format-component-footer72910704eec91328387532f35dc2640b7b6e9acfShow Width#117:0, Show Height#117:1 — в шаблоне false; вложен .ds-log-changelog-version

Заглушка ds-slot

Набор, ключ 02c2a9c417f1a8e9e3edca6f2eb731a98f4cf4f5. Type: Hug, Filled; Size: Small, Medium, Large, Max. Демо-наполнение слотов. Скилл его не ставит, только убирает.


4. Атомы ручных страниц

Скилл их не ставит. Нужны, чтобы узнать страницы, которые дизайнер добавит сам.

ds-recommendationa2cf9583204333c3882ff5ee042273ffa44c4ef1Рекомендации, Редактура: «Хорошо / Плохо»
ds-format-hotkey-notifictaion959028f976e52e23035afeaf1915f37145ae7821Рекомендации: подсказка про горячие клавиши. Опечатка в имени
ds-imagef0ab3be97be1510c4c92b2ceb577cab05eeb0b96Рекомендации
ds-paragraph-ux-wtiting776a5a49b6dd1a3a3b5e7cecb5bc3d0aed361480Редактура: «Кому обратиться». Опечатка в имени

5. Устаревшие атомы — не ставить

Ими собраны секции документации до шаблона ds-component: на 22.10.2026 — Tag, Popover, Locator и другие. Скилл их не использует, даже если пересобирает такую секцию.

ds-component-state658224679c0bac6ee94809618b2d2e62a4ae2cc9ds-mcp-component-state: пример — в слоте, а не через INSTANCE_SWAP Add components
ds-component-slot984cad73d51c8014c3e4777b60099368f173496ads-mcp-component-state
ds-component-label1821c34051b472f19719beb5d603395b723ce164ds-mcp-component-label
ds-anatomy-container1cb3ac8ba3f48b370b331a21517ee387e5ba2d88ds-mcp-component View=Anatomy
ds-anatomy-stiker, ds-anatomy-big-stiker, ds-anatomy-highlighting846d13be81370b9558717896d0040d49563b7c82, 14608fc9e5db723de437f01171489b0dfdf79326, 17bda29bec6c1fcd0ccc6bd967cf7253f6f87e6eаннотации Dev Mode
ds-anatomy-size, ds-anatomy-padding, ds-anatomy-radius, ds-anatomy-slotнесколько наборов с одним именеманнотации Dev Mode с properties

Вне шаблона, статус не определён — скилл не ставит: ds-accessibility* (страница «Доступность»), ds-device, ds-token, ds-token–tag, ds-video, ds-gradient, ds-text-line, ds-menu-item, ds-notification-*, ds-interactive-touch*, ds-doc/interaction/*.


6. Задвоенные имена

На 22.10.2026 в «Astra DS: Docs» опубликованы под одним именем:

ds-anatomy-padding3 набора
ds-anatomy-size2 набора
ds-video2 компонента
ds-gradient2 компонента
ds-menu-itemкомпонент и набор

Поиск по имени выбирает случайный из них. Поэтому только ключи.


7. Оформление секции

Снято с секций Popover и Locator. Переменные — коллекция decoration библиотеки «Astra DS: Docs».

радиус, все четыре углаradius/ds-radius-section6c0eb5739ed61e6eebcc4dea47f415a74e8119a1—
нижняя заливкаcolor/section/ds-section-0227e361c2f3293fcb62995b9c94b1eb22b64490d3прозрачность 1
верхняя заливкаcolor/section/ds-section-01fe38f9ec9248426ff35d8322cb882f61b23ea523прозрачность 0,01
цвет обводкиcolor/ds-tertiarye3ac4487860ac9fdce1eaee3f42c678ca573cf19прозрачность 0,4
толщина обводки——1, INSIDE

Переменные импортируются figma.variables.importVariableByKeyAsync(key). Если на странице уже есть секция документации — проще скопировать fills, strokes, strokeWeight, strokeAlign и привязки радиуса с неё: правки владельца переедут сами.

Раскладка: отступ 100 от края секции, страницы слева направо с шагом 100, верх — 100.


8. Шрифты и аннотации

Атомы набраны Inter: Regular, Medium, Semi Bold, Bold. Список не хардкодить — собирать с текстовых слоёв импортированных страниц (рецепт 2) и загружать в каждом вызове, который пишет.

Категории аннотаций в файле Astra DS: Спецификация (зелёная), Интерактивность, Доступность, Рекомендации, Контент, Закон, Примечание реализации, Stark. Скилл ставит Спецификация — annotations.md.


9. Как обновить карту

Библиотеку перепубликовали, и ключ не импортируется:

  1. В файле с подключённой библиотекой — search_design_system по имени атома с includeLibraryKeys библиотеки «Astra DS: Docs» (ключ библиотеки даёт get_libraries).
  2. Из найденных взять тот, что стоит в шаблоне ds-component: импортировать шаблон по ключу и прочитать mainComponent.key нужного инстанса внутри.
  3. Обновить таблицу, дату снятия наверху и запись в CHANGELOG.md.