Figma Design QA Skill

Runs a pre-handoff QA checklist on a Figma design before it goes to engineering.

Figma Design QA Skill — The Skill Playground: pick the Executive Update skill, fill in a few notes, hit run, and watch a structured executive… (from the mohitagw15856/pm-claude-skills README)

From the mohitagw15856/pm-claude-skills README — shows the whole collection, not only this skill. · view on GitHub

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/figma-design-qa.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit mohitagw15856/pm-claude-skills/skills/figma-design-qa#main ~/.claude/skills/figma-design-qa

For one project only, change the path to .claude/skills/figma-design-qa.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Figma Design QA Skill

Show the full text121 lines
namedescription
figma-design-qaRuns a pre-handoff QA checklist on a Figma design before it goes to engineering. Use when asked to QA a Figma design, do a pre-handoff check, or validate a Figma file is ready to build. Produces a structured QA report covering file hygiene, component usage, accessibility, and handoff readiness with explicit pass/fail status per item. Optimised for Opus 4.7 and newer models.

Figma Design QA Skill

Runs a systematic pre-handoff QA check on a Figma design — catching issues that cause engineering back-and-forth before they become expensive.

Required Inputs

Ask the user for these if not provided:

  • Feature or screen being QA-d (describe what has been designed)
  • Platform (iOS / Android / Web)
  • Design system (custom / Material / HIG / None)
  • Handoff tool (Figma Inspect / Zeplin / Storybook / Direct link)
  • QA depth (quick 15 min / standard 30 min / thorough 60 min)

Programmatic Helper

Contrast ratios cannot be eyeballed. The AA line sits at 4.5:1, and #777777 on white is 4.478 (fails) while #767676 is 4.54 (passes) — no amount of looking at a screenshot separates those. Compute them:

npx --yes notugly fix "#8ab4f8" "#ffffff"     # ratio, APCA, and the nearest passing colour
npx --yes notugly onepager <url> --out review.html   # every pairing, printable
npx --yes notugly vision                      # which colours merge for colour-blind viewers

notugly fix returns the ratio, the APCA lightness contrast, and the closest colour to the one already chosen that passes — same hue, same chroma. Paste those numbers into the tables below rather than estimating them.

Deterministic, zero dependencies, and no model call — so it costs nothing to run and gives the same answer every time.

QA is a pass/fail activity, so every contrast row needs a number and a verdict. For a deployed build, npx notugly check <url> exits non-zero on a failure, which makes it usable directly in CI rather than only by hand.

Output Structure

QA Report: [Feature] | [Date] | [Platform] Overall status: Ready / Minor fixes needed / Not ready

Section 1: File Hygiene
  • All layers named semantically (no "Rectangle 12")
  • No unused/hidden layers in final frames
  • Components from library (not detached copies)
  • All text uses text styles (not manual font settings)
  • All colours use styles or variables (not hex overrides)
  • Frames named to match screen map
  • No leftover prototype wires to wrong frames
Section 2: Component Usage
  • All buttons use library component
  • All inputs use library component
  • All icons from approved icon library
  • No custom components that should be in library
  • Variants used correctly (right size, state, type)
Section 3: Content and Copy
  • No placeholder text (Lorem ipsum) in final designs
  • All copy reviewed and approved
  • Realistic content used (not "User Name")
  • Long text edge cases tested
  • Error messages are human-readable
  • Empty states have copy and CTA
Section 4: States and Coverage
  • Default, Loading, Empty, Error, Success states
  • Interactive elements have hover/active (web)
  • Disabled states designed where applicable
Section 5: Accessibility
  • All text meets WCAG AA contrast (4.5:1 body, 3:1 large)
  • UI components meet 3:1 contrast against background
  • Touch targets minimum 44x44pt iOS / 48x48dp Android
  • Focus states for keyboard/switch navigation (web)
  • Information not conveyed by colour alone
  • Icons have text labels or accessible names annotated
Section 6: Handoff Readiness
  • Dev annotations on non-obvious interactions
  • Spacing uses Auto Layout (not absolute positioning)
  • Images/assets exported at correct resolutions
  • Design matches approved requirements
  • Link to prototype included
Issues Found

For each fail: [Issue] — Blocking / Fix before handoff / Fix in next iteration

  • What: [Specific layer/screen/element]
  • Fix: [Exact action needed]
  • Owner: [Designer/PM/Both]
Handoff Decision

Status, signed off by, date.

Quality Checks

  • All 6 sections completed
  • Every fail has a specific description and fix action
  • Blocking issues separated from minor ones
  • Handoff decision is explicit

Anti-Patterns

  • Do not produce a partial QA — every checklist category must be evaluated, not just the ones that are obviously problematic
  • Do not leave the handoff decision ambiguous — the output must explicitly state pass, pass with conditions, or fail
  • Do not skip accessibility checks — colour contrast, tap target size, and screen reader labels are required, not optional
  • Do not report issues without specifying which screen or component they appear on
  • Do not approve a design if any component is detached from the library without a documented reason

Example Trigger Phrases

  • "QA this Figma design before handoff"
  • "Run a pre-handoff check on [feature] design"
  • "Is this Figma design ready for engineering?"
  • "Do a design QA on [screen/feature]"
  • "What needs fixing before we hand this off?"
1---
2name: figma-design-qa
3description: "Runs a pre-handoff QA checklist on a Figma design before it goes to engineering. Use when asked to QA a Figma design, do a pre-handoff check, or validate a Figma file is ready to build. Produces a structured QA report covering file hygiene, component usage, accessibility, and handoff readiness with explicit pass/fail status per item. Optimised for Opus 4.7 and newer models."
4---
5 
6# Figma Design QA Skill
7 
8Runs a systematic pre-handoff QA check on a Figma design — catching issues that cause engineering back-and-forth before they become expensive.
9 
10## Required Inputs
11 
12Ask the user for these if not provided:
13- **Feature or screen being QA-d** (describe what has been designed)
14- **Platform** (iOS / Android / Web)
15- **Design system** (custom / Material / HIG / None)
16- **Handoff tool** (Figma Inspect / Zeplin / Storybook / Direct link)
17- **QA depth** (quick 15 min / standard 30 min / thorough 60 min)
18 
19 
20## Programmatic Helper
21 
22Contrast ratios cannot be eyeballed. The AA line sits at 4.5:1, and `#777777`
23on white is 4.478 (fails) while `#767676` is 4.54 (passes) — no amount of
24looking at a screenshot separates those. Compute them:
25 
26```bash
27npx --yes notugly fix "#8ab4f8" "#ffffff" # ratio, APCA, and the nearest passing colour
28npx --yes notugly onepager <url> --out review.html # every pairing, printable
29npx --yes notugly vision # which colours merge for colour-blind viewers
30```
31 
32`notugly fix` returns the ratio, the APCA lightness contrast, and the closest
33colour to the one already chosen that passes — same hue, same chroma. Paste
34those numbers into the tables below rather than estimating them.
35 
36Deterministic, zero dependencies, and **no model call** — so it costs nothing to
37run and gives the same answer every time.
38 
39QA is a pass/fail activity, so every contrast row needs a number and a verdict.
40For a deployed build, `npx notugly check <url>` **exits non-zero** on a failure,
41which makes it usable directly in CI rather than only by hand.
42 
43## Output Structure
44 
45QA Report: [Feature] | [Date] | [Platform]
46**Overall status:** Ready / Minor fixes needed / Not ready
47 
48### Section 1: File Hygiene
49- All layers named semantically (no "Rectangle 12")
50- No unused/hidden layers in final frames
51- Components from library (not detached copies)
52- All text uses text styles (not manual font settings)
53- All colours use styles or variables (not hex overrides)
54- Frames named to match screen map
55- No leftover prototype wires to wrong frames
56 
57### Section 2: Component Usage
58- All buttons use library component
59- All inputs use library component
60- All icons from approved icon library
61- No custom components that should be in library
62- Variants used correctly (right size, state, type)
63 
64### Section 3: Content and Copy
65- No placeholder text (Lorem ipsum) in final designs
66- All copy reviewed and approved
67- Realistic content used (not "User Name")
68- Long text edge cases tested
69- Error messages are human-readable
70- Empty states have copy and CTA
71 
72### Section 4: States and Coverage
73- Default, Loading, Empty, Error, Success states
74- Interactive elements have hover/active (web)
75- Disabled states designed where applicable
76 
77### Section 5: Accessibility
78- All text meets WCAG AA contrast (4.5:1 body, 3:1 large)
79- UI components meet 3:1 contrast against background
80- Touch targets minimum 44x44pt iOS / 48x48dp Android
81- Focus states for keyboard/switch navigation (web)
82- Information not conveyed by colour alone
83- Icons have text labels or accessible names annotated
84 
85### Section 6: Handoff Readiness
86- Dev annotations on non-obvious interactions
87- Spacing uses Auto Layout (not absolute positioning)
88- Images/assets exported at correct resolutions
89- Design matches approved requirements
90- Link to prototype included
91 
92### Issues Found
93For each fail:
94**[Issue] — Blocking / Fix before handoff / Fix in next iteration**
95- What: [Specific layer/screen/element]
96- Fix: [Exact action needed]
97- Owner: [Designer/PM/Both]
98 
99### Handoff Decision
100Status, signed off by, date.
101 
102## Quality Checks
103- [ ] All 6 sections completed
104- [ ] Every fail has a specific description and fix action
105- [ ] Blocking issues separated from minor ones
106- [ ] Handoff decision is explicit
107 
108## Anti-Patterns
109 
110- [ ] Do not produce a partial QA — every checklist category must be evaluated, not just the ones that are obviously problematic
111- [ ] Do not leave the handoff decision ambiguous — the output must explicitly state pass, pass with conditions, or fail
112- [ ] Do not skip accessibility checks — colour contrast, tap target size, and screen reader labels are required, not optional
113- [ ] Do not report issues without specifying which screen or component they appear on
114- [ ] Do not approve a design if any component is detached from the library without a documented reason
115 
116## Example Trigger Phrases
117- "QA this Figma design before handoff"
118- "Run a pre-handoff check on [feature] design"
119- "Is this Figma design ready for engineering?"
120- "Do a design QA on [screen/feature]"
121- "What needs fixing before we hand this off?"

Discussion

Alternatives

Also in Interface designSee all 106 in Design →
Frontend designGuidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.Design & UI · Apache-2.0ImpeccableUse when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.Design & UI · Apache-2.0Apple designApple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.Design & UI · MITBuilding AnimationsBuild an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Writes the implementation. Use when asked to animate something, add motion, make a component feel alive, or build a transition. For critiquing existing motion use review-animations; for auditing a whole codebase use improve-animations.Design & UI · MIT