# qt-figma-component-generation

Reads Figma components over MCP and writes QML controls for Qt Quick Controls 2. It runs at the component generation step of a design-system workflow.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 435 installs · ★ 507
- Author: qt-ai-skills
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/TheQtCompanyRnD/agent-skills/tree/HEAD/skills/qt-figma-component-generation/SKILL.md
- Updated: 2026-10-20
- HTML: https://affpapa.org/en/nevibecode/skills/qt-figma-component-generation

## What it does

The skill pulls component metadata out of a Figma file and turns it into QML files that consume your design-system singletons. Variants, states, sizing and token usage get mapped onto idiomatic Qt Quick Controls 2 patterns. Everything goes through Figma MCP: `get_metadata` for the file structure, then `get_design_context` per component.

Before anything is generated, the project needs `design-tokens.json` plus the singletons `Primitives.qml`, `Theme.qml`, `Spacing.qml` and `FontInterface.qml` in a `design-system/` folder. Miss either and the skill stops and points you at `qt-figma-token-extraction` first. That dependency is the hard gate here.

Then it asks which component groups to take and which implementation pattern to use. Pattern A keeps all state logic inside one self-contained file. Pattern B splits a component into `Component.qml` and a singleton `ComponentStyle.qml` for swappable themes. Don't mix them: A sets the variant as a string, B uses an integer enum. For most projects the author recommends starting with Pattern A, since it's easier to debug. Progress is tracked in one inventory table with statuses from `pending` to `done`.

## Requirements
- Works with: Figma

## Install

### Claude Code (native platform)

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

2. **Manually: put the files in place**
- File: `~/.claude/skills/qt-figma-component-generation/SKILL.md` — Copy the whole skill folder; for one project use .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. **Manually: put the files in place**
- File: `.agents/skills/qt-figma-component-generation/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

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

2. **Manually: put the files in place**
- File: `.cursor/skills/qt-figma-component-generation/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

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

2. **Manually: put the files in place**
- File: `.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. **Platform CLI**
```bash
gemini skills install https://github.com/TheQtCompanyRnD/agent-skills --path skills/qt-figma-component-generation
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/qt-figma-component-generation/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

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

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/TheQtCompanyRnD/agent-skills/tree/HEAD/skills/qt-figma-component-generation/SKILL.md

## When to use it
- generate QML controls from Figma components
- port button variants and states into Qt Quick Controls 2
- build a `TextField.qml` with label, error text and a clear button
- create a checkbox with an indeterminate state and a Canvas tick
- pick between an inline component and a style-singleton pair

## Example prompts
- Generate QML components from our Figma design system
- Build `Button.qml` from the Figma component, default variant plus Hover, Pressed and Disabled
- Take the `Checkbox` component in Figma and produce the QML control for it

## Similar
- [figma-generate-design](https://affpapa.org/en/nevibecode/skills/openai-figma-generate-design.md) — skill · 2900 installs
- [figma-create-design-system-rules](https://affpapa.org/en/nevibecode/skills/figma-create-design-system-rules.md) — skill · 2900 installs
- [figma-code-connect-components](https://affpapa.org/en/nevibecode/skills/figma-code-connect-components.md) — skill · 2700 installs
- [figma-build](https://affpapa.org/en/nevibecode/skills/figma-build.md) — skill · 1300 installs
- [figma-generate-library](https://affpapa.org/en/nevibecode/skills/nexu-io-figma-generate-library.md) — skill · 2700 installs
- [figma](https://affpapa.org/en/nevibecode/skills/figma.md) — skill · 858 installs

From the same set: [theqtcompanyrnd/agent-skills](https://affpapa.org/en/nevibecode/by/theqtcompanyrnd/agent-skills.md) — 8 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
