design-review
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseThis skill runs a structured design review of what has been built, measured against the design brief and the chosen aesthetic philosophy.
CRITICAL — Visual Screenshot CaptureYou MUST capture screenshots of the running application as part of every design review. Code review alone is insufficient — you need to see what the user sees. Follow the screenshot capture protocol in Step 3 below. This is not optional.
本技能会对照设计说明和选定的美学理念,对已构建的内容执行结构化设计评审。
重要提示 — 可视化截图采集每次设计评审都必须采集运行中应用的截图。仅靠代码评审是不够的,你需要看到用户实际看到的内容。请遵循下方第3步的截图采集规范,本步骤不可省略。
Example prompts
示例提示词
- "Review what I just built"
- "Run a design critique on the landing page"
- "Check this against the brief"
- "Here's a screenshot. How does it look?" [paste screenshot]
- "QA pass before I ship this"
- 「评审我刚构建的内容」
- 「对落地页执行设计评审」
- 「对照设计说明检查这个内容」
- 「这是截图,你觉得效果怎么样?」[粘贴截图]
- 「在我上线前做一轮QA检查」
Process
流程
-
Read the brief. Look for the active feature's brief at. If multiple feature folders exist under
.design/<feature-slug>/DESIGN_BRIEF.md, ask the user which feature to review. If no.design/folder exists, fall back to.design/in the project root. If neither exists, ask the user what the intended design direction was.DESIGN_BRIEF.md -
Explore the built code. Examine every component, page, and style file that was created or modified. Scan specifically for:
- All new or modified components and their relationship to pre-existing components
- Token/variable usage: are components using shared tokens or hardcoding values?
- Duplicate components that should be consolidated
- File naming and organization: do new files follow the project's conventions?
- Understand what was actually built, not what was planned.
-
Capture screenshots of the running application.This step is mandatory. Do not skip it. Do not rely only on user-provided screenshots.
Screenshot Tool Priority
Try each option in order. Use the first one that is available:- Playwright MCP (preferred). Check if the MCP server is available. If it is, use it — it gives you precise control over viewport sizing, full-page captures, and file naming.
plugin-playwright-playwright - Cursor IDE Browser (second choice). If Playwright MCP is not available, use the MCP server's
cursor-ide-browsertool instead. It has the same core capabilities.browser_take_screenshot - Ask the user (last resort). If neither MCP server nor in-app browser is available, you MUST ask the user to provide screenshots manually. Be specific about what you need:
- "I don't have access to a browser tool. To complete the visual review I need screenshots of the running application. Please provide:"
- A full-page screenshot at desktop width (1280px)
- A full-page screenshot at tablet width (768px)
- A full-page screenshot at mobile width (375px)
- Dark mode variants (if applicable)
- Any specific component or interactive state you want reviewed
- Ask the user to paste/attach the images directly in chat, or to save them into the folder themselves.
screenshots/ - Do not skip the visual review. Wait for the user to provide screenshots before proceeding with the checklist.
Screenshot Save Location
All screenshots MUST be saved to asubfolder inside the feature'sscreenshots/directory — the same folder where.design/and other design flow files live.DESIGN_BRIEF.mdPath pattern:.design/<feature-slug>/screenshots/If the brief lives at, screenshots go to.design/onboarding-flow/DESIGN_BRIEF.md. Create the folder if it does not exist..design/onboarding-flow/screenshots/If nofolder exists (legacy project or standalone review), fall back to a.design/folder in the project root.screenshots/Use descriptive filenames that encode what was captured:.design/ └── onboarding-flow/ ├── DESIGN_BRIEF.md ├── DESIGN_REVIEW.md └── screenshots/ ├── review-homepage-desktop-1280.png ├── review-homepage-tablet-768.png ├── review-homepage-mobile-375.png ├── review-homepage-dark-mode-desktop-1280.png └── review-card-component-hover.pngScreenshot Capture Protocol
a. Navigate to the application. Ask the user for the URL if not obvious from the project (e.g.,). Usehttp://localhost:3000to open it.browser_navigateb. Capture responsive breakpoints. At minimum, capture these three viewports for every key page/view:Breakpoint Width × Height Filename suffix Mobile 375 × 812 -mobile-375Tablet 768 × 1024 -tablet-768Desktop 1280 × 800 -desktop-1280Useto set the viewport before each screenshot. Usebrowser_resizewithbrowser_take_screenshotto capture the entire scrollable page, and save with thefullPage: trueparameter pointing to thefilenamefolder.screenshots/Playwright MCP example sequence (assuming feature slug is):onboarding-flow1. browser_navigate → { url: "http://localhost:3000" } 2. browser_resize → { width: 1280, height: 800 } 3. browser_take_screenshot → { type: "png", filename: ".design/onboarding-flow/screenshots/review-homepage-desktop-1280.png", fullPage: true } 4. browser_resize → { width: 768, height: 1024 } 5. browser_take_screenshot → { type: "png", filename: ".design/onboarding-flow/screenshots/review-homepage-tablet-768.png", fullPage: true } 6. browser_resize → { width: 375, height: 812 } 7. browser_take_screenshot → { type: "png", filename: ".design/onboarding-flow/screenshots/review-homepage-mobile-375.png", fullPage: true }c. Capture interactive states (when relevant).- Hover states on buttons, cards, links
- Focus states on form fields
- Open states on dropdowns, modals, menus
- Error/success states on forms
- Loading and empty states
d. Capture dark mode (if the project supports it). Toggle dark mode and repeat the responsive breakpoint captures within the filename.-dark-modee. Capture specific components. If the review focuses on a particular component, use theandelementparameters to screenshot just that element.refAnalyze Every Screenshot
After capturing, visually analyze each screenshot against the design brief. For each screenshot:- Compare against the brief's aesthetic direction
- Check visual hierarchy: is the most important element the most prominent?
- Check spacing consistency: do margins and padding look even and intentional?
- Check color: does the palette match the brief's direction?
- Check typography: are font sizes, weights, and spacing visually correct?
- Check responsive adaptation: does the layout properly reorganize (not just shrink)?
- Note rendering issues that code review alone would miss (font loading failures, broken images, layout overflow, z-index problems, incorrect border-radius, color mismatches)
Reference specific screenshots by filename in the review output so findings are traceable. - Playwright MCP (preferred). Check if the
-
Run the review checklist below. For each category, note what passes and what needs refinement. Be specific. Reference exact components, files, line numbers, and screenshot filenames.
-
Produce a prioritized refinement list. Group issues by severity:
- Must fix: Broken functionality, accessibility failures, major deviations from the brief.
- Should fix: Inconsistencies, missing states, responsive issues.
- Could improve: Polish, animation refinement, typography fine-tuning.
-
Save the review asinside the feature's
DESIGN_REVIEW.mdfolder (next to.design/<feature-slug>/). If noDESIGN_BRIEF.mdfolder exists, save to the project root. Include a "Screenshots Captured" section listing all screenshots taken with their paths. Present the review directly as well if the user prefers..design/
-
阅读设计说明:在路径下查找当前活跃功能的设计说明。如果
.design/<功能标识>/DESIGN_BRIEF.md目录下存在多个功能文件夹,询问用户需要评审哪个功能。如果不存在.design/文件夹,回退到项目根目录的.design/。如果两个文件都不存在,询问用户预期的设计方向是什么。DESIGN_BRIEF.md -
排查已构建的代码:检查所有新建或修改的组件、页面和样式文件,重点排查:
- 所有新建/修改的组件,以及它们和现有组件的关联关系
- Token/变量使用情况:组件是使用共享token还是硬编码数值?
- 是否存在需要合并的重复组件
- 文件命名和组织:新文件是否遵循项目规范?
- 明确实际构建的内容,而非计划中的内容。
-
采集运行中应用的截图本步骤是强制要求,不得跳过,也不要仅依赖用户提供的截图。
截图工具优先级
按顺序尝试以下选项,使用第一个可用的工具:- Playwright MCP(首选):检查MCP服务是否可用,如果可用就使用它——它支持精准控制视口尺寸、整页采集和文件命名。
plugin-playwright-playwright - Cursor IDE浏览器(次选):如果Playwright MCP不可用,改用MCP服务的
cursor-ide-browser工具,它具备相同的核心能力。browser_take_screenshot - 询问用户(最后方案):如果MCP服务和内置浏览器都不可用,你必须要求用户手动提供截图,明确说明需要的内容:
- 「我无法访问浏览器工具,要完成可视化评审,我需要运行中应用的截图,请提供:」
- 桌面端宽度(1280px)的整页截图
- 平板端宽度(768px)的整页截图
- 移动端宽度(375px)的整页截图
- 深色模式版本(如果适用)
- 任何需要评审的特定组件或交互状态
- 要求用户直接在聊天中粘贴/附加图片,或者自行保存到文件夹下。
screenshots/ - 不要跳过可视化评审,等待用户提供截图后再继续后续检查清单流程。
截图保存位置
所有截图必须保存到对应功能目录下的.design/子文件夹中——即screenshots/和其他设计流程文件所在的文件夹。DESIGN_BRIEF.md路径规则:.design/<功能标识>/screenshots/如果设计说明存放在,则截图存放在.design/onboarding-flow/DESIGN_BRIEF.md路径下,文件夹不存在则新建。.design/onboarding-flow/screenshots/如果不存在文件夹(旧项目或独立评审),则回退到项目根目录的.design/文件夹。screenshots/使用描述性文件名,说明采集的内容:.design/ └── onboarding-flow/ ├── DESIGN_BRIEF.md ├── DESIGN_REVIEW.md └── screenshots/ ├── review-homepage-desktop-1280.png ├── review-homepage-tablet-768.png ├── review-homepage-mobile-375.png ├── review-homepage-dark-mode-desktop-1280.png └── review-card-component-hover.png截图采集规范
a. 导航到应用:如果无法从项目中明确获取访问URL(比如),询问用户获取。使用http://localhost:3000打开对应页面。browser_navigateb. 采集响应式断点:每个核心页面/视图至少采集以下三个视口的截图:断点类型 宽度 × 高度 文件名后缀 移动端 375 × 812 -mobile-375平板端 768 × 1024 -tablet-768桌面端 1280 × 800 -desktop-1280每次截图前使用设置视口尺寸,使用browser_resize并设置browser_take_screenshot采集完整可滚动页面,通过fullPage: true参数指定保存到filename文件夹的路径。screenshots/Playwright MCP示例执行流程(假设功能标识为):onboarding-flow1. browser_navigate → { url: "http://localhost:3000" } 2. browser_resize → { width: 1280, height: 800 } 3. browser_take_screenshot → { type: "png", filename: ".design/onboarding-flow/screenshots/review-homepage-desktop-1280.png", fullPage: true } 4. browser_resize → { width: 768, height: 1024 } 5. browser_take_screenshot → { type: "png", filename: ".design/onboarding-flow/screenshots/review-homepage-tablet-768.png", fullPage: true } 6. browser_resize → { width: 375, height: 812 } 7. browser_take_screenshot → { type: "png", filename: ".design/onboarding-flow/screenshots/review-homepage-mobile-375.png", fullPage: true }c. 采集交互状态(如果相关)- 按钮、卡片、链接的悬停状态
- 表单字段的聚焦状态
- 下拉框、弹窗、菜单的展开状态
- 表单的错误/成功状态
- 加载和空状态
d. 采集深色模式(如果项目支持):切换深色模式,重复响应式断点采集,文件名中添加标识。-dark-modee. 采集特定组件:如果评审聚焦于某个特定组件,使用和element参数仅对该元素截图。ref分析所有截图
采集完成后,对照设计说明对每张截图做可视化分析,针对每张截图:- 对照设计说明的美学方向做对比
- 检查视觉层次:最重要的元素是不是最突出的?
- 检查间距一致性:边距和内边距是否均匀、符合设计逻辑?
- 检查颜色:配色是否符合设计说明的方向?
- 检查排版:字体大小、字重和间距视觉上是否正确?
- 检查响应式适配:布局是否合理重排(而不只是缩小)?
- 记录仅靠代码评审会遗漏的渲染问题(字体加载失败、图片损坏、布局溢出、z-index问题、border-radius错误、颜色不匹配)
在评审输出中通过文件名引用具体截图,确保问题可溯源。 - Playwright MCP(首选):检查
-
执行下方的评审检查清单:针对每个分类,记录通过项和需要优化的项,描述要具体,引用明确的组件、文件、行号和截图文件名。
-
输出优先级优化列表:按严重程度对问题分组:
- 必须修复:功能损坏、可访问性故障、严重偏离设计说明的问题。
- 应该修复:一致性问题、缺失状态、响应式问题。
- 可以优化:细节打磨、动画优化、排版微调。
-
将评审结果保存为功能文件夹下的
.design/<功能标识>/文件(和DESIGN_REVIEW.md同目录)。如果不存在DESIGN_BRIEF.md文件夹,保存到项目根目录。添加「已采集截图」章节,列出所有截图的路径。如果用户需要,也可以直接展示评审内容。.design/
Review Checklist
评审检查清单
Visual Hierarchy
视觉层次
- Is the most important content the most visually prominent on each page/view?
- Does the type scale create clear levels of importance (heading, subheading, body, caption)?
- Do interactive elements (buttons, links, inputs) have enough visual weight to be found without hunting?
- Is there a clear reading order? Can you trace where the eye goes first, second, third?
- 每个页面/视图中最重要的内容是不是视觉上最突出的?
- 字体层级是否体现了清晰的重要度区分(标题、副标题、正文、说明文字)?
- 交互元素(按钮、链接、输入框)是否有足够的视觉权重,不需要用户费力查找?
- 是否有清晰的阅读顺序?你能不能追踪到视线第一、第二、第三落点的顺序?
Consistency
一致性
- Are spacing values consistent? Check padding and margins against the established scale (4px/8px base or whatever the project uses).
- Are colors used consistently? Check that the same semantic meaning always maps to the same color (primary actions, errors, success states, disabled states).
- Are border radii, shadow values, and font sizes reused from a shared set, or are there one-off values?
- Do similar components look and behave similarly? (e.g., all cards, all form fields, all buttons within a category.)
- 间距值是否一致?对照既定的间距规范(4px/8px基础或项目使用的其他规范)检查内边距和外边距。
- 颜色使用是否一致?检查相同的语义含义是否始终对应相同的颜色(主操作、错误、成功状态、禁用状态)。
- 圆角、阴影值和字体大小是否复用共享配置,还是存在一次性的自定义值?
- 同类组件的外观和行为是否一致?(比如所有卡片、所有表单字段、同一分类下的所有按钮。)
Aesthetic Fidelity
美学保真度
- Does the implementation match the named philosophy from the brief?
- Would someone looking at this immediately recognize the intended aesthetic direction?
- Are there elements that break the aesthetic (a generic component in an otherwise distinctive interface, a conflicting font, an out-of-place color)?
- Does the level of detail match the philosophy? (Minimalist designs should not have unnecessary decoration. Maximalist designs should not have empty, unfinished areas.)
- 实现效果是否匹配设计说明中指定的设计理念?
- 看到这个实现的人能不能立刻识别出预期的美学方向?
- 是否存在破坏整体美学的元素(在风格独特的界面中出现通用组件、冲突的字体、突兀的颜色)?
- 细节程度是否匹配设计理念?(极简设计不应该有多余的装饰,繁复设计不应该有空旷、未完成的区域。)
Component Quality
组件质量
- Do existing components from the codebase appear correctly, or were they reimplemented?
- Are new components following the same API patterns (props, naming, file organization) as existing ones?
- Are there duplicate components that should be consolidated?
- 代码库中的现有组件是否正常显示,还是被重新实现了?
- 新组件是否遵循和现有组件一致的API模式(props、命名、文件组织)?
- 是否存在需要合并的重复组件?
States and Interactions
状态和交互
- Do interactive elements have all necessary states: default, hover, focus, active, disabled?
- Do form fields have states for: empty, filled, error, success, disabled?
- Are loading states handled? Empty states?
- Do transitions and animations match the philosophy's motion guidelines?
- Is there visual feedback for every user action?
- 交互元素是否具备所有必要的状态:默认、悬停、聚焦、激活、禁用?
- 表单字段是否具备以下状态:空、已填写、错误、成功、禁用?
- 是否处理了加载状态?空状态?
- 过渡和动画是否匹配设计理念的动效规范?
- 每个用户操作是否都有视觉反馈?
Responsive Behavior
响应式表现
- Does the layout work at mobile (375px), tablet (768px), and desktop (1280px+)?
- Do components adapt appropriately? (Not just shrink, but reorganize when needed.)
- Is touch target size adequate on mobile (minimum 44x44px)?
- Does text remain readable at all breakpoints? No text too small, no lines too wide (max 65-75 characters).
- 布局在移动端(375px)、平板端(768px)和桌面端(1280px+)下是否正常工作?
- 组件是否适配合理?(不只是缩小,必要时会重排。)
- 移动端的触控目标尺寸是否足够(最小44x44px)?
- 所有断点下的文字是否保持可读性?没有过小的文字,也没有过宽的行(最多65-75个字符)。
Accessibility
可访问性
- Color contrast: Do text/background combinations meet WCAG AA (4.5:1 for body text, 3:1 for large text)?
- Keyboard navigation: Can every interactive element be reached and activated with keyboard alone?
- Focus indicators: Are focus rings visible and styled consistently?
- Semantic HTML: Are headings in order? Are landmarks used (main, nav, header, footer)? Are form labels associated?
- Screen reader: Do images have alt text? Do icons have labels? Are decorative elements hidden from assistive technology?
- Motion: Is there a reduced-motion media query for users who need it?
- 颜色对比度:文本/背景组合是否满足WCAG AA标准(正文4.5:1,大文本3:1)?
- 键盘导航:所有交互元素是否都可以仅通过键盘访问和触发?
- 聚焦指示器:聚焦环是否可见且样式一致?
- 语义化HTML:标题层级是否有序?是否使用了地标元素(main、nav、header、footer)?表单标签是否关联正确?
- 屏幕阅读器适配:图片是否有alt文本?图标是否有标签?装饰元素是否对辅助技术隐藏?
- 动效:是否为有需要的用户提供了减少动效的媒体查询支持?
Typography
排版
- Is the font actually loading? (Check for FOIT/FOUT flash.)
- Are line lengths comfortable for reading (45-75 characters on body text)?
- Is line height appropriate (1.4-1.6 for body, tighter for headings)?
- Is the type scale intentional, or are there arbitrary sizes?
- 字体是否正常加载?(检查FOIT/FOUT闪烁问题。)
- 行宽是否适合阅读(正文45-75个字符)?
- 行高是否合适(正文1.4-1.6,标题更紧凑)?
- 字体层级是否经过规划,还是存在随意设置的大小?
Dark Mode
深色模式
- If the project has dark mode tokens, are they applied correctly?
- Are all color values using CSS variables (not hardcoded hex values that won't switch)?
- Does the dark palette feel intentional for the chosen philosophy, or is it a simple inversion?
- Are shadows adjusted for dark mode (darker, more transparent)?
- Do accent colors maintain sufficient contrast against dark backgrounds?
- Is there a working toggle mechanism or support?
prefers-color-scheme
- 如果项目有深色模式token,是否正确应用?
- 所有颜色值是否使用CSS变量(而非不会切换的硬编码十六进制值)?
- 深色配色是否符合选定设计理念的设计逻辑,还是只是简单的颜色反转?
- 阴影是否针对深色模式做了调整(更深、更透明)?
- 强调色在深色背景下是否保持足够的对比度?
- 是否有可用的切换机制,或是支持?
prefers-color-scheme
Mobile-First
移动端优先
- Was the layout built mobile-first (using media queries, not
min-width)?max-width - Does the mobile layout work at 375px without horizontal scrolling?
- Is navigation adapted for mobile (not just a desktop nav that overflows)?
- Are touch targets at least 44x44px?
- Is body text at least 16px on mobile?
- 布局是否按移动端优先构建(使用媒体查询,而非
min-width)?max-width - 移动端布局在375px宽度下是否正常工作,没有横向滚动?
- 导航是否适配移动端(不只是会溢出的桌面端导航)?
- 触控目标是否至少44x44px?
- 移动端正文大小是否至少16px?
Output Format
输出格式
markdown
undefinedmarkdown
undefinedDesign Review: [Feature/Page Name]
设计评审:[功能/页面名称]
Reviewed against: DESIGN_BRIEF.md
Philosophy: [named philosophy]
Date: [date]
评审依据:DESIGN_BRIEF.md
设计理念:[指定的设计理念]
日期:[日期]
Screenshots Captured
已采集截图
| Screenshot | Breakpoint | Description |
|---|---|---|
| Desktop (1280×800) | [what it shows] |
| Tablet (768×1024) | [what it shows] |
| Mobile (375×812) | [what it shows] |
All screenshots are in..design/<feature-slug>/screenshots/
| 截图路径 | 断点类型 | 描述 |
|---|---|---|
| 桌面端 (1280×800) | [截图内容说明] |
| 平板端 (768×1024) | [截图内容说明] |
| 移动端 (375×812) | [截图内容说明] |
所有截图存放在目录下。.design/<功能标识>/screenshots/
Summary
总结
[2-3 sentences on overall quality and the biggest finding.]
[用2-3句话说明整体质量和最突出的问题。]
Must Fix
必须修复
- [Issue]: [Specific description with file/component reference]. See []. Fix: [concrete suggestion].
screenshots/[relevant-screenshot].png
- [问题]:[具体描述,附带文件/组件引用]。参见 []。修复方案:[具体建议]。
screenshots/[相关截图].png
Should Fix
应该修复
- [Issue]: [Description]. See []. Fix: [suggestion].
screenshots/[relevant-screenshot].png
- [问题]:[描述]。参见 []。修复方案:[建议]。
screenshots/[相关截图].png
Could Improve
可以优化
- [Issue]: [Description]. Suggestion: [idea].
- [问题]:[描述]。建议:[优化思路]。
What Works Well
亮点
[Note the strongest aspects of the implementation. This is not padding. Designers need to know what to keep doing.]
undefined[记录实现中最优秀的部分,这部分不是凑数,设计师需要知道哪些内容应该保持。]
undefined