当AI能读懂设计系统时,前端开发的游戏规则变了。但问题也随之而来:几十套设计系统,到底该选哪套?选完之后,又该怎么真正用起来?
一个真实的困境
前段时间,我在为一个商旅系统做技术选型。这个系统包含管理后台、H5移动端和导航系统,技术栈是Vue3。
摆在我面前的是一个新问题:VoltAgent/awesome-design-md 这个仓库收录了几十套知名网站的设计系统文档------Linear、Stripe、Vercel、Sentry、Notion......每一套看起来都很精致,每一套都想用。
但具体到我的项目:哪套适合管理后台?哪套适合移动端?哪套适合导航?选完之后又该怎么落地到Vue3项目里?
这篇文章,就是我对这两个问题的完整回答。如果你也在做类似的技术选型,希望这些思考能帮你少走弯路。
第一部分:分类选型------不同场景该用哪套设计系统
先理解一个核心概念:设计系统的"场景基因"
在分类之前,需要先建立一个认知:每套设计系统都有其"场景基因"。
什么叫场景基因?就是这套设计语言从诞生之初,就是为解决特定场景的问题而优化的。Linear的基因是"专业工具的高密度信息展示",Stripe的基因是"交易场景的信任感建立",Vercel的基因是"功能性导航的极简表达"。
理解了这一点,分类选型就有了依据:不是选"好看的",而是选"基因匹配的"。
分类一:导航系统
导航的核心诉求是:清晰、不干扰内容、功能性强。
| 设计系统 | 基因特点 | 为什么适合导航 |
|---|---|---|
| Vercel | 黑白极简、高精度、Geist字体 | 专注功能性,不会因装饰分散注意力;深色胶囊CTA右对齐、移动端折叠汉堡菜单等规范可直接落地 |
| Linear | 极致简约、精确、紫色点缀 | 精致且不干扰内容,适合需要体现专业感的导航 |
| Apple | 优质留白、SF Pro字体 | 优雅、以内容为中心,适合消费品级导航 |
我的选择:Vercel。 理由很简单:导航是连接性组件,它的最高使命是"让用户快速到达目的地",而不是展示设计技巧。Vercel的规范中明确了具体的布局和交互模式,对开发落地最友好。
分类二:数据面板
数据面板的核心诉求是:信息密度高、色彩语义清晰、空间利用率高。
| 设计系统 | 基因特点 | 为什么适合数据面板 |
|---|---|---|
| Cohere | 活力渐变、数据丰富美学 | 专门为数据密集型界面设计,图表、表格、指标卡元素规则完善 |
| Sentry | 暗色面板、数据密集、粉紫点缀 | 错误监控、日志分析面板的标杆,信息层级处理极佳 |
| Kraken | 紫色暗色UI、数据密集 | 金融数据面板,色彩语义(红涨绿跌)规范清晰 |
| ClickHouse | 黄色点缀、技术文档风格 | 分析型数据库面板,技术指标展示友好 |
我的选择:Sentry(监控/日志场景)或Cohere(业务数据场景)。 如果你的面板偏技术监控,Sentry的暗色数据密集风格最合适;如果偏业务分析,Cohere的丰富数据美学更匹配。
分类三:管理系统/后台
管理系统的核心诉求是:信息密度高、操作效率高、视觉舒适。
| 设计系统 | 基因特点 | 为什么适合管理系统 |
|---|---|---|
| Linear | 超简约、精准、紫色点缀 | 项目管理、任务追踪的黄金标准,Cmd+K命令面板和Vim快捷键规范可直接借鉴 |
| Notion | 温暖极简、衬线标题、柔软表面 | 知识管理、内容管理,舒适易读,降低长时间使用的疲劳感 |
| Airtable | 色彩丰富、结构化数据美学 | 数据库管理、运营后台,灵活直观 |
| Stripe | 紫色渐变、优雅专业 | 支付、财务管理系统,专业且现代 |
我的选择:Linear。 商旅后台需要处理大量订单、审批、报表,Linear的高密度信息展示和键盘优先理念完美契合。它的设计Token定义非常完整(--color-bg-quaternary等),对Vue3落地极为友好。
分类四:H5移动端
H5移动端的核心诉求是:触控友好、信任感强、加载效率高。
| 设计系统 | 基因特点 | 为什么适合移动端 |
|---|---|---|
| Stripe | 优雅、专业、信任感强 | 移动端规范明确(<640px单列布局、至少44px触控目标),支付场景最佳 |
| Cal.com | 干净中性、开发者导向 | 预约、排程类移动端,简洁易用 |
| Wise | 亮绿色点缀、友好清晰 | 国际汇款类移动端,清晰度高 |
我的选择:Stripe。 商旅H5涉及支付、预订、行程查看,Stripe的信任感和移动端触控规范正是所需。它的Do's and Don'ts中明确禁止在按钮上使用品红/红宝石色,这类约束能有效防止AI生成不符合金融场景的UI。
选型总结:商旅系统的"组合拳"
最终,我为这个商旅系统确定的方案是:
text
css
管理后台 → Linear(高密度、键盘优先、专业)
H5移动端 → Stripe(信任感、触控友好、支付场景)
导航系统 → Vercel(极简、功能性强、连接性组件)
有人可能会质疑:三套设计系统混用,会不会导致视觉割裂?
我的判断是:统一的不是视觉表象,而是"体验原则"。 只要三套系统都遵循"克制、清晰、专业"的共同底线,用户在不同端之间切换时,感受到的是一致的品牌气质。
第二部分:落地实战------如何将Design.md应用到Vue3项目
选型只是第一步,真正的挑战在于落地。下面是我在Vue3项目中的具体实践步骤。
步骤一:提取设计Token,建立项目变量体系
不要试图100%还原某个网站的设计,而是提取其Token,映射到自己的项目中。
以Linear为例,从DESIGN.md中提取核心Token:
scss
css
// styles/tokens/_linear.scss
:root {
// 背景层级(Linear的核心特色:多级背景区分信息层级)
--color-bg-primary: #08090a;
--color-bg-secondary: #0f1011;
--color-bg-tertiary: #16171a;
--color-bg-quaternary: #1c1d21;
// 品牌色
--color-brand-bg: #5e6ad2;
--color-brand-text: #ffffff;
// 文字层级
--color-text-primary: #f7f8f8;
--color-text-secondary: #8a8f98;
--color-text-tertiary: #62666d;
// 状态色(注意:Linear仅在状态指示时使用彩色)
--color-status-success: #4cb782;
--color-status-warning: #f2c94c;
--color-status-error: #eb5757;
// 间距系统(Linear的间距极为精确)
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-6: 24px;
--space-8: 32px;
// 圆角
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
}
同理,从Stripe提取移动端Token:
scss
css
// styles/tokens/_stripe.scss
:root {
// Stripe的标志性紫蓝
--color-stripe-primary: #635bff;
--color-stripe-primary-hover: #5851e8;
// 移动端触控目标(关键!)
--touch-target-min: 44px;
// 移动端间距
--mobile-padding: 16px;
--mobile-card-gap: 12px;
}
从Vercel提取导航Token:
scss
css
// styles/tokens/_vercel.scss
:root {
// Vercel的黑白极简
--color-nav-bg: #000000;
--color-nav-text: #ffffff;
--color-nav-text-secondary: #888888;
// 胶囊按钮
--nav-cta-radius: 9999px;
--nav-cta-padding: 8px 16px;
}
步骤二:建立"场景-Token"映射关系
在项目中建立清晰的映射规则,让不同端的组件调用不同的Token集:
typescript
arduino
// composables/useDesignSystem.ts
export type DesignScene = 'admin' | 'mobile' | 'navigation';
export function useDesignSystem(scene: DesignScene) {
const tokenMap = {
admin: {
bg: 'var(--color-bg-primary)',
text: 'var(--color-text-primary)',
brand: 'var(--color-brand-bg)',
// ... Linear的Token
},
mobile: {
bg: '#ffffff',
text: '#1a1a1a',
brand: 'var(--color-stripe-primary)',
touchTarget: 'var(--touch-target-min)',
// ... Stripe的Token
},
navigation: {
bg: 'var(--color-nav-bg)',
text: 'var(--color-nav-text)',
ctaRadius: 'var(--nav-cta-radius)',
// ... Vercel的Token
},
};
return tokenMap[scene];
}
步骤三:让AI Agent参与"设计翻译"
这是最关键的一步。在开发具体页面前,将对应的DESIGN.md作为上下文提供给AI Agent。
实践示例:开发差旅审批列表页(后台场景)
text
markdown
【上下文】
- 设计系统:Linear的DESIGN.md(已放入项目根目录)
- 技术栈:Vue3 + TypeScript + SCSS
- 场景:管理后台-差旅审批列表
【提示词】
请根据项目根目录的DESIGN.md(Linear设计系统),
用Vue3生成一个差旅审批列表页。
要求:
1. 使用Linear的多级背景色(--color-bg-primary到quaternary)
区分页面、卡片、表头层级
2. 信息密度要高,列表行高不超过48px
3. 仅使用状态色(success/warning/error)标识审批状态,
其余部分保持单色
4. 支持Cmd+K命令面板快速搜索
5. 遵循DESIGN.md中的Do's and Don'ts
AI生成的代码会自动遵循Linear的设计规范,包括颜色、间距、字体层级等。你只需要做微调,而不是从零开始。
步骤四:建立设计系统的"反模式"检查清单
DESIGN.md中的Do's and Don'ts章节往往被忽视,但它最有价值。我将三套系统的反模式整理成检查清单,作为代码Review的依据:
markdown
markdown
## Linear(管理后台)反模式
- ❌ 不要使用纯黑#000000作为背景(使用#08090a)
- ❌ 不要在非状态指示处使用彩色
- ❌ 不要使用超过3级的字体粗细
## Stripe(H5移动端)反模式
- ❌ 不要在按钮上使用品红/红宝石色
- ❌ 触控目标不要小于44px
- ❌ 不要使用蓝调阴影以外的阴影颜色
## Vercel(导航)反模式
- ❌ 不要在导航中使用渐变
- ❌ 不要使用超过2种字体
- ❌ 不要在导航CTA中使用圆角小于9999px的按钮
这份清单可以作为团队的设计约束,防止AI或开发者在迭代中"跑偏"。
步骤五:渐进式落地,不要一次性全量替换
我的建议是:从一个页面开始,跑通整个流程,再逐步推广。
具体路径:
- 第一周:选择管理后台的"差旅审批列表页",用Linear的DESIGN.md + AI Agent生成,对比传统开发效率
- 第二周:将成功的Token体系沉淀到项目变量中,建立组件库的基础
- 第三周:扩展到管理后台的其他页面,同时启动H5移动端的试点
- 第四周:建立完整的"场景-Token-组件"映射体系,形成团队规范
结语:设计系统的"AI原生"时代,落地才是硬道理
VoltAgent/awesome-design-md 这个仓库,为AI编程时代的设计系统提供了一个极佳的起点。但它的价值不在于收录了多少知名网站,而在于它揭示了一个趋势:
设计系统正在从"给人看的规范文档",进化为"给AI读的结构化指令"。
对于前端开发者来说,这意味着工作方式的转变:从"手写每一个样式",到"定义好设计系统,让AI去执行"。而落地能力------选对设计系统、提取Token、建立映射、引导AI、建立约束------将成为核心竞争力。
商旅系统的案例只是一个开始。当你能熟练地将任意DESIGN.md落地到自己的项目时,你就拥有了快速构建高质量UI的能力。
本文基于VoltAgent/awesome-design-md仓库的分析,结合商旅系统在Vue3项目中的完整落地实践。从分类选型到Token提取,从AI提示词到反模式检查清单,这套方法论可以直接复用到你的项目中。