Skip to main content

figma-extract

Pull a Figma file's node tree, design tokens, and embedded assets into the project cwd as a structured snapshot.

Quellinformationen

Repository
nexu-io/open-design
Letzte Quellaktivität
18. August 2026 um 07:09
Erkannte Sprache von SKILL.md
Englisch
Sterne
98.525
Forks
11.424

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
figma-extract
description
Pull a Figma file's node tree, design tokens, and embedded assets into the project cwd as a structured snapshot.
od
{"scenario":"figma-migration","mode":"extract"}
# Figma extract Spec §10 / §21.3.1: the figma-migration scenario starts with a Figma file URL + an OAuth token. This atom turns that pair into the authoritative on-disk record subsequent stages (`token-map`, `generate`, `critique`) operate on. ## Inputs | Source | Required | Notes | | --- | --- | --- | | Figma file URL or `node-id` | yes | Provide via the `figma-oauth` GenUI surface or `od plugin apply --input fileUrl=…` | | Figma OAuth token | yes | Routed through `oauth-prompt` with `oauth.route='connector'` and `connectorId='figma'`; the daemon never stores the token in SQLite | ## Output The atom writes a deterministic, JSON-shaped extract under the project cwd: ```text project-cwd/ ├── figma/ │ ├── tree.json # canonical node tree (id / type / parent / children / box / fills / text) │ ├── tokens.json # color + typography + spacing tokens lifted off the file │ ├── assets/ # rasterised exports of every leaf node that the file marks for export │ │ └── <node-id>.<png|svg|webp> │ └── meta.json # { fileUrl, version, lastModified, exportedAt, atomDigest } ``` `figma/tree.json` is the canonical pivot for every downstream atom. `figma/tokens.json` is the input to `token-map`. `assets/` is the input to `generate`'s media stage. ## Convergence The atom completes when `figma/tree.json` exists and is non-empty. The `until` evaluator reads `figma.tree.nodes >= 1`; if the figma file is empty or the OAuth token expired, the atom emits a clear error event and the run aborts (the user fixes auth or picks a different file). ## Anti-patterns the prompt fragment forbids - Synthesising a tree from screenshots when the OAuth path failed — always re-prompt the user; never make up node ids. - Dropping unsupported node types silently; record them in `meta.json.unsupportedNodes[]` so the human can audit gaps. - Treating component instances as duplicates; record `componentRef` links so `token-map` can de-duplicate at the right boundary. ## Status Implemented by the daemon runner in `apps/daemon/src/plugins/atoms/figma-extract.ts`. It fetches and walks the Figma REST tree, records unsupported nodes, lifts tokens, and rasterizes supported assets.
Auf GitHub ansehen