🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx @anthropic-ai/skills install github/awesome-copilot/web-design-reviewer
💡 提示:需要 Node.js 和 NPM
网页设计审查员
此技能能够对网站设计质量进行视觉检查和验证,并在源代码层面识别和修复问题。
适用范围
- 静态网站(HTML/CSS/JS)
- 单页应用程序框架,如 React / Vue / Angular / Svelte
- 全栈框架,如 Next.js / Nuxt / SvelteKit
- 内容管理系统平台,如 WordPress / Drupal
- 任何其他网络应用
前提条件
必需
- 目标网站必须正在运行
- 本地开发服务器(例如
http://localhost:3000) - 预发布环境
- 生产环境(用于只读审查)
- 本地开发服务器(例如
- 必须提供浏览器自动化功能
- 截图捕获
- 页面导航
- 文档对象模型信息检索
- 访问源代码(进行修复时)
- 项目必须位于工作区内
工作流程概览
flowchart TD
A[步骤 1:信息收集] --> B[步骤 2:视觉检查]
B --> C[步骤 3:问题修复]
C --> D[步骤 4:重新验证]
D --> E{还有问题吗?}
E -->|是| B
E -->|否| F[完成报告]
步骤 1:信息收集阶段
1.1 确认网址
如果未提供网址,询问用户:
请提供要审查的网站网址(例如
http://localhost:3000)
1.2 了解项目结构
在进行修复时,收集以下信息:
| 项目 | 示例问题 |
|---|---|
| 框架 | 你使用的是 React / Vue / Next.js 等吗? |
| 样式方法 | CSS / SCSS / Tailwind / CSS-in-JS 等? |
| 源代码位置 | 样式文件和组件位于哪里? |
| 审查范围 | 仅特定页面还是整个网站? |
1.3 自动项目检测
尝试从工作区中的文件自动检测:
检测目标:
├── package.json → 框架和依赖项
├── tsconfig.json → TypeScript 使用情况
├── tailwind.config → Tailwind CSS
├── next.config → Next.js
├── vite.config → Vite
├── nuxt.config → Nuxt
└── src/ 或 app/ → 源代码目录
1.4 识别样式方法
| 方法 | 检测 | 编辑目标 |
|---|---|---|
| 纯 CSS | *.css 文件 |
全局 CSS 或组件 CSS |
| SCSS/Sass | *.scss、*.sass |
SCSS 文件 |
| CSS Modules | *.module.css |
模块 CSS 文件 |
| Tailwind CSS | tailwind.config.* |
组件中的 className |
| styled-components | 代码中的 styled. |
JS/TS 文件 |
| Emotion | @emotion/ 导入 |
JS/TS 文件 |
| 其他 CSS-in-JS | 内联样式 | JS/TS 文件 |
步骤 2:视觉检查阶段
2.1 页面遍历
- 导航到指定的网址
- 捕获截图
- 检索文档对象模型结构/快照(如可能)
- 如果存在其他页面,通过导航进行遍历
2.2 检查项目
布局问题
| 问题 | 描述 | 严重性 |
|---|---|---|
| 元素溢出 | 内容超出父元素或视口 | 高 |
| 元素重叠 | 元素意外重叠 | 高 |
| 对齐问题 | 网格或 Flex 对齐问题 | 中 |
| 间距不一致 | 内边距/外边距不一致 | 中 |
| 文本裁剪 | 长文本未正确处理 | 中 |
响应式问题
| 问题 | 描述 | 严重性 |
|---|---|---|
| 不移动友好 | 在小屏幕上布局错乱 | 高 |
| 断点问题 | 屏幕尺寸变化时过渡不自然 | 中 |
| 触摸目标 | 移动端按钮过小 | 中 |
可访问性问题
| 问题 | 描述 | 严重性 |
|---|---|---|
| 对比度不足 | 文本与背景对比度低 | 高 |
| 无焦点状态 | 键盘导航时无法确定状态 | 高 |
| 缺少替代文本 | 图片无替代文本 | 中 |
视觉一致性
| 问题 | 描述 | 严重性 |
|---|---|---|
| 字体不一致 | 混用字体族 | 中 |
| 颜色不一致 | 未统一使用品牌颜色 | 中 |
| 间距不一致 | 相似元素间间距不统一 | 低 |
2.3 视口测试(响应式)
在以下视口进行测试:
| 名称 | 宽度 | 代表性设备 |
|---|---|---|
| 移动端 | 375px | iPhone SE/12 mini |
| 平板 | 768px | iPad |
| 桌面端 | 1280px | 标准个人电脑 |
| 宽屏 | 1920px | 大显示器 |
步骤 3:问题修复阶段
3.1 问题优先级排序
block-beta
columns 1
block:priority["优先级矩阵"]
P1["P1:立即修复\n(影响功能性的布局问题)"]
P2["P2:接下来修复\n(降低用户体验的视觉问题)"]
P3["P3:尽可能修复\n(轻微视觉不一致)"]
end
3.2 识别源文件
从有问题的元素识别源文件:
- 基于选择器的搜索
- 通过类名或 ID 搜索代码库
- 使用
grep_search探索样式定义
- 基于组件的搜索
- 从元素文本或结构识别组件
- 使用
semantic_search探索相关文件
- 文件模式过滤
样式文件: src/**/*.css, styles/**/* 组件: src/components/**/* 页面: src/pages/**, app/**
3.3 应用修复
特定框架的修复指南
详情请参阅 references/framework-fixes.md。
修复原则
- 最小更改:只做解决问题所需的最小更改
- 尊重现有模式:遵循项目中现有的代码风格
- 避免破坏性更改:注意不要影响其他区域
- 添加注释:在适当位置添加注释说明修复原因
步骤 4:重新验证阶段
4.1 修复后确认
- 重新加载浏览器(或等待开发服务器热模块替换)
- 捕获修复区域的截图
- 对比修复前后
4.2 回归测试
- 验证修复没有影响其他区域
- 确认响应式显示未被破坏
4.3 迭代决策
flowchart TD
A{还有问题吗?}
A -->|是| B[返回步骤 2]
A -->|否| C[进入完成报告]
迭代限制:如果针对特定问题需要超过 3 次修复尝试,请咨询用户
输出格式
审查结果报告
# 网页设计审查结果
## 摘要
| 项目 | 值 |
|------|-------|
| 目标网址 | {网址} |
| 框架 | {检测到的框架} |
| 样式方法 | {CSS / Tailwind / 等} |
| 测试的视口 | 桌面端、移动端 |
| 检测到的问题 | {N} |
| 已修复的问题 | {M} |
## 检测到的问题
### [P1] {问题标题}
- **页面**: {页面路径}
- **元素**: {选择器或描述}
- **问题**: {问题的详细描述}
- **已修复文件**: `{文件路径}`
- **修复详情**: {更改描述}
- **截图**: 修复前后
### [P2] {问题标题}
...
## 未修复的问题(如有)
### {问题标题}
- **原因**: {为何未修复/无法修复}
- **建议操作**: {给用户的建议}
## 建议
- {对未来改进的建议}
必需能力
| 能力 | 描述 | 必需 |
|---|---|---|
| 网页导航 | 访问网址、页面跳转 | ✅ |
| 截图捕获 | 页面图像捕获 | ✅ |
| 图像分析 | 视觉问题检测 | ✅ |
| 文档对象模型检索 | 页面结构检索 | 推荐 |
| 文件读写 | 源代码读取和编辑 | 修复时需要 |
| 代码搜索 | 项目内代码搜索 | 修复时需要 |
参考实现
使用 Playwright 模型上下文协议实现
Playwright MCP 被推荐为此技能的参考实现。
| 能力 | Playwright 模型上下文协议工具 | 用途 |
|---|---|---|
| 导航 | browser_navigate |
访问网址 |
| 快照 | browser_snapshot |
检索文档对象模型结构 |
| 截图 | browser_take_screenshot |
用于视觉检查的图像 |
| 点击 | browser_click |
与交互元素交互 |
| 调整大小 | browser_resize |
响应式测试 |
| 控制台 | browser_console_messages |
检测 JS 错误 |
配置示例(模型上下文协议服务器)
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest", "--caps=vision"]
}
}
}
其他兼容的浏览器自动化工具
| 工具 | 特性 |
|---|---|
| Selenium | 广泛的浏览器支持,多语言支持 |
| Puppeteer | 专注于 Chrome/Chromium,Node.js |
| Cypress | 易于与端到端测试集成 |
| WebDriver BiDi | 标准化的下一代协议 |
同样的工作流程可以使用这些工具实现。只要它们提供必要的能力(导航、截图、文档对象模型检索),工具的选择是灵活的。
最佳实践
要做的(推荐)
- ✅ 在修复前始终保存截图
- ✅ 一次只修复一个问题并逐个验证
- ✅ 遵循项目现有的代码风格
- ✅ 在进行重大更改前与用户确认
- ✅ 详细记录修复细节
不要做的(不推荐)
- ❌ 未经确认进行大规模重构
- ❌ 忽视设计系统或品牌指南
- ❌ 忽略性能的修复
- ❌ 一次性修复多个问题(难以验证)
故障排除
问题:找不到样式文件
- 检查
package.json中的依赖项 - 考虑可能是 CSS-in-JS
- 考虑样式是在构建时生成的
- 询问用户样式方法
问题:修复未生效
- 检查开发服务器热模块替换是否工作
- 清除浏览器缓存
- 如果项目需要构建,则重新构建
- 检查 CSS 优先级问题
问题:修复影响了其他区域
- 回滚更改
- 使用更具体的选择器
- 考虑使用 CSS 模块或作用域样式
- 咨询用户以确认影响范围
📄 原始文档
完整文档(英文):
https://skills.sh/github/awesome-copilot/web-design-reviewer
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)