TechApril 2026

别再手抄设计稿了:一个 Skill 把任意网站变成 AI 能读懂的设计文档

最近开源项目 design.md 很火——它把知名网站的设计风格写成了结构化文档,AI 读了就能模仿。但它只覆盖预设的站点。我做了一个 Agent Skill 叫 website-to-design-md,输入任意网址,自动逆向工程出完整的设计分析文档。本文介绍这个 Skill 的灵感来源、工作原理和实际效果。

2026-04-15作者:Scofield
Vibe CodingAgentSkillDesign SystemOpen SourceDesign to Code
别再手抄设计稿了:一个 Skill 把任意网站变成 AI 能读懂的设计文档

背景:design.md 为什么火了

最近有一个开源项目在开发者社区迅速走红:design.md

它做的事情很简单——把 Vercel、Linear、Stripe、Notion 这些知名网站的设计风格,写成结构化的 Markdown 文档。文档里包含色彩体系、字体层级、组件样式、间距规则等所有关键设计决策。AI Agent 读了这份文档之后,就能在生成前端代码时模仿对应网站的视觉风格。

这切中了当下 Vibe Coding 场景的一个痛点:AI 写代码越来越快,但写出来的东西"长得不好看"。你让 Agent 写一个 landing page,它可能在功能上完全正确,但视觉上一看就是"AI 味"——缺少成熟产品那种经过打磨的设计一致性。

design.md 的做法是给 AI 一份"视觉参考答案"。效果确实不错,但有一个明显的局限:它是手工策展的静态语料库。你想模仿 Airbnb 的风格?抱歉,库里还没有。你有一个自己喜欢的小众网站想借鉴?更不可能有。

这让我想到:与其等别人把设计文档写好,不如做一个工具,输入任意网址,自动生成这种文档。

我做了什么

我写了一个 Agent Skill 叫 website-to-design-md,它的定位很直接:

给我一个网址,我帮你把这个网站的设计系统逆向工程成一套分层的文档。

不是截个图让 AI 猜,而是系统性地分析:自动发现多个页面模板、通过浏览器检查工具抓取真实的计算样式和 CSS Token、区分全局规则和页面特有规则、记录每条结论的置信度和证据来源。

最终输出的不是一个笼统的"这个网站配色是蓝色",而是一套可以直接指导实现的结构化文档。

项目地址:github.com/Scofieldfree/website-to-design

和 design.md 的区别

两件事情解决的是同一类问题,但路径完全不同:

对比维度design.mdwebsite-to-design-md
本质静态语料库动态分析工具
覆盖范围预设的知名网站任意网站
输出结构单文件 DESIGN.md分层:DESIGN.md + TEMPLATE_MAP + PAGE_BLUEPRINT + EVIDENCE_REPORT
模板差异通常不区分自动识别不同页面模板,分开记录
证据追溯一般不提供记录证据来源和置信度
使用方式直接引用现有文档先运行 Skill 生成,再引用

简单来说:design.md 是一本"知名网站设计风格字典",而 website-to-design-md 是一台"设计风格扫描仪"。两者可以互补——你可以用我的 Skill 生成的文档贡献回 design.md 语料库。

工作原理

这个 Skill 的核心工作流分两个模式:

默认模式:只要设计系统概览

输入一个网址,输出一份 DESIGN.md。适合你只是想快速了解一个网站的配色、字体、组件风格,用作参考。

复刻模式:要更高保真度的实现指导

当你明确说要"模仿"或"复刻"某个网站的风格时,Skill 会自动进入复刻模式。除了 DESIGN.md,还会额外生成三份文档:

  • TEMPLATE_MAP.md——描述不同页面模板之间的差异。哪些规则是全局一致的,哪些是首页独有的、列表页独有的、详情页独有的。
  • PAGE_BLUEPRINT.md——描述页面的内容编排和节奏。Section 怎么堆叠、hero 区域的比例、card 每行几个、页面在哪里"呼吸"。
  • EVIDENCE_REPORT.md——记录分析的证据来源和置信度。哪些结论是通过 DevTools 直接检查确认的,哪些是从截图推断的。

分析流程

Skill 内部的执行步骤:

  1. 检查浏览器工具——如果有 Chrome DevTools MCP 或类似工具可用,优先用它直接检查计算样式、CSS 变量、DOM 结构,而不是只看截图。
  2. 自动发现页面——如果用户只给了首页 URL,Skill 会自动从导航和链接中发现同域名的代表性内页。
  3. 构建模板矩阵——把发现的页面按角色分类:首页、列表页、详情页、定价页等。
  4. 逐模板采集证据——对每个模板采样关键元素的计算样式:body、标题、正文、按钮、卡片、导航、输入框等。还会尝试捕获 hover、focus、sticky 等交互状态。
  5. 分类结论的作用域——把发现标记为 global(全局规则)、template-specific(模板特有)、page-specific(页面特有)或 uncertain(不确定)。
  6. 写入结构化文档——按模板输出规范格式的文档,确保和 design.md 语料库格式兼容。

实际效果:以 Airbnb 为例

仓库里附带了一个完整的实战案例——对 zh.airbnb.com 的分析。

运行 Skill 后生成了四份文档:

DESIGN.md 捕获了 Airbnb 的全局设计系统:明亮的白色画布、温暖的近黑文字、系统性的圆角体系(12px → 16px → 20px → 24px → 40px → 50%)、珊瑚色 #FF385C 作为克制的行动色、自有字体 Airbnb Cereal 从导航到正文通吃。

TEMPLATE_MAP.md 揭示了模板之间的结构差异:首页和体验页是横向滑动的发现轨道,搜索结果页分裂成列表+地图的双栏布局,房源详情页切换成信任模块+预订卡片的纵深结构。但跨模板的颜色、字体、圆角规则始终一致。

PAGE_BLUEPRINT.md 记录了页面的编排节奏:搜到对应的起承转合。

EVIDENCE_REPORT.md 记录了哪些数据是通过 DevTools 直接检查的、哪些是截图推断的、哪些地方存在不确定性。

更有意思的是仓库里的下游示例:基于 Airbnb 的分析文档,用一个转换 prompt 生成了一个完全不同领域的宠物服务预订网站。它继承了 Airbnb 的视觉语言——白色画布、搜索胶囊、图片先行的卡片浏览、信任模块——但内容完全是宠物服务的。这说明提取出来的设计系统确实是可迁移的,而不是绑定在原始业务内容上的。

如何使用

安装

skills/website-to-design-md 目录加载到你的 Agent Skill 系统里——无论是 Copilot、Claude Code、Cursor 还是其他支持 Skill 的 Agent 环境。

基本用法

直接告诉 Agent:"用 website-to-design-md 分析 https://example.com "。Skill 会自动开始工作。

获得最佳效果

  • 提供浏览器检查能力——如果你的环境有 Chrome MCP 或类似工具,分析质量会显著提升。Skill 优先使用工具检查而不是截图猜测。
  • 说明你的意图——如果你要复刻风格,明确说出来,Skill 会自动进入复刻模式生成完整的四份文档。
  • 不止看首页——Skill 会自动发现内页,但如果你知道有哪些关键页面类型值得分析,可以直接指定。

使用生成的文档

# 快速参考设计风格
→ 阅读 DESIGN.md

# 需要实现多个页面
→ 先读 TEMPLATE_MAP.md 了解模板差异
→ 再读 PAGE_BLUEPRINT.md 了解页面编排
→ 查 EVIDENCE_REPORT.md 确认哪些结论靠谱

# 风格迁移到新产品
→ 写一个转换 prompt,引用生成的全部文档作为视觉源
→ 指定新的产品定位、内容和页面需求

为什么要分层,而不是一个大文件

早期版本确实是单文件输出。但实际使用中发现,一个文件把全局规则、模板差异、页面布局和证据全部混在一起,下游 Agent 容易搞混——把首页独有的大 hero 当成全局风格,把某个模板的特殊处理泛化到所有页面。

分层之后:

  • DESIGN.md 只放稳定、重复出现的全局规则,Agent 可以放心地当作项目级别的设计基线。
  • TEMPLATE_MAP.md 明确告诉 Agent "这些差异是有意设计的,不要把它们统一掉"。
  • PAGE_BLUEPRINT.md 让 Agent 知道一个页面的 section 应该怎么排列,而不是随意堆组件。
  • EVIDENCE_REPORT.md 让 Agent 知道哪些地方可以大胆实现,哪些地方要保守处理。

这种分层结构直接减少了下游实现时的风格漂移。

试试看

如果你正在用 AI Agent 做前端开发,趁手的设计参考是生产力。你可以:

  1. Star 这个项目github.com/Scofieldfree/website-to-design
  2. 装上 Skill,对你喜欢的网站跑一遍,看看输出的设计文档质量
  3. 用生成的文档指导你的下一个项目,对比一下有没有设计"参考答案"时 Agent 输出的差距

如果你生成了高质量的设计文档,也欢迎贡献回 design.md 社区语料库——让更多人受益。