Skip to content
Back to skills

Design System Extract

ASecurity

从用户提供的截图/URL/代码库/品牌资料中提取设计 Token(配色、字体、间距、圆角、阴影、卡片样式),并细化所有可复用组件的完整规范(变体、状态、尺寸)。一个技能覆盖 Token 抽取与组件细化两个阶段。

  • 279 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
design

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add infometa/workbuddyskills --skill design-system-extract --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Design System Extract?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Design System Extract
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/infometa-design-system-extract/badge)](https://www.skillsdirectory.com/skills/infometa-design-system-extract)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: design-system-extract
description: "从用户提供的截图/URL/代码库/品牌资料中提取设计 Token(配色、字体、间距、圆角、阴影、卡片样式),并细化所有可复用组件的完整规范(变体、状态、尺寸)。一个技能覆盖 Token 抽取与组件细化两个阶段。"
trigger:
  - 用户提供了参考截图
  - 用户提供了参考 URL
  - 用户提供了现有代码库
  - 用户提供了品牌资料(品牌指南、设计文件等)
  - DesignSystemManifest 完成后需要细化组件规范
---

# 设计系统抽取与组件细化(Design System Extract)

合并了 Token 抽取与组件细化两个阶段。从素材中提取设计 Token 整理成 DesignSystemManifest,再基于设计系统细化所有可复用组件的完整规范,产出 ComponentSpec。

## 触发时机

- 用户提供了参考素材(截图/URL/代码库/品牌资料)
- DesignSystemManifest 完成后,需要细化组件规范
- 用户要求整理组件库

## 第一部分:设计 Token 抽取

从提供的素材中系统性地提取设计 Token,整理成 DesignSystemManifest 格式。

### 1. 配色方案抽取

- **主色(Primary)**:页面中出现频率最高、面积最大的品牌色
- **辅色(Secondary)**:用于支撑主色的次要颜色
- **强调色(Accent)**:用于 CTA、高亮、关键交互的颜色
- **语义色(Semantic)**:success(绿)、warning(黄)、danger(红)、info(蓝)
- **中性色(Neutral)**:文本色、背景色、边框色、禁用色
- **标注方式**:同时用 oklch 和 hex 标注,oklch 便于程序化调色,hex 便于直接使用
- **缺失处理**:如果素材中无法区分辅色和强调色,标注为"缺失"并询问用户

### 2. 字体抽取

- **字体族**:识别标题字体和正文字体(截图识别注明置信度,代码库读取 CSS font-family)
- **字重**:提取使用的字重值(如 400、500、700)
- **字号梯度**:按比例排列(H1/H2/H3/H4/Body/Small/Caption),标注比例系统(1.250/1.333/1.5)
- **行高 / 字间距**:提取标题和正文使用的行高值
- **缺失处理**:无法确定字体时,提供 2-3 个风格匹配的候选并询问用户

### 3. 间距抽取

- **基础间距单位**:判断 4px 还是 8px(测量元素间距找最小公约数)
- **间距标尺**:xs(4px) / sm(8px) / md(16px) / lg(24px) / xl(32px) / 2xl(48px) / 3xl(64px)
- **缺失处理**:无法判断时默认 8px 并标注"推断值"

### 4. 圆角抽取

- **圆角标尺**:0px(直角)、4px(微)、8px(小)、12px(中)、16px(大)、9999px(胶囊)
- **按组件标注**:不同组件可能使用不同圆角

### 5. 阴影抽取

- **阴影层级**:sm(细微浮起)、md(中等浮起)、lg(强浮起)
- **标注方式**:`box-shadow` 完整 CSS 值

### 6. 卡片样式抽取

- **容器样式**:背景色、边框、圆角、内边距、阴影
- **内容布局**:标题区域、内容区域、操作区域的排布方式

### 输出:DesignSystemManifest

```markdown
# DesignSystemManifest

> 来源:{素材类型和描述}
> 抽取时间:{日期}
> 置信度:{高/中/低}

## 1. 配色方案
| 角色 | 色名 | OKLCH | HEX | 用途 |

## 2. 字体
| 层级 | 字体族 | 字重 | 字号 | 行高 | 用途 |

## 3. 间距标尺
| 标记 | 值 | 用途 |

## 4. 圆角
| 标记 | 值 | 适用组件 |

## 5. 阴影
| 层级 | CSS 值 | 用途 |

## 6. 卡片样式

## 7. 组件清单(初步)
| 组件 | 用途 | 备注 |

## 缺失项
- [ ] {缺失项1} — {询问内容}
```

### 缺失项处理规则

- 信息不全时用 checklist 标注缺失项,每个附一句具体询问内容
- 一次性集中询问,不反复追问
- 可从上下文合理推断的值标注"推断值"并继续,不阻塞流程

---

## 第二部分:组件细化

基于 DesignSystemManifest,列出所有识别到的可复用组件,每个组件标注完整规范。

### 每个组件的标注结构

**1. 组件名称**:语义化命名(PascalCase,如 `PrimaryButton`、`ProductCard`)

**2. 用途**:一句话说明 + 使用场景

**3. 变体(Variants)**
- 尺寸:sm / md / lg
- 风格:primary / secondary / ghost / outline
- 布局:horizontal / vertical
- 状态:editable / read-only

**4. 状态(States)**
- **default**:默认状态 — 背景/文字色/边框/阴影
- **hover**:悬停 — 变化项(颜色变化、阴影提升、微动效)
- **active**:按下/选中 — 变化项
- **focus**:键盘聚焦 — focus ring 样式(必须有可见焦点指示器)
- **disabled**:禁用 — 透明度、色彩变化
- **error**:错误状态(表单组件)— 错误色应用方式和提示位置

**5. 间距和尺寸规范**
- 外尺寸:宽高(固定值或 min/max 约束)
- 内边距:上/右/下/左,引用间距标尺
- 元素间距:组件内部 gap
- 最小触控区域:移动端 ≥ 44px

### 输出:ComponentSpec

```markdown
# ComponentSpec

> 来源:{DesignSystemManifest / 截图 / 原型代码}
> 组件总数:{N}
> 生成时间:{日期}

## 组件 1:{ComponentName}

### 用途
{一句话说明}

### 变体
| 变体名 | 差异说明 | 使用场景 |

### 状态
| 状态 | 背景 | 文字色 | 边框 | 阴影 | 其他 |

### 尺寸规范
- 宽度:{值或约束}
- 内边距:{上} {右} {下} {左}(引用间距标尺)
- 最小触控区域:{值}px

### Token 引用
- 主色 → `{color-token}`
- 字体 → `{font-token}`
- 圆角 → `{radius-token}`
- 阴影 → `{shadow-token}`

## 组件清单汇总
| # | 组件名 | 类别 | 变体数 | 状态数 |

## 缺失项
- [ ] {缺失项} — {说明}
```

### 组件类别参考

| 类别 | 常见组件 |
|------|---------|
| 按钮 | PrimaryButton、SecondaryButton、GhostButton、IconButton |
| 表单 | Input、Textarea、Select、Checkbox、Radio、Switch、Slider |
| 反馈 | Toast、Alert、Modal、Tooltip、Badge |
| 导航 | Tabs、Breadcrumbs、Pagination、NavBar、SideBar |
| 展示 | Card、Table、List、Avatar、Tag、Chip |
| 布局 | Container、Grid、Stack、Divider |
| 媒体 | Image、VideoPlayer、Carousel、Gallery |

### 提取规则

1. **从截图提取**:识别视觉上重复出现的 UI 模式,推断组件边界和状态
2. **从代码提取**:读取组件目录结构,解析 props 和 CSS 类名推断变体和状态
3. **从 DesignSystemManifest 提取**:根据设计系统中的组件规范章节细化
4. **不要遗漏状态**:即使素材中没展示所有状态,也必须推断并标注完整状态,标注"推断"来源
5. **所有色值引用 Token**:不直接写 hex 值,引用 DesignSystemManifest 中定义的 Token 名

## 注意事项

- 从截图提取时色彩识别可能有偏差,标注置信度
- 从代码库提取时优先读取 CSS 变量定义和 Tailwind config
- 从 URL 提取时分析 CSS 计算样式而非内联样式
- 抽取结果必须与素材一致,不要"美化"或"修正"原始设计
- 如果素材本身存在设计系统不一致的问题,如实标注
- 如果发现素材中存在未在 DesignSystemManifest 中定义的新 Token,回溯更新 DesignSystemManifest
- 组件规范中的所有数值必须引用设计系统的 Token,不临时发明

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…