Карта шаблона 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. Внутри пять
инстансов страниц. Скилл импортирует шаблон только как проверку библиотеки, а страницы —
каждую своим ключом.
История изменений | cc0b93384365461d9de59ebef15fbbe2f7c7ee4c | Changelog | собирает |
Спецификация | 54dba64bb1ed6734946f020991c07b30459cc21f | Specification | собирает |
❖ Компонент | cb2cff7d2706d72096e1e206734e05e275771489 | Assets | собирает |
Рекомендации | 797dcbddf8fdbd1264da64a3b5aba5a1104d9fa6 | Tricks and tips | нет — ручная |
Редактура | 2a53c9db27e3542d68b4d9fdc5b832e34075c891 | Editing | нет — ручная |
У страниц нет свойств и слотов, поэтому обёртка страницы открепляется (detachInstance).
Ширина страницы — 640, у «❖ Компонент» — по содержимому.
2.1 Устройство страницы
<Страница> FRAME после открепления, вертикальный auto-layout, gap 0
├── Header FRAME
│ └── ds-head INSTANCE — не трогать
└── Content FRAME, вертикальный auto-layout
└── … демо-блоки шаблона удалить и заполнить своими
Демо-блоки шаблона:
| История изменений | gap 16 | один ds-log Релизовано=False |
| Спецификация | gap 64 | Group (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 64 | Name (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. Не трогать.
Context | VARIANT | Changelog, Specification, Editing, Tricks and tips, Assets, Анимация, Accessibility, Tokens, Описание, Интерактивность; задаёт заголовок и подзаголовок текстом варианта |
Navigation | VARIANT | False, True; в шаблоне True |
Title#814:0, Description#814:14 | TEXT | действуют только в Context=Описание |
Show Web#69663:36, Show Mobile#69663:54 | BOOLEAN | метки платформ в шапке «Спецификации», в шаблоне обе true |
Show React#4:0, Show Flutter#4:7, Show Motion#1902:22, Show Taptic#1902:4 | BOOLEAN | ссылки на реализацию, в шаблоне false |
ds-log — запись истории изменений
Набор, ключ 00d9e32bc28904a27517489b84f9f281a39b2011.
Релизовано | VARIANT | False, True; True показывает блок «Реализовал» |
Описание#29:0 | BOOLEAN | показать текст описания |
Описание #12813:0 | TEXT | текст описания. В имени пробел перед # |
Дата изменения#1521:3 | BOOLEAN | показать дату |
Реализовано в React#17367:1, Реализовано в Flutter#17367:4 | BOOLEAN | строки «Реализовал» |
Ловушка: имена Описание (BOOLEAN) и Описание (TEXT) отличаются только пробелом.
Резолвер свойств обязан сравнивать имя точно и проверять тип (рецепт 0).
Вложенные атомы — приватные (имя с точкой), не опубликованы, по ключу не импортируются.
Достаются только через родителя: log.findOne(n => n.type === "INSTANCE" && n.name === "<слой>").
Версия | .ds-log-changelog-version | major#30279:0, minor#30279:1, patch#30279:2 — TEXT |
Дата | .ds-log-changelog-date | Day#1521:0, Month#1521:1, Year#1521:2 — TEXT, две цифры |
Тип изменения | .ds-log-label | VARIANT Тип изменения: Новая версия, Доработка компонента, Исправление бага |
Дизайнер внёсший изменения | .ds-log-designers | VARIANT Department: Design System Team, User; BOOLEAN Сергей, Жасур, Рашид, User 1–3; TEXT Name 1–3 |
React, Flutter | .ds-log-dev | TEXT Разработчик#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.
View | VARIANT | Anatomy (640×402), State (640×210) |
Title#120:0, Show Title#120:3 | TEXT, BOOLEAN | подпись над иллюстрацией |
Description#757:3, Show Desciption#757:0 | TEXT, BOOLEAN | подпись под ней. Опечатка в имени Desciption — писать дословно |
Slot Container#70207:0 | SLOT | живой у View=Anatomy; демо — простой FRAME Button |
Slot Container State#70662:0 | SLOT | живой у View=State; демо — инстансы ds-mcp-component-state |
ds-mcp-component-state — строка значения
Набор, ключ ddafef2738b4d3183aa5e0e418da8fa23ede1cf2.
Position | VARIANT | Horizontal (640×80): подпись слева, пример справа; Vertical (640×128): подпись сверху |
Type#29447:1 | TEXT | имя значения |
Description#422:0, Show Description#422:3 | TEXT, BOOLEAN | пояснение под именем |
Slot Container#70209:3 | SLOT | пример; демо — инстанс 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-head | 5d877a1052d6fd833a5969feac53fb80621aece8 | своих нет; вложен ds-format-component-head-title |
ds-format-component-head-title | d1b7347f55d88914406954e35b3e5c08c04d33db | Название компонента#24266:7 — TEXT, имя набора |
ds-format-component-footer | 72910704eec91328387532f35dc2640b7b6e9acf | Show 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-recommendation | a2cf9583204333c3882ff5ee042273ffa44c4ef1 | Рекомендации, Редактура: «Хорошо / Плохо» |
ds-format-hotkey-notifictaion | 959028f976e52e23035afeaf1915f37145ae7821 | Рекомендации: подсказка про горячие клавиши. Опечатка в имени |
ds-image | f0ab3be97be1510c4c92b2ceb577cab05eeb0b96 | Рекомендации |
ds-paragraph-ux-wtiting | 776a5a49b6dd1a3a3b5e7cecb5bc3d0aed361480 | Редактура: «Кому обратиться». Опечатка в имени |
5. Устаревшие атомы — не ставить
Ими собраны секции документации до шаблона ds-component: на 22.10.2026 — Tag, Popover,
Locator и другие. Скилл их не использует, даже если пересобирает такую секцию.
ds-component-state | 658224679c0bac6ee94809618b2d2e62a4ae2cc9 | ds-mcp-component-state: пример — в слоте, а не через INSTANCE_SWAP Add components |
ds-component-slot | 984cad73d51c8014c3e4777b60099368f173496a | ds-mcp-component-state |
ds-component-label | 1821c34051b472f19719beb5d603395b723ce164 | ds-mcp-component-label |
ds-anatomy-container | 1cb3ac8ba3f48b370b331a21517ee387e5ba2d88 | ds-mcp-component View=Anatomy |
ds-anatomy-stiker, ds-anatomy-big-stiker, ds-anatomy-highlighting | 846d13be81370b9558717896d0040d49563b7c82, 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-padding | 3 набора |
ds-anatomy-size | 2 набора |
ds-video | 2 компонента |
ds-gradient | 2 компонента |
ds-menu-item | компонент и набор |
Поиск по имени выбирает случайный из них. Поэтому только ключи.
7. Оформление секции
Снято с секций Popover и Locator. Переменные — коллекция decoration библиотеки «Astra DS: Docs».
| радиус, все четыре угла | radius/ds-radius-section | 6c0eb5739ed61e6eebcc4dea47f415a74e8119a1 | — |
| нижняя заливка | color/section/ds-section-02 | 27e361c2f3293fcb62995b9c94b1eb22b64490d3 | прозрачность 1 |
| верхняя заливка | color/section/ds-section-01 | fe38f9ec9248426ff35d8322cb882f61b23ea523 | прозрачность 0,01 |
| цвет обводки | color/ds-tertiary | e3ac4487860ac9fdce1eaee3f42c678ca573cf19 | прозрачность 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. Как обновить карту
Библиотеку перепубликовали, и ключ не импортируется:
- В файле с подключённой библиотекой —
search_design_systemпо имени атома сincludeLibraryKeysбиблиотеки «Astra DS: Docs» (ключ библиотеки даётget_libraries). - Из найденных взять тот, что стоит в шаблоне
ds-component: импортировать шаблон по ключу и прочитатьmainComponent.keyнужного инстанса внутри. - Обновить таблицу, дату снятия наверху и запись в
CHANGELOG.md.