awesome-design:用一个 Markdown 文件让 AI 生成大厂级 UI

18 阅读11分钟

GitHub ⭐ 64.2k | 仓库地址 | 在线浏览


一、这是个什么东西?先从一个场景说起

你有没有这样的经历:让 Cursor、Claude、Copilot 帮你写页面,结果生成的 UI 丑得像 2005 年的网站?按钮颜色乱七八糟,字体大小随机,间距全靠蒙?

问题不在于 AI 不聪明,而在于 AI 不知道你想要什么风格

awesome-design-md 解决的就是这个问题。它的核心思路极其简单:

把一个叫 DESIGN.md 的文件放进你的项目根目录,然后告诉 AI:「按这个风格帮我做页面」——AI 就能生成像 Stripe、Vercel、Linear 那样级别的 UI。


二、核心概念:什么是 DESIGN.md?

DESIGN.md 是由 Google Stitch 引入的一个新概念——一份用 Markdown 写成的设计系统文档。

它的特别之处在于:Markdown 是 LLM(大语言模型)读得最好的格式。没有 JSON schema、没有 Figma token 导出、没有任何特殊工具,就是一个普通的文本文件。

你可能熟悉 AGENTS.md(告诉 AI agent 怎么 build 项目),DESIGN.md 是它的设计版本:

┌─────────────────┬──────────────────┬────────────────────────────────┐
│     文件名       │    被谁读         │         定义什么               │
├─────────────────┼──────────────────┼────────────────────────────────┤
│  AGENTS.md      │  代码 AI agent    │  如何构建项目(工程规范)       │
│  DESIGN.md      │  设计 AI agent    │  项目应该长什么样(视觉规范)   │
└─────────────────┴──────────────────┴────────────────────────────────┘

awesome-design-md 这个仓库做的事是:把 59+ 个主流品牌(Stripe、Apple、Notion、Spotify 等)的 DESIGN.md 提取出来,整理成一个开箱即用的合集。


三、项目架构一览

awesome-design-md/
├── design-md/               ← 核心:59+ 品牌设计系统
│   ├── stripe/              ← 每个品牌一个目录
│   │   └── (→ getdesign.md/stripe/design-md)
│   ├── vercel/
│   ├── notion/
│   ├── apple/
│   ├── linear.app/
│   └── ... (共 59 个品牌)
├── CONTRIBUTING.md          ← 贡献指南
├── LICENSE                  ← MIT 开源协议
└── README.md                ← 项目说明

注意:设计文件已迁移到 getdesign.md 网站托管,仓库目录作为入口索引。你可以通过 npx getdesign@latest add <品牌名> 一键下载到本地。


四、每个 DESIGN.md 里有什么?

Vercel 的 DESIGN.md 为例,每份文件都包含 9 个标准章节:

DESIGN.md 结构
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 §1  Visual Theme & Atmosphere    视觉主题与氛围
 §2  Color Palette & Roles        色板与语义化颜色角色
 §3  Typography Rules             字体排版规则(完整层级表)
 §4  Component Stylings           组件样式(按钮/卡片/输入框/导航)
 §5  Layout Principles            布局原则(间距/栅格/留白哲学)
 §6  Depth & Elevation            阴影层级系统
 §7  Do's and Don'ts              设计边界(能做/不能做)
 §8  Responsive Behavior          响应式断点与折叠策略
 §9  Agent Prompt Guide           给 AI 的快速提示词指南
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

每个品牌目录还附带:

  • DESIGN.md — 设计系统文档(AI 读的那份)
  • preview.html — 亮色模式可视化预览(色板、字阶、按钮、卡片)
  • preview-dark.html — 暗色模式可视化预览

五、快速上手(三步走)

步骤 1:选一个你喜欢的品牌风格

先去 getdesign.md 浏览,挑一个视觉风格符合你项目调性的品牌。

品牌分类速查:

类别代表品牌适用场景
极简黑白Vercel、Linear、Tesla开发者工具、SaaS
深色技术Cursor、Warp、ElevenLabsIDE、终端、AI 工具
紫色高端Stripe、Superhuman、Kraken支付、金融、高端 SaaS
暖色友好Notion、Airbnb、Zapier内容产品、工作流
绿色开发Supabase、Mintlify、Wise数据库、文档、金融科技
彩色活泼Figma、Lovable、Miro设计工具、协作平台

步骤 2:下载 DESIGN.md 到项目根目录

bash

# 方法一:CLI 一键安装(推荐)
npx getdesign@latest add stripe

# 方法二:安装其他品牌
npx getdesign@latest add vercel
npx getdesign@latest add notion
npx getdesign@latest add linear

执行后,项目根目录会出现一个 DESIGN.md 文件。

步骤 3:告诉你的 AI agent 使用它

# 在 Cursor / Claude / Copilot 里输入:
请参考项目根目录的 DESIGN.md,帮我构建一个产品落地页

就这三步。


六、实用示例

🟢 初级示例:生成一个 Stripe 风格的支付页面

场景:你在做一个 SaaS 产品,需要一个高端的定价页。

bash

# 1. 安装 Stripe 设计系统
npx getdesign@latest add stripe

然后在 Cursor 中输入:

根据 DESIGN.md,帮我创建一个定价页面组件:
- 三个套餐(Free / Pro / Enterprise)
- 使用 Stripe 的紫色渐变主色和 weight-300 的优雅字体风格
- 卡片样式用文档里描述的阴影规范
- 推荐套餐要有高亮效果

Stripe DESIGN.md 核心参数速查:

主色调:签名紫色渐变
字重风格:weight-300 优雅纤细
适用场景:支付平台、高端金融科技 UI
氛围关键词:精致、可信、优雅

🟡 进阶示例:混搭两种设计系统

场景:你想要 Vercel 的极简黑白骨架,但局部用 Stripe 的紫色渐变做 CTA 按钮。

bash

npx getdesign@latest add vercel

然后参考 Vercel DESIGN.md 的 §9 Agent Prompt Guide:

创建一个 hero 区域:
- 背景:纯白 #ffffff
- 标题:48px Geist 字体,字重 600,字间距 -2.4px,颜色 #171717
- 副标题:20px,字重 400,行高 1.80,颜色 #4d4d4d
- 主 CTA 按钮:深色背景 #171717,白色文字,6px 圆角
- 次要按钮:白色背景,用阴影代替边框(rgba(0,0,0,0.08) 0px 0px 0px 1px)
- 卡片:不用 CSS border,改用阴影叠层:
  rgba(0,0,0,0.08) 0px 0px 0px 1px,
  rgba(0,0,0,0.04) 0px 2px 2px,
  #fafafa 0px 0px 0px 1px

Vercel 最有意思的设计技巧:他们用 box-shadow: 0px 0px 0px 1px rgba(0,0,0,0.08) 来代替传统的 CSS border,这让圆角更自然、过渡更平滑,是值得学习的工程细节。


🔴 高级示例:用 DESIGN.md 建立完整的组件库规范

场景:你是一个前端团队 lead,想为整个团队建立统一的 UI 规范,并让所有 AI agent 遵循。

第一步:下载最贴合产品调性的 DESIGN.md,作为团队基础规范

bash

npx getdesign@latest add linear  # 适合工程师文化的产品团队

第二步:在项目里创建 DESIGN.md(基于 Linear 的,做定制化修改)

Linear DESIGN.md 的色板结构示例:

markdown

## 2. Color Palette & Roles

| Token Name    | Hex       | 用途                    |
|---------------|-----------|------------------------|
| --color-bg    | #0f0f11   | 页面背景(接近纯黑)     |
| --color-fg    | #f7f8f8   | 主文本                  |
| --color-accent| #5e6ad2   | 品牌紫色,主要交互元素   |
| --color-muted | #8a8f98   | 次要文本、占位符         |
| --color-border| #2a2d34   | 边框、分割线             |

第三步:配合 AGENTS.md 使用,形成「工程+设计」双规范

markdown

# AGENTS.md(工程规范)
- 使用 React + TypeScript
- 组件放在 /components 目录
- **所有 UI 实现必须遵循 DESIGN.md 中的设计规范**

第四步:让 AI 生成符合规范的完整页面组件

参考 DESIGN.md 和 AGENTS.md,帮我生成一个 Dashboard 页面:
- 左侧导航(Linear 风格,极简黑色,紫色 accent 高亮激活项)
- 顶部工具栏(搜索框 + 通知图标 + 用户头像)
- 内容区:任务看板(三列:Todo / In Progress / Done)
- 每张卡片遵循文档 §4 Component Stylings 中的卡片规范

七、59 个品牌设计风格速览

仓库目前收录 59 个品牌,按行业分类:

AI & LLM 平台(12 个)

品牌视觉特征一句话描述
Claude暖赤陶色 accent温暖、编辑排版感
Cursor深色 + 渐变AI 代码编辑器美学
ElevenLabs暗黑电影感音波可视化氛围
Ollama单色终端风极简纯 CLI 感
xAI纯粹黑白未来主义极简
Mistral AI紫色法式极简工程师优雅

开发者工具(7 个)

品牌视觉特征最适合做什么
Vercel黑白精准 + Geist 字体开发者平台、部署工具
Linear超极简 + 紫色 accent项目管理、工程师工具
Warp暗色 IDE 感终端、命令行工具
Raycast深色 + 渐变效率工具、launcher
Expo代码中心化暗色React Native、移动端

金融科技(7 个)

品牌视觉特征氛围
Stripe紫色渐变 + weight-300精致、高端
Coinbase清洁蓝色信任、机构感
Revolut深色 + 渐变卡片现代金融
Wise亮绿色友好、清晰

设计与创意(6 个)

品牌视觉特征氛围
Figma多彩活泼专业又有趣
Framer黑色 + 蓝色 + 动态感设计师首选
Miro亮黄 accent协作、无限画布

八、DESIGN.md 文件结构深度解析

拿 Vercel 的文件作为完整案例,看看每个章节实际长什么样:

§1 视觉主题(最重要,定基调)

Vercel 的视觉是「让开发者基础设施变得不可见」的设计命题——极度克制,接近哲学层面。页面大量使用白色,文字用近黑色 #171717,制造画廊般的空旷感。

这一节告诉 AI:这个设计的精神内核是什么

§2 色板(精确到 hex)

Primary:  #171717  →  主文本、标题
White:    #ffffff  →  页面背景
Red:      #ff5b4f  →  Ship(发布)工作流
Pink:     #de1d8d  →  Preview(预览)工作流
Blue:     #0a72ef  →  Develop(开发)工作流

颜色有语义,不是随意用的——这就是设计系统的核心价值。

§3 字体层级(完整表格)

角色           字号    字重   字间距      用途
──────────────────────────────────────────────
Display Hero   48px   600   -2.4px    最大标题
Section Head   40px   600   -2.4px    章节标题
Sub-heading    32px   600   -1.28px   卡片标题
Body Large     20px   400   normal    介绍文本
Body           18px   400   normal    正文
Caption        12px   400   normal    元数据
Mono Body      16px   400   normal    代码块

§4 组件(带状态描述)

按钮分类:
┌──────────────────────────────────────────────┐
│  Primary Dark    #171717 bg, 白色文字, 6px r  │
│  Primary Light   白色 bg, 阴影代边框, 6px r   │
│  Pill Badge      #ebf5ff, 9999px r, 状态标签 │
└──────────────────────────────────────────────┘

卡片规范:
- 背景:#ffffff
- 不用 CSS border!用阴影叠层替代
- 阴影:rgba(0,0,0,0.08) 0px 0px 0px 1px,
         rgba(0,0,0,0.04) 0px 2px 2px,
         #fafafa 0px 0px 0px 1px   ← 内部微发光
- 圆角:8px

§7 设计边界(防止 AI 乱来)

这一节非常关键——明确告诉 AI 哪些事绝对不能做:

❌ 不能用正值 letter-spacing(Geist 永远是负值或零)
❌ 卡片不能用 CSS border(必须用阴影)
❌ 不能引入暖色(橙、黄、绿)到 UI chrome
❌ 不能把工作流颜色(红/粉/蓝)用作装饰
❌ 不能在主要 CTA 按钮上用全圆角(全圆角只给徽章用)

§9 Agent Prompt Guide(即插即用的提示词模板)

这一节直接给你可以复制的提示词:

"创建一个 hero section:白色背景。
 标题 48px Geist 字重 600 字间距 -2.4px 颜色 #171717。
 副标题 20px 字重 400 行高 1.80 颜色 #4d4d4d。
 深色 CTA#171717 6px 圆角 8x16px 内距)
 和 ghost 按钮(白色,阴影边框 rgba(0,0,0,0.08) 0px 0px 0px 1px)。"

九、工作流程全景图

                    awesome-design-md 工作流
═══════════════════════════════════════════════════════════

  你的需求
     │
     ▼
  ┌──────────────────────────────────────────┐
  │  1. 选风格                                │
  │     去 getdesign.md 浏览 69 个品牌        │
  │     按「行业分类」或「视觉关键词」筛选     │
  └──────────────────┬───────────────────────┘
                     │
                     ▼
  ┌──────────────────────────────────────────┐
  │  2. 安装                                  │
  │     npx getdesign@latest add <品牌>       │
  │     → 项目根目录生成 DESIGN.md            │
  └──────────────────┬───────────────────────┘
                     │
                     ▼
  ┌──────────────────────────────────────────┐
  │  3. 让 AI 读取并生成 UI                   │
  │     Cursor / Claude / Copilot / Lovable  │
  │     "参考 DESIGN.md,帮我做 X 页面"      │
  └──────────────────┬───────────────────────┘
                     │
                     ▼
  ┌──────────────────────────────────────────┐
  │  4. 迭代精调                              │
  │     用 §9 的 Prompt 模板精确描述          │
  │     用 §7 的 Do's/Don'ts 纠错 AI          │
  └──────────────────────────────────────────┘

═══════════════════════════════════════════════════════════

十、如何贡献

项目目前采用**「先开 Issue 讨论,再提 PR」**的流程:

你发现某个品牌的颜色值不准确
        │
        ▼
  开一个 GitHub Issue
  描述问题 + 截图对比
        │
        ▼
  等 maintainer 反馈确认
        │
        ▼
  修改 DESIGN.md(对照真实网站 CSS)
  更新 preview.html / preview-dark.html
        │
        ▼
  提交 PR(附 before/after 说明)

注意:目前不接受新品牌的 PR,只接受对已有文件的质量改进。新品牌请通过 getdesign.md 的 Request 功能申请(也支持私有请求,仅交付给你)。


十一、进阶技巧:让效果更好的几个经验

1. 优先用 §9 Agent Prompt Guide 里的模板

每个 DESIGN.md 的第 9 章都有现成的提示词模板,直接复制比自己描述效果好 10 倍。

2. 先给 AI 看整个 DESIGN.md,再提需求

# 效果差的方式:
帮我做个 Stripe 风格的按钮

# 效果好的方式:
我的项目根目录有 DESIGN.md,里面是 Stripe 的设计规范。
请先读取这个文件,然后帮我做一个定价卡片组件,
严格遵循文档中 §4 Component Stylings 里的卡片规范。

3. 用 §7 Do's and Don'ts 来纠错

如果 AI 生成的结果不对,把 §7 的内容复制进去追问:

你给的按钮用了 CSS border,但 DESIGN.md §7 明确说明不能用 CSS border,
必须用阴影叠层替代。请重新生成。

4. 组合多个 DESIGN.md

你可以同时下载多个品牌的文件,让 AI 融合:

参考 vercel-DESIGN.md 的黑白布局骨架,
用 stripe-DESIGN.md 里的阴影和色彩系统,
帮我创建一个支付成功页面。

5. 把 DESIGN.md 纳入项目 CI/CD 检查

在 Code Review 中,用 AI 检查 PR 里的 UI 代码是否符合 DESIGN.md 规范,形成自动化的设计一致性保障。


十二、总结

awesome-design-md 的意义不只是「一堆 Markdown 文件的合集」,它代表了一种新的工作范式:

  • 以前:设计师出 Figma 稿 → 前端像素还原 → 和设计师反复确认
  • 现在:一个 DESIGN.md → AI 直接生成符合设计规范的代码

这个项目的爆火(64.2k ⭐,仅 3 周)说明社区对这个方向的认可。它最大的价值是把大厂积累多年的设计智慧,平民化地开放给所有开发者

无论你是独立开发者、小团队还是大公司,只要你在用 AI 写前端代码,awesome-design-md + DESIGN.md 都应该成为你工具箱的标配。


推荐收藏github.com/VoltAgent/a… | getdesign.md

许可证:MIT,可以自由用于商业项目。设计 token 均来自公开网站的 CSS 值,不涉及版权问题。