Skip to main content
ClaudeWave
Slash Command1k repo starsupdated 11d ago

style-extract

从代码或设计图提取样式变量

Install in Claude Code
Copy
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.md
Then start a new Claude Code session; the slash command loads automatically.

style-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. 统一建议
api-design-safetySkill

当设计或修改 REST API 响应结构、处理 API 返回值,或生成 Excel/CSV/PDF/对账文件等下游产物时触发。防止 API 设计缺陷导致的字段错位、类型歧义,以及生成产物时关键字段缺失但静默成功的问题。

api-proxy-safetySkill

网关/代理/WAF/CDN 中间件的安全关键词匹配实现规范,防止纯子串匹配误判正常响应内容中的技术术语(如 Cloudflare、502、error)

async-task-patternSkill

当 API/任务可能执行超过 10 秒(批量数据处理、远程 API 批量调用、全表扫描、跨租户聚合)时触发。防止同步接口被网关 30s 超时切断、用户重复点击触发并发、状态缓存内存泄漏等问题。提供异步任务状态机标准模板。

bash-styleSkill

当用户操作 .sh、Dockerfile、Makefile、.yml、.yaml 文件,或在 Markdown 中编写 bash 代码块时触发。提供 Bash 编写规范。

code-quality-principlesSkill

当编写新模块、设计接口、重构代码或代码审查时触发。提供经典模块化六原则检查清单(大小适中/调用深度/扇入扇出/边界清晰/作用域内聚/可预测性),适用于 PR/Review/新模块设计场景。

external-system-debuggingSkill

涉及浏览器、编辑器、CDN/WAF、IM 平台、操作系统剪贴板、第三方 SaaS 等"外部黑盒系统"的代码编写或 bug 调试时触发。强制先抓真实环境数据再推理,避免连续 2 轮"凭代码推理"的修复 no-op。关键词:粘贴/复制异常、跨平台显示不一致、第三方 API 怪结果、CDN/WAF 拦截、本地复现失败、HTML→MD 转换丢属性。

field-mapping-safetySkill

当重构涉及字段映射(dataIndex、枚举映射、类型转换)时触发。防止字段名推测错误,确保字段映射的正确性。

frontend-devSkill

前端开发规范,包含 Vue 3 编码规范、UI 风格约束、TypeScript 规范等