design-critique
Skill17 starsChanged 8 months agoMITView on GitHub
Critique an existing design (web page, HTML/React UI, screenshot, generated image, or Figma frame) with a repeatable procedure: capture it (Playwright screenshots or Read for images), run automated checks (axe, style inventory), score against a weighted rubric, and output severity-ranked fixes with code, then re-verify. Use after any design is produced or when asked to review one. Trigger phrases: "design critique", "review design", "improve design", "design audit", "design feedback", "evaluate UI", "design score", "accessibility audit", "visual review", "design assessment"
- Installs packages
37 other projects use a version of this.
Adopted by
Most recently taken up by
- nisarth/claude-skills-storetheir own version, first seen Nov 8, 2026
- Tcuzzo/backs-aios-skillstheir own version, first seen Nov 1, 2026
- davisbuilds/dojotheir own version, first seen Nov 1, 2026
- vijaysuperpositionist/skillstheir own version, first seen Nov 1, 2026
- microsoft/amplifier-app-papercliptheir own version, first seen Oct 25, 2026
- whanoftheworld/graphic-skillstheir own version, first seen Oct 25, 2026
Used with
Projects with it also use color-system, ux-writing and 7 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
launchapp-devSkillcolor-system
Build a comprehensive color system with palette generation, semantic mapping, and accessibility compliance.
Also in 3 projects that use this
brianciouSkillux-writing
UX writing guidelines for reviewing and optimizing interface copy. Use when the user asks to review, improve, or rewrite UI text including button labels, error messages, onboarding flows, or any interface copy. Apply when auditing microcopy for web apps, mobile apps, or any digital product requiring clear, user-centered communication.
Also in 5 projects that use this
jpoindexterSkilldesign-system-audit
Audit code for design system violations - grid spacing, tokens, existing components
Also in 3 projects that use this
nandanosqlSkilldesign-brief
Create a design brief that clearly communicates the product context, user needs, constraints, and success criteria to the design team — bridging PM requirements and design execution.
Also in 3 projects that use this
GitHubSkillaccessibility-audit
Audits actual components and routes against applicable WCAG 2.2 A/AA criteria using consumer-owned design-system evidence and repository tools. Use when asked for an accessibility audit, a11y check, keyboard or focus review, contrast check, or screen-reader verification.
Also in 4 projects that use this
AnthropicSkillcompetitive-analysis
Framework for building competitive landscape decks — market positioning, competitor deep-dives, comparative analysis, strategic synthesis. Use when the user asks for a competitive landscape, competitor analysis, peer comparison, market positioning assessment, strategic review, or investment memo deck. Also triggers on "who are the competitors to X", "benchmark X against peers", "build a market map", or any request to systematically evaluate competitive dynamics across an industry.
Also in 3 projects that use this
Other versions37 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 37
- anthropics/knowledge-work-plugins★ 35ksame name
- cuellarfr/design-skills★ 94same name
- adityareddy-dev/deskstudio★ 43same name
- tdimino/claude-code-minoan★ 41same name
- launchapp-dev/animus-cli★ 39same name
- henrique-simoes/Istara★ 15same name
- aiatelie/ai-atelie★ 9same name
- mae616/ai-template★ 9same name
- shayan-m81/layerwright★ 8same name
- The-Utopia-Studio/skills★ 6same name
27 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository29 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- ad-creative-designSkill
- banner-designSkill
- brand-identitySkill
- card-designSkill
- color-paletteSkill
- dark-modeSkill
- dashboard-designSkill
- design-contextSkill
- design-systemSkill
- email-designSkill
- graphic-designSkill
- hero-sectionSkill
- icon-designSkill
- image-generationSkill
- image-treatmentSkill
- infographicSkill
- landing-page-designSkill
- layout-compositionSkill
- mobile-ui-designSkill
- motion-designSkill
- poster-designSkill
- presentation-designSkill
- product-mockupSkill
- social-media-graphicSkill
- thumbnail-designSkill
- typographySkill
- ui-designSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 5 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 31 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Read .agents/design-context.md (see design-context) for brand colors, fonts, style archetype, audience, and tone.
- Distinctive: line 22
Never critique from source code alone.
- Distinctive: line 51
Treat the numbers as evidence, not verdicts: a contrast "failure" on a disabled control or decorative text may be fine.
- Very specific: line 54
Look at desktop-fold.png for 5 seconds' worth: write down what you noticed first, second, third, and what the page is asking you to do.
- Distinctive: line 57
After fixes are applied, re-run the capture and compare before/after screenshots (Step 9).
- Distinctive: line 373
If you applied the fixes, re-run the capture script into a new folder and Read the before and after screenshots of the same viewport side …
- Distinctive: line 447
Provide specific fixes: Always include code, never just describe.
“Common” is measured: kept by at least 6 in 10 of the 31 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Design Critique
Systematically evaluate existing designs and provide specific, actionable improvements with code.
Prerequisites
- Read
.agents/design-context.md(seedesign-context) for brand colors, fonts, style archetype, audience, and tone. "On-brand" is judged against this file, not taste. If it doesn't exist, say the Consistency/Aesthetics scores are judged without brand context. - Understand the project's purpose, audience, and the one action the design should drive.
- Never critique from source code alone. Look at the rendered result first (Step 0).
Step 0: Capture the Artifact (Always First)
| Artifact | How to look at it |
| HTML file / local dev server / URL | Run the capture script below, then Read every PNG it writes |
| PNG/JPG/WebP (screenshot, generated image, poster) | Read the file. For small details, crop/zoom with Pillow (Image.open(p).crop(box).resize(...)) and Read the crop |
| Figma frame | Figma MCP get_screenshot (plus get_variable_defs for tokens) if connected; otherwise ask for an export |
| React/Vue component | Render it in the project's dev server or Storybook, then treat as a URL |
Capture script -- bundled at <design-critique>/scripts/audit.mjs (<design-critique> is this skill's directory). Needs Playwright with Chromium; npm i -D axe-core enables offline accessibility checks (otherwise it loads axe from a CDN):
node <design-critique>/scripts/audit.mjs <url-or-html-file> audit/ # 375, 768, 1440 px
node <design-critique>/scripts/audit.mjs http://localhost:3000 audit/ --widths 390,1280It writes {mobile,tablet,desktop}-fold.png (first impression), *-full.png, desktop-dark-fold.png, and report.json (also printed), containing:
| Section | What it measures |
widths.<name> | Horizontal overflow, font sizes / families / text colors in use (consistency), off-4px-grid spacing, tap targets under 24px, text failing WCAG contrast against its nearest solid background, text sitting on images (check those by eye) |
darkMode | Contrast failures with prefers-color-scheme: dark |
structure | lang, viewport meta, h1 count, skipped heading levels, images without alt, unlabeled form controls, lazy-loaded images in the first viewport (LCP risk), animation with no prefers-reduced-motion rule |
axe | axe-core violations: rule id, impact, count, first selector |
Treat the numbers as evidence, not verdicts: a contrast "failure" on a disabled control or decorative text may be fine; say so explicitly.
Procedure (same order every time, so critiques are comparable):
- Look at
desktop-fold.pngfor 5 seconds' worth: write down what you noticed first, second, third, and what the page is asking you to do. That is your hierarchy evidence. - Walk Steps 1-7 using the screenshots plus the JSON. Every finding must cite evidence: a screenshot region, a measured value, or an axe rule id.
- Assign severity (Step 8), score (Step 10), and write the report.
- After fixes are applied, re-run the capture and compare before/after screenshots (Step 9).
For static images (posters, ads, social graphics, generated images) there is no DOM: skip keyboard/performance checks, estimate contrast by sampling pixel colors with Pillow (im.getpixel((x, y))) and the WCAG formula, and also judge the image at its real display size (e.g. downscale a thumbnail to 320px wide and Read it). To fix a generated image, give concrete edit instructions for the image-generation skill rather than CSS.
Step 1: Visual Hierarchy Assessment
Evaluate how effectively the design guides the user's eye.
Checklist
- Primary focal point: Is there one clear element that draws attention first?
- Secondary elements: Can you identify a clear 2nd and 3rd level of importance?
- Size contrast: Is the most important element the largest? Is there enough size difference between levels?
- Color contrast: Does the primary CTA use the strongest color? Are secondary elements visually receded?
- Weight contrast: Do headings feel heavier than body text?
- Whitespace: Does the most important element have the most breathing room?
- Reading flow: Does the layout follow an F-pattern (content) or Z-pattern (landing page)?
Common Fixes
/* Problem: All elements same visual weight */
/* Fix: Create clear hierarchy with size and color */
/* Before: flat hierarchy */
.heading { font-size: 1.5rem; color: #333; }
.subheading { font-size: 1.25rem; color: #333; }
.body { font-size: 1rem; color: #333; }
/* After: clear hierarchy */
.heading { font-size: 2.5rem; font-weight: 800; color: var(--gray-900); letter-spacing: -0.02em; }
.subheading { font-size: 1.25rem; font-weight: 500; color: var(--gray-500); }
.body { font-size: 1rem; font-weight: 400; color: var(--gray-700); line-height: 1.65; }Step 2: Color Usage Evaluation
Checklist
- Palette cohesion: Are all colors from the same family/system or do some feel random?
- Meaningful color: Does each color serve a purpose (brand, semantic, decorative)?
- Color count: Are there too many colors? (Aim for 1-2 brand + 4 semantic + neutrals.)
- Contrast ratios: Does all text meet WCAG AA (4.5:1 normal; 3:1 for ≥24px or ≥18.66px bold)? Use axe's
color-contrastresults; for text over images/gradients, measure the worst spot in the screenshot. - Consistent semantic colors: Is red always error? Green always success?
- Dark mode: If present, are colors adapted (not just inverted)?
- Color-only information: Is any information conveyed by color alone? (It should not be.)
Common Fixes
/* Problem: Text fails contrast check */
/* Before: light gray on white */
.muted-text { color: #aaa; } /* ~2.3:1 on white -- FAILS AA */
/* Fix: darken until AA passes */
.muted-text { color: #737373; } /* 4.74:1 on white -- passes AA (design-context Neutral 500) */
/* Problem: Link indistinguishable from text */
/* Fix: underline + color */
a { color: var(--brand-500); text-decoration: underline; text-underline-offset: 2px; }Step 3: Typography Consistency Check
Checklist
- Font count: Max 2 typefaces (3 with monospace). More feels chaotic.
- Size scale: Do sizes follow a consistent scale ratio or are they arbitrary?
- Weight usage: Are only 2-3 weights used? (400, 600, 700 is a good set.)
- Line height: Is body text 1.5-1.75? Are headings 1.1-1.3?
- Line length: Is body text constrained to 45-75 characters per line?
- Consistency: Same element types use same styles throughout?
- Text wrap: Are headings using
text-wrap: balance(no single-word last lines)? - Scale evidence: The capture JSON
fontSizesshould show roughly 5-8 distinct sizes; 12+ means no scale. - Responsive: Does text scale appropriately on mobile?
Common Fixes
/* Problem: Line length too long */
/* Before: text spans full 1400px container */
.content { max-width: 1400px; }
/* Fix: constrain prose */
.content { max-width: 1400px; }
.content .prose { max-width: 65ch; }
/* Problem: Arbitrary font sizes -- Fix: adopt the typography skill's modular scale */
:root {
--type-ratio: 1.25; /* design-context Scale Ratio */
--text-base: 1rem;
--text-lg: calc(var(--text-base) * var(--type-ratio));
--text-xl: calc(var(--text-lg) * var(--type-ratio)); /* ...see typography Step 1 */
}Step 4: Spacing and Alignment Audit
Checklist
- Consistent spacing: Are gaps between similar elements the same?
- Spacing scale: Do spacings use a base unit (4px or 8px multiples)?
- Alignment: Are elements aligned to a grid? Left edges lining up?
- Proximity: Are related items closer together than unrelated items?
- Padding balance: Is internal padding consistent within components?
- Vertical rhythm: Is there a consistent rhythm to the vertical spacing?
- Edge consistency: Are page margins consistent across sections?
Common Fixes
/* Problem: Inconsistent spacing */
/* Before: random pixel values */
.card { padding: 17px; margin-bottom: 23px; }
.section { padding: 45px 30px; }
/* Fix: use a 4px/8px scale */
.card { padding: var(--space-5); margin-bottom: var(--space-6); }
.section { padding: var(--space-12) var(--space-8); }
/* Problem: Misaligned elements */
/* Fix: use consistent padding and max-width */
.container {
max-width: 1200px;
margin-inline: auto;
padding-inline: var(--space-6);
}Step 5: Accessibility Review
Contrast
- Normal text: 4.5:1 minimum contrast ratio.
- Large text (≥24px, or ≥18.66px bold): 3:1 minimum.
- UI components (borders, icons): 3:1 against adjacent colors.
- Focus indicators: 3:1 against adjacent background.
Keyboard Navigation
- All interactive elements are focusable.
- Focus order follows visual order.
- Focus indicator is visible and has sufficient contrast.
- No keyboard traps (user can always tab away).
- Skip-to-content link exists.
Screen Reader
- Images have meaningful alt text (or
alt=""if decorative). - Form inputs have associated labels.
- Icon-only buttons have
aria-label. - Headings form a logical outline (no skipped levels).
- Dynamic content changes are announced (aria-live regions).
Common Fixes
/* Problem: Custom focus style removed */
/* Before */
*:focus { outline: none; } /* NEVER DO THIS */
/* Fix: custom but visible focus */
*:focus-visible {
outline: 2px solid var(--brand-500);
outline-offset: 2px;
}
/* Problem: No skip link */
/* Fix: */
.skip-link {
position: absolute;
top: -100%;
left: 0;
padding: 0.5rem 1rem;
background: var(--brand-500);
color: white;
z-index: 9999;
}
.skip-link:focus {
top: 0;
}<a href="#main-content" class="skip-link">Skip to main content</a>Step 6: Responsive Behavior Check
Checklist
- Mobile layout: Does the layout stack sensibly on small screens?
- Touch targets: At least 24x24px (WCAG 2.2 AA, SC 2.5.8; see
smallTargetsin the JSON); 44x44px recommended on mobile. - Text readability: Is body text at least 16px on mobile (no zoom needed)?
- Horizontal scroll: Is there any horizontal overflow?
- Images: Do images resize appropriately (max-width: 100%)?
- Navigation: Is mobile navigation accessible and usable?
- Breakpoints: Do layouts transition smoothly between breakpoints?
Common Fixes
/* Problem: Fixed widths cause overflow */
/* Before */
.card { width: 400px; }
/* Fix: flexible with max */
.card { width: 100%; max-width: 400px; }
/* Problem: Small touch targets */
/* Before */
.icon-button { width: 24px; height: 24px; }
/* Fix: larger hit area, same visual icon (works with box-sizing: border-box) */
.icon-button {
min-width: 44px;
min-height: 44px;
display: inline-grid;
place-items: center;
}
/* Problem: Images overflow container */
img {
max-width: 100%;
height: auto;
}Step 7: Performance Impact Assessment
Checklist
- Font loading: Using
font-display: swap? Preloading critical fonts? - Image formats: Using AVIF/WebP with fallbacks, and
srcset+sizesso phones don't download desktop images? - Image sizing: Are images sized appropriately (not 4000px for a 400px display)?
- Animation performance: Animations using only
transformandopacity? - CSS efficiency: Any redundant or overriding styles?
- Layout shifts: Are dimensions reserved for images/embeds (aspect-ratio, width/height)?
- Excessive shadows/blurs: Are there complex box-shadows on frequently painted elements?
Common Fixes
/* Problem: Animation causes layout recalculation */
/* Before */
.card:hover { margin-top: -5px; } /* triggers layout */
/* Fix: use transform */
.card:hover { transform: translateY(-5px); } /* GPU composited */
/* Problem: Layout shift from images */
/* Fix: put the intrinsic size in HTML (<img width="1600" height="900">), then: */
img { max-width: 100%; height: auto; }Step 8: Severity and Recommendation Format
Severity Levels (assign exactly one per issue)
| Severity | Criteria | Examples |
| Critical | Blocks a user from completing the core task, or fails WCAG A/AA on core content | Body text 2.3:1, CTA invisible on mobile, keyboard trap, horizontal scroll on mobile, missing labels on form fields |
| High | Core task works but is noticeably harder, or the design undermines its main goal | No clear primary CTA, competing focal points, off-brand colors/fonts, tap targets < 24px |
| Medium | Visible polish/consistency problem most users feel but can work around | 10+ font sizes, off-grid spacing, inconsistent radii, weak secondary hierarchy |
| Low | Refinement a designer would notice | Heading widows, slightly loose letter-spacing, minor alignment drift |
Order the fix list by severity, then by impact ÷ effort within a severity.
Recommendation Format
### [Severity] Issue: [What's wrong]
**Category**: Hierarchy | Color | Typography | Spacing | Accessibility | Responsive | Performance
**Evidence**: [screenshot + region, measured value, or axe rule id]
**Problem**: [1-2 sentences: what's wrong and why it matters]
**Fix**: [Specific CSS/HTML using the project's tokens]
**Impact**: [What improves]Example
### [High] Issue: Hero headline, subtitle, and CTA compete for attention
**Category**: Hierarchy
**Evidence**: desktop-fold.png -- headline 28px/600, subtitle 24px/600, CTA is a gray outline button
**Problem**: Nothing reads first, and the only action looks secondary.
**Fix**: .hero-headline { font-size: clamp(2.5rem, 5vw + 1rem, 5rem); font-weight: 800; }
.hero-subtitle { font-size: var(--text-xl); color: var(--text-secondary); max-width: 50ch; }
.hero-cta { background: var(--interactive-primary); color: white; }
**Impact**: Headline -> value prop -> CTA reads in order within 3 seconds.Step 9: Before/After Verification
A critique is not done until the fixes are checked on the rendered page.
- For each fix, show the current CSS (before) and the improved CSS (after), and say what changed and why. Use existing tokens (
--space-*,--text-*,--bg-*,--text-primary,--interactive-primary,--radius-*,--shadow-*); never introduce new hard-coded values. - If you applied the fixes, re-run the capture script into a new folder and Read the before and after screenshots of the same viewport side by side.
- Confirm every Critical/High issue is resolved (axe violations gone, overflow false, targets ≥ 24px) and nothing regressed at the other widths or in dark mode. Re-score only after this check.
Step 10: Scoring Framework
Rate the design across these dimensions (1-10 scale):
Categories
| Category | Weight | What to evaluate (checklist steps) |
| Hierarchy | 25% | Clear focal points, scannable, directed flow (Step 1, 5-second test) |
| Consistency | 25% | Spacing scale, color system, type system, brand match (Steps 2-4, capture JSON) |
| Aesthetics | 25% | Color harmony, whitespace, polish, fit to style archetype |
| Usability | 25% | Accessibility, responsiveness, clarity, performance (Steps 5-7, axe) |
Overall = weighted average, rounded to one decimal. Caps keep scores honest: any open Critical issue caps its category at 4 and the overall at 6; any open High issue caps its category at 7. Aesthetics must cite at least one concrete observation, not just "looks modern."
Scoring Rubric
| Score | Meaning |
| 1-2 | Fundamentally broken. Major rework needed. |
| 3-4 | Significant issues. Multiple areas need attention. |
| 5-6 | Functional but unpolished. Clear improvement areas. |
| 7-8 | Good. Minor refinements would elevate it. |
| 9-10 | Excellent. Professional quality, well-executed. |
Report Template
## Design Critique Report
### Overall Score: X/10
| Category | Score | Notes |
|-------------|-------|--------------------------------------|
| Hierarchy | X/10 | [brief note] |
| Consistency | X/10 | [brief note] |
| Aesthetics | X/10 | [brief note] |
| Usability | X/10 | [brief note] |
### Top 3 Strengths
1. [What's working well]
2. [What's working well]
3. [What's working well]
### Issues by Severity
| # | Severity | Category | Issue | Evidence |
|---|----------|----------|-------|----------|
| 1 | Critical | ... | ... | ... |
### Fixes (in priority order, with code -- Step 8 format)
### Quick Wins (< 5 min each)
- [Small change, big impact]
- [Small change, big impact]Critique Process Summary
- Capture the artifact (Step 0) and look at the screenshots before reading code.
- Read design context and understand goals.
- Assess visual hierarchy: Is there a clear 1-2-3 priority?
- Evaluate colors: Cohesive? Accessible? Purposeful?
- Check typography: Consistent scale? Good line length? Readable?
- Audit spacing: Using a system? Aligned? Consistent?
- Review accessibility: Contrast, focus, labels, keyboard?
- Test responsive: Mobile stacking, touch targets, overflow?
- Check performance: Animations efficient? Images sized? Fonts loaded?
- Provide specific fixes: Always include code, never just describe.
- Score and prioritize: Assign severity, apply caps, rank fixes.
- Re-verify: Re-capture after fixes and confirm Critical/High issues are gone (Step 9).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

