# qt-figma-component-generation

Читает компоненты Figma через MCP и пишет по ним QML-контролы на Qt Quick Controls 2. Нужен на шаге генерации компонентов в воркфлоу дизайн-системы.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 435 установок · ★ 507
- Автор: qt-ai-skills
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/TheQtCompanyRnD/agent-skills/tree/HEAD/skills/qt-figma-component-generation/SKILL.md
- Обновлён: 2026-10-20
- HTML: https://affpapa.org/nevibecode/skills/qt-figma-component-generation

## Что делает

Скилл берёт метаданные компонентов из Figma и превращает их в готовые QML-файлы, которые опираются на синглтоны дизайн-системы. Варианты, состояния, размеры и использование токенов он раскладывает по идиоматичным паттернам Qt Quick Controls 2. Работает через Figma MCP: сначала `get_metadata` по файлу, потом `get_design_context` по каждому компоненту.

Перед запуском в проекте уже должны лежать `design-tokens.json` и синглтоны `Primitives.qml`, `Theme.qml`, `Spacing.qml`, `FontInterface.qml` в папке `design-system/`. Если их нет, скилл останавливается и отправляет сначала прогнать `qt-figma-token-extraction`. Это главное ограничение: без файла токенов генерация не начнётся.

Дальше скилл спрашивает, какие группы компонентов брать, и предлагает выбрать паттерн реализации. Паттерн A — самодостаточный файл со всей логикой состояний внутри. Паттерн B — пара `Component.qml` и `ComponentStyle.qml` с синглтоном, для нескольких переключаемых тем. Смешивать их нельзя: в A вариант задаётся строкой, в B — целочисленным enum. Для большинства проектов автор советует начать с паттерна A, он проще в отладке. Инвентарь компонентов ведётся одной таблицей со статусами от `pending` до `done`.

## Требования
- Работает с: Figma

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add TheQtCompanyRnD/agent-skills --skill qt-figma-component-generation -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/qt-figma-component-generation/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/qt-figma-component-generation/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add TheQtCompanyRnD/agent-skills --skill qt-figma-component-generation -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/qt-figma-component-generation/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add TheQtCompanyRnD/agent-skills --skill qt-figma-component-generation -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/qt-figma-component-generation/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install TheQtCompanyRnD/agent-skills qt-figma-component-generation
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/qt-figma-component-generation/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add TheQtCompanyRnD/agent-skills --skill qt-figma-component-generation -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/TheQtCompanyRnD/agent-skills --path skills/qt-figma-component-generation
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/qt-figma-component-generation/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add TheQtCompanyRnD/agent-skills --skill qt-figma-component-generation -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/TheQtCompanyRnD/agent-skills/tree/HEAD/skills/qt-figma-component-generation/SKILL.md

## Когда брать
- собрать QML-контролы по компонентам из Figma
- перенести варианты и состояния кнопки в Qt Quick Controls 2
- сгенерировать `TextField.qml` с подписью, ошибкой и кнопкой очистки
- сделать чекбокс с неопределённым состоянием и Canvas-галочкой
- выбрать между inline-компонентом и парой со style-синглтоном

## Примеры запросов агенту
- Сгенерируй QML-компоненты из Figma по нашей дизайн-системе
- Сделай `Button.qml` из компонента Figma, вариант по умолчанию и состояния Hover, Pressed, Disabled
- Возьми компонент `Checkbox` из Figma и собери по нему QML-контрол

## Похожие
- [figma-generate-design](https://affpapa.org/nevibecode/skills/openai-figma-generate-design.md) — скилл · 2900 установок
- [figma-create-design-system-rules](https://affpapa.org/nevibecode/skills/figma-create-design-system-rules.md) — скилл · 2900 установок
- [figma-code-connect-components](https://affpapa.org/nevibecode/skills/figma-code-connect-components.md) — скилл · 2700 установок
- [figma-build](https://affpapa.org/nevibecode/skills/figma-build.md) — скилл · 1300 установок
- [figma-generate-library](https://affpapa.org/nevibecode/skills/nexu-io-figma-generate-library.md) — скилл · 2700 установок
- [figma](https://affpapa.org/nevibecode/skills/figma.md) — скилл · 858 установок

Из того же набора: [theqtcompanyrnd/agent-skills](https://affpapa.org/nevibecode/by/theqtcompanyrnd/agent-skills.md) — 8 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
