southleft/skills-for-figma

lint-design-figma

Lint a Figma node tree for WCAG 2.2 accessibility AND design-system quality — contrast, target size, focus indicators, color-only signaling, hardcoded colors, missing text styles, detached components, and more.

Zobacz źródło
Oryginalny dokument Skill

Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.

lint-design-figma — WCAG 2.2 + design-system lint over a node tree

Walk a Figma node (or the whole current page) and report accessibility and design-quality problems in one pass. Runs entirely through use_figma, so it works on any Figma plan and inspects the real design (true colors, real auto-layout, actual variant names) rather than generated code.

Why this is unique: the native Figma MCP (get_design_context, get_metadata, etc.) reads designs for code generation but does not lint them. There is no built-in "is this accessible / token-clean?" check on the design side. This skill fills that gap with a faithful port of 14 WCAG 2.2 rules plus 6 design-system/layout rules.

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).
  • Per-component deep scorecard (state coverage, color-blind sim, 0–100 scores) → use

audit-accessibility-figma.

  • CODE-side a11y (axe-core over generated HTML) → use scan-code-accessibility-figma.
  • Design-vs-code drift → use check-design-parity-figma.

Workflow

  1. Pick the scope. Get the target NODE_ID (a frame, component set, or screen) from the user's

selection or a URL. Leave it null to lint the entire current page.

  1. Pick the rules. RULES defaults to ['all']. Narrow it to a group ('wcag',

'design-system', 'layout') or a specific rule id (e.g. 'wcag-contrast') to cut noise. The full catalog is in references/lint-rules.md.

  1. Run `scripts/lint-design.js` via use_figma

(skillNames: "lint-design-figma"). Edit the const inputs at the top first.

  1. Triage by severity. The result groups findings by rule, each carrying severity

(critical/warning/info) and wcagLevel (a/aa/aaa/best-practice/design-system). Lead with critical (contrast, target size, focus, color-only).

  1. Fix + re-lint. Apply fixes (via manage-variables-figma, figma-use, etc.) and re-run the

same scope to confirm summary.total dropped. Each finding includes the offending node.id so you can jump straight to it.

Key rules

  • Colors are 0–1 floats. Contrast math uses sRGB linearization + relative luminance; the script

ships its own helpers (no hex needed for input).

  • Background is inferred by walking ancestors for the nearest solid fill (defaults to white).

Contrast on semi-transparent fills is flagged approximate: true.

  • `MAX_DEPTH` (default 10) and `MAX_FINDINGS` (default 100) bound the walk. If truncated is

set, narrow the scope or raise the cap.

  • WCAG-honest severity: some rules (text size, line height, letter/paragraph spacing) are labelled

best-practice, not a hard WCAG failure — see lint-rules.md for the exact reasoning per rule.

  • Findings are descriptive, not auto-fixed. Confirm intent before bulk-editing a design.
z tego samego repozytorium

Więcej Skills

Wszystkie Skills
southleft
Społeczność

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.

instalacje
1
GitHub Stars
14
Aktualizacja
1 cze
southleft
Społeczność

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).

instalacje
1
GitHub Stars
14
Aktualizacja
1 cze
southleft
Społeczność

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.

instalacje
1
GitHub Stars
14
Aktualizacja
1 cze
southleft
Społeczność

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.

instalacje
1
GitHub Stars
14
Aktualizacja
1 cze