Install
$ agentstack add skill-southleft-skills-for-figma-deep-component-figma ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
deep-component-figma — unlimited-depth tree with resolved tokens
Walk one node (usually a COMPONENT / COMPONENT_SET / INSTANCE, but any node works) recursively to a depth you choose, capturing at every level: layout (auto-layout, padding, spacing, sizing), visual properties (fills, strokes, stroke weight, corner radius, effects, opacity), typography for text nodes, boundVariables resolved to token names + code syntax, INSTANCE main-component references (including whether the main is a variant and its set), prototype reactions, and dev-mode annotations. This is the richest single-component read for high-fidelity code generation.
Skill boundaries
use_figmarules — load the officialfigma-useskill first; it is the full Figma Plugin API reference. Essentials these scripts rely on: plain JS with top-levelawait+return(no IIFE, nofigma.closePlugin();console.logis not returned), inputs inlined asconstat the top of each script, colors in 0–1 range, load fonts before any text op,await figma.getNodeByIdAsync(...), and atomic errors (a failed script applies nothing — read the error, fix, retry).- Whole-file inventory (all tokens/components/styles at once) → use
design-system-inventory-figma. - Variant set as a CSS state machine (per-state diffs, pseudo-class mapping) →
use analyze-component-set-figma.
- This depth of tree + resolved tokens + reactions is not what the native MCP's
get_design_context (rendered single-selection summary) or get_metadata (flat structure) return — it is a design-system code-gen capability layered on top.
Workflow
- Get the node id. From selection (
figma_get_selection), search, or a pasted id. - Choose a depth. Set
const DEPTH(default 10). Deep design components rarely exceed ~6
levels; use a smaller number first to keep the payload manageable, then go deeper if needed.
- Run [
scripts/deep-component.js](scripts/deep-component.js) viause_figma
(skillNames: "deep-component-figma"). Set const NODE_ID and const DEPTH at the top.
- Generate code. The returned tree mirrors the DOM you should build. Prefer
boundVariables
token names (and their codeSyntax) over raw hex; use mainComponent refs to reuse imported components; use reactions to wire up interaction/navigation.
- If the payload is too big, lower
DEPTH(nodes past the limit are summarized with a
childCount + _depthLimitReached marker) or target a smaller sub-node id.
What each node carries
- Identity:
id,name,type,visible. Hidden non-component nodes are marked_hiddenand
not recursed.
- Layout:
layoutMode, axis sizing/align,padding*,itemSpacing,counterAxisSpacing,
layoutWrap, min/max width/height, clipsContent.
- Visual:
fills,strokes,strokeWeight,cornerRadius,effects,opacity
(only when non-default; figma.mixed values are skipped safely).
- Typography (TEXT):
characters,fontSize,fontFamily/fontStyle,fontWeight,
lineHeight, letterSpacing, alignment, truncation, case, decoration.
- Tokens:
boundVariablesresolved to{ id, name, collection, resolvedType, codeSyntax }per
bound property.
- Instances:
mainComponent(id,name,key,isVariant, set name/id) +componentProperties. - Definitions (COMPONENT/COMPONENT_SET):
componentPropertyDefinitions,variantProperties. - Prototype:
reactions(trigger + action: navigation/transition/destination). - Dev:
annotations(label markdown + categorized properties).
Notes
- Resolved tokens work on ANY plan — the variable lookup is built via the Plugin API, so even
non-Enterprise files get token names instead of opaque VariableID: aliases.
- The root node echoes
_variableMapSizeand_maxDepthUsedfor sanity-checking. - Returns
affectedNodeIds: [NODE_ID]even though this is a read — keeps the convention uniform.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: southleft
- Source: southleft/skills-for-figma
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.