style-extract
从代码或设计图提取样式变量
mkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/doccker/cc-use-exp/HEAD/.claude/commands/style-extract.md -o ~/.claude/commands/style-extract.mdstyle-extract.md
从 Vue 组件或设计图中提取样式规范。
## 输入
「$ARGUMENTS」
**支持的输入类型**:
| 输入 | 示例 | 说明 |
|------|------|------|
| 目录 | `web/src` | 扫描所有样式文件 |
| 文件 | `Card.vue` | 分析单个组件 |
| 图片 | `design.png` | 识别设计稿样式 |
| 空 | | 默认扫描 `web/src` |
---
## 模式 A:代码提取(目录/文件)
### A1. 扫描样式文件
查找以下文件:
- `*.vue` 中的 `<style>` 块
- `*.css` / `*.scss` 文件
- Element Plus 主题变量覆盖
### A2. 提取变量
| 类别 | 提取内容 |
|------|---------|
| 颜色 | `--el-color-*`、自定义颜色变量 |
| 字体 | `font-size`、`font-family`、`font-weight` |
| 间距 | `padding`、`margin`、`gap` 常用值 |
| 圆角 | `border-radius` 常用值 |
| 阴影 | `box-shadow` 定义 |
### A3. 输出 JSON
```json
{
"source": "代码提取",
"path": "[扫描路径]",
"colors": {
"primary": "#409EFF",
"success": "#67C23A",
"warning": "#E6A23C",
"danger": "#F56C6C"
},
"typography": {
"font_family": "Helvetica Neue, PingFang SC, ...",
"font_sizes": ["12px", "14px", "16px", "18px"]
},
"spacing": ["4px", "8px", "12px", "16px", "24px"],
"border_radius": {
"small": "2px",
"base": "4px",
"large": "8px"
}
}
```
### A4. 差异分析
与 `frontend-style.md` 规范对比,列出不一致的地方。
---
## 模式 B:图片识别(设计稿/截图)
### B1. 读取图片
使用 Read 工具读取图片文件,进行视觉分析。
### B2. 识别样式
从图片中识别:
- **颜色**:主色、辅助色、背景色、文字色
- **字体**:标题字号、正文字号、字重
- **间距**:元素间距、内边距规律
- **圆角**:按钮、卡片、输入框的圆角
- **阴影**:卡片阴影、弹窗阴影
### B3. 输出 CSS 变量
```css
:root {
/* 从设计图识别 - [图片文件名] */
/* 颜色 */
--color-primary: #409EFF;
--color-secondary: #909399;
--color-text: #303133;
--color-text-secondary: #606266;
--color-background: #F5F7FA;
/* 字体 */
--font-size-title: 18px;
--font-size-body: 14px;
--font-size-small: 12px;
/* 间距 */
--spacing-xs: 4px;
--spacing-sm: 8px;
--spacing-md: 16px;
--spacing-lg: 24px;
/* 圆角 */
--radius-sm: 2px;
--radius-base: 4px;
--radius-lg: 8px;
/* 阴影 */
--shadow-card: 0 2px 12px rgba(0, 0, 0, 0.1);
}
```
### B4. 使用建议
给出如何将识别的样式应用到项目中的建议。
---
## 输出
无论哪种模式,最终输出:
1. 提取的样式变量(JSON 或 CSS 格式)
2. 与现有规范的差异分析
3. 统一建议当设计或修改 REST API 响应结构、处理 API 返回值,或生成 Excel/CSV/PDF/对账文件等下游产物时触发。防止 API 设计缺陷导致的字段错位、类型歧义,以及生成产物时关键字段缺失但静默成功的问题。
网关/代理/WAF/CDN 中间件的安全关键词匹配实现规范,防止纯子串匹配误判正常响应内容中的技术术语(如 Cloudflare、502、error)
当 API/任务可能执行超过 10 秒(批量数据处理、远程 API 批量调用、全表扫描、跨租户聚合)时触发。防止同步接口被网关 30s 超时切断、用户重复点击触发并发、状态缓存内存泄漏等问题。提供异步任务状态机标准模板。
当用户操作 .sh、Dockerfile、Makefile、.yml、.yaml 文件,或在 Markdown 中编写 bash 代码块时触发。提供 Bash 编写规范。
当编写新模块、设计接口、重构代码或代码审查时触发。提供经典模块化六原则检查清单(大小适中/调用深度/扇入扇出/边界清晰/作用域内聚/可预测性),适用于 PR/Review/新模块设计场景。
涉及浏览器、编辑器、CDN/WAF、IM 平台、操作系统剪贴板、第三方 SaaS 等"外部黑盒系统"的代码编写或 bug 调试时触发。强制先抓真实环境数据再推理,避免连续 2 轮"凭代码推理"的修复 no-op。关键词:粘贴/复制异常、跨平台显示不一致、第三方 API 怪结果、CDN/WAF 拦截、本地复现失败、HTML→MD 转换丢属性。
当重构涉及字段映射(dataIndex、枚举映射、类型转换)时触发。防止字段名推测错误,确保字段映射的正确性。
前端开发规范,包含 Vue 3 编码规范、UI 风格约束、TypeScript 规范等