a692570/design-extractor

GitHub: a692570/design-extractor

一款 Chrome 扩展,从任意网站提取 CSS 设计令牌与组件结构并输出为 Markdown,供 AI 重建 UI。

Stars: 1 | Forks: 0

# 设计系统提取器 一款 Chrome 扩展程序,可一键反编译任意网站的设计系统:CSS 变量、组件结构、计算样式和关键帧动画,并打包为单个 Markdown 文件,可直接喂给 AI 重建 UI。 ## 功能 大多数设计克隆工具从截图中提取颜色。此工具读取真正的“源”:CSS 自定义属性、计算样式和组件 HTML。输出是一个结构化的 Markdown 文件,包含开发者忠实重建设计所需的一切。 **一键、一个文件。喂给 Claude 或 GPT,然后说“帮我构建类似这样的东西”。** ## 处理流程 | 层 | 提取内容 | 重要性 | |----|----------|--------| | CSS 自定义属性 | `:root` 变量(真实的设计令牌) | 现代网站将整个系统存储在 `--color-primary`、`--spacing-lg` 等中;计算样式无法获取这些。 | | 样式表遍历 | 原始 CSS(未解析前) | 获取 `rem`、`var()`、`clamp()` 原始值,而非解析后的像素。 | | 组件 HTML | 骨架化导航、英雄区、卡片、页脚 | 仅凭令牌颜色无法告诉你“该把样式放在哪里”。 | | 计算样式 | 对真实 DOM 元素执行 `getComputedStyle()` | 适用于 CDN 托管的 CSS(如 Webflow、Framer),此时样式表遍历会失效。 | | 关键帧动画 | 所有样式表中的 `@keyframes` 规则 | 捕获入场动画、闪烁效果和过渡动画。 | 整个流程完全在客户端运行。无服务器,无 API 调用。 ## 演示:anthropic.com 该扩展运行在 [anthropic.com](https://anthropic.com),生成了一个名为 `anthropic-design-system.md` 的文件。该文件被直接传入 AI,未提供其他上下文。以下是结果: | 原始站点 | 从提取的 `.md` 克隆的版本 | |----------|--------------------------| | ![Anthropic.com](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/cc6be1913f083546.png) | ![Clone](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/0353b4eb18083547.png) | AI 从 `.animate-word` 类和提取样式中的 `opacity/transform` 过渡值推断出了逐词出现的动画效果。跑马灯条带则来自关键帧部分的 `@-webkit-keyframes marquee` 规则。两者均未被明确描述,但数据已足够。 ## 输出格式 扩展程序会生成一个以站点命名的单一合并文件: ``` cloudflare-workers-design-system.md wisprflow-design-system.md anthropic-design-system.md ``` 结构: ``` # 站点名称设计系统 > Extracted from https://site.com --- ## 检测到的框架 ## 设计令牌(CSS 自定义属性) ### 颜色 ### 排版令牌 ### 间距令牌 ### 动画令牌 ## 原始 CSS 变量(完整转储) --- ## 导航 ## 英雄 ## CTA 按钮 ## 页脚 (skeletonized HTML with [TEXT] and [URL] placeholders) --- ## 导航样式 ## 英雄样式 ## 卡片样式 ## 页脚样式 ## 关键帧动画 ``` ## 安装 尚未上架 Web Store。侧载只需 30 秒: 1. [下载最新版本](https://github.com/a692570/design-extractor/releases/latest) 并解压 2. 打开 `chrome://extensions`(或 `edge://extensions`) 3. 开启 **开发者模式**(右上角) 4. 点击 **加载已解压的扩展程序** 并选择解压后的文件夹 5. 访问任意网站并点击扩展图标 ## 提取内容与未覆盖内容 ### 提取良好: - CSS 自定义属性(设计令牌) - 保留 `clamp()` 值的字体比例尺 - 间距系统 - 组件 HTML 结构与类名 - 通过 `getComputedStyle()` 获取的计算样式(可捕获 CDN 托管的 CSS) - `@keyframes` 动画 - 框架检测(Tailwind、shadcn/ui、MUI、Bootstrap、Radix 等) ### 无法提取: - Canvas/WebGL 动画(运行时生成,无 CSS 源) - Lottie/Rive 动画(需要原始 JSON) - 专有字体(仅捕获名称,建议备用字体) ## 扩展前缀过滤 提取器会过滤由浏览器扩展(如 Speechify、Grammarly、1Password)注入的 CSS 变量,以免污染输出。从 212 个原始属性中,可得到约 70 个干净属性。 ## 技术细节 清单 V3。无外部依赖。完全在浏览器中运行。三个注入脚本: - `content-script.js`:采样 DOM 元素,读取计算样式,收集站点信号 - `runStructureScript`:提取并骨架化组件 HTML - `runStylesScript`:通过 `getComputedStyle()` 查找组件类对应的 CSS 规则 Service Worker 负责编排、标准化并生成 Markdown。 ## 许可证 MIT
标签:AI辅助开发, Computed Style, CSSOM, CSS变量, DOM解析, Markdown导出, SEO: 网站克隆, SEO: 设计系统提取, 云资产清单, 关键帧动画, 关键词: AI构建UI, 关键词: Claude, 关键词: GPT, 前端分析, 功能: 动画捕获, 功能: 提取设计令牌, 功能: 组件骨架化, 单文件导出, 反调试, 威胁情报, 客户端提取, 开发者工具, 技术栈: CSS, 技术栈: Web扩展, 数据可视化, 组件结构, 网页克隆, 自定义属性, 自定义脚本, 设计克隆, 设计系统, 逆向工程, 防御加固