southleft/skills-for-figma

generate-component-doc-figma

Generate complete Markdown documentation for a Figma component — anatomy/layer tree, design tokens (colors, spacing, typography), states/variants matrix, accessibility notes, content guidelines, and optional code-parity + YAML frontmatter.

소스 보기
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

generate-component-doc-figma — Figma component → Markdown docs

Produce a complete documentation page for one component or component set: overview, anatomy tree, design tokens, variants/states matrix, typography, accessibility, content guidelines, and (optionally) design-code parity and YAML frontmatter. This skill collects structured data from the file via use_figma, then a deterministic Node converter (scripts/generate-doc.mjs) emits the Markdown — the same collected JSON always produces identical Markdown. Do not freehand the doc from prose.

Skill boundaries

  • `use_figma` rules — load the official `figma-use` skill first; it is the full Figma Plugin API reference. Essentials these scripts rely on: plain JS with top-level await + return (no IIFE, no figma.closePlugin(); console.log is not returned), inputs inlined as const at 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).
  • The collect script runs anywhere (use_figma); the converter is Node and runs in a terminal (node scripts/generate-doc.mjs ...). Same split as export-tokens-figma. If you can't run Node, you can't produce the doc — say so rather than freehanding it.
  • Markdown section layout + the `cleanVariantName` rulereferences/doc-template.md. The converter already implements every rule in that file; treat it as the spec, not a checklist for hand-assembly.
  • Reading/writing annotations as standalone specs → use the annotations-figma skill.
  • Exporting the whole token system (not just one component's tokens) → use export-tokens-figma.

Workflow

  1. Identify the target. Get the component or component-set node ID from the current selection or a

URL/ID the user provides. Component sets (with variants) produce the richest docs. Set NODE_ID in the collect script. Also note the file URL (for the figma: link / frontmatter).

  1. Collect data → save JSON. Run `scripts/collect-component-data.js`

via use_figma (skillNames: "generate-component-doc-figma"). It returns the anatomy tree, per-variant colors (with bound token id + name), typography (font family, numeric weight + name, size, line height, letter spacing), spacing tokens, component property definitions (variants/booleans/text props), the description, and annotations (with category names). Save the returned JSON to a file (e.g. collected.json).

  1. Generate the Markdown (deterministic). Run the Node converter in a terminal:
bash
   node scripts/generate-doc.mjs collected.json [--code-info codeInfo.json] [--out docs/components/Button.md] [--frontmatter] [--file-url <figma-url>]

It ports the source generator's section logic exactly: Overview (+ When to / When NOT to Use parsed from the description), Component Anatomy, Variants (matrix + icon mapping + configurable props), Token Specification (color + spacing tables), Typography, Content Guidelines, Accessibility, Design Annotations, and — with --code-info — Implementation, Design-Code Parity, and Changelog. cleanVariantName is applied automatically (Type=Image, Size=12Image / 12). Same input → identical output.

  1. Optional code parity. To add Implementation / Parity / [View Source] & [Storybook] links,

read the component source and write a codeInfo.json (props, importStatement, sourceFiles, baseComponent, changelog, …), then pass --code-info codeInfo.json.

  1. Optional frontmatter. Pass --frontmatter to prepend YAML frontmatter (title, status, version,

tags, figma URL, lastUpdated).

  1. Review & deliver. Read the emitted Markdown, sanity-check it, then write/return it. Report the

path and a one-line summary (variant count, token count).

Notes

  • Font loading: if you add a step that writes text into Figma (e.g. stamping the doc back onto the

canvas), await figma.loadFontAsync(...) first. Pure documentation generation reads only.

  • The collect script uses MAX_DEPTH to keep payloads small for deep trees — raise it only if the

anatomy looks truncated.

  • Token names come from boundVariables; a color/spacing with no bound variable renders as in the

token tables (a hardcoded value to replace with a token).

  • The converter is dependency-free (Node 18+, ESM). It exits non-zero with a clear message if the JSON

is missing or malformed.

  • These collect tools require the Figma Desktop app (the Plugin API isn't available in the browser).
같은 저장소의 Skills

더 많은 Skills

모든 Skills
southleft
커뮤니티

analyze-component-set-figma

Analyze a Figma COMPONENTSET as a state machine for code generation — extract variant axes (state/size/etc.), map state variants to CSS pseudo-classes (hover→:hover, focus→:focus-visible, disabled→:disabled, error→[aria-invalid]), and compute per-variant visual diffs (only what changes per state). Use when generating an interactive component from a Figma variant set — triggers: 'analyze this component set', 'turn these variants into CSS states', 'generate a button/input/checkbox from Figma variants', 'what changes between the hover and default state', 'map Figma variants to component props', 'extract the state machine for this component'. Resolves bound variables to token names. NOT covered by the native MCP's getdesigncontext/getmetadata, which don't give you a variant-axis→CSS-state machine.

설치 수
1
GitHub Stars
14
업데이트
6월 1일
southleft
커뮤니티

annotations-figma

Read and write designer annotations on Figma nodes — node-level design specs that pin properties (fills, width, fontSize, etc.) and carry plain or markdown notes. Use when the user wants to document or inspect interaction specs, animation timings, easing, accessibility requirements, or implementation notes attached directly to a node. Triggers: 'add an annotation', 'annotate this node/component', 'read the annotations on…', 'what specs are pinned to this element', 'list annotation categories', 'document the focus behavior on this button in Figma'. Annotations are distinct from comments (they pin to design properties) and from the description field. Requires the Figma Desktop app (Plugin API).

설치 수
1
GitHub Stars
14
업데이트
6월 1일
southleft
커뮤니티

audit-accessibility-figma

Deep accessibility scorecard for a single Figma component or component set — state coverage (default/hover/focus/disabled/error/active/loading), focus-indicator quality and contrast, non-color state differentiation, target size, annotation completeness, and color-blind simulation (protanopia/deuteranopia/tritanopia), all rolled into per-category 0–100 scores and prioritized recommendations. Use when the user wants to vet ONE component before shipping it: triggers 'audit this component', 'accessibility score for this button', 'is this component set accessible', 'check the states on this component', 'does my button have a focus state', 'color blind check', 'rate this component for a11y', 'component accessibility scorecard'. Works on ANY Figma plan. For a broad sweep over a whole page/frame use lint-design-figma; for CODE-side (HTML) checks use scan-code-accessibility-figma.

설치 수
1
GitHub Stars
14
업데이트
6월 1일
southleft
커뮤니티

check-design-parity-figma

Compare a Figma node's actual specs against a code spec (the values your component renders) and get a 0–100 parity score, a list of discrepancies, and fix suggestions. Use to detect design-to-code DRIFT: triggers 'check design parity', 'does my code match the Figma', 'compare this component to the design', 'is my implementation faithful', 'find differences between design and code', 'verify the build matches Figma', 'design QA against code', 'parity score'. Reads the node's visual / typography / spacing / token / accessibility specs via usefigma (any plan) and diffs them against a codeSpec you provide. Complements the native getdesigncontext: instead of GENERATING code, it VALIDATES that existing code stayed in sync with the design.

설치 수
1
GitHub Stars
14
업데이트
6월 1일