Article

开源 RICOUI DESIGN:用一份 DESIGN.md 统一设计规范和代码

更新于:2026-08-24 12 min read

之前给大家分享过 68 套品牌 DESIGN 文档合集,可以打开每个品牌文件夹,看它的颜色、字体、间距、组件以及完整的视觉规范。

BRANDS MD

这套品牌库作为参考很好用,但实际拿来做项目时,我还是觉得有些麻烦。每次要先找文件、复制内容、确认结构,再慢慢改成自己的设计规范。改完以后,如果还要继续给前端或者 AI 使用,又要整理 Token、CSS 等文件。

另外,我手上的项目和站点越来越多,设计规范平时散落在 Figma、协作文档、截图和项目代码里,很多细节时间久了自己也记不住。到了用 AI 写界面这一步,这个问题更明显:AI 手里如果没有一份明确的设计约束,只能根据当前页面去猜,做着做着就很容易出现颜色、字号、圆角和组件风格不统一的问题。

所以我一直在尝试用 DESIGN.md 把这些设计规则集中起来。

也基于这个需求,我做了 RICOUI DESIGN,一个我自己在用的 DESIGN.md 设计系统工作台,项目已经开源。之前整理的品牌库,现在也是这个项目的一部分。

RICOUI DESIGN 深色模式首页

它主要做几件事:在网页里创建、编辑和预览 DESIGN.md;浏览品牌设计参考;从公开网站生成 DESIGN.md 初稿;最后再把同一份文档派生为 Design Tokens、CSS 和 ZIP,继续给前端和 AI 使用。


DESIGN.md 是什么

先简单解释一下这里说的 DESIGN.md

它本质上还是一份 Markdown 文档,只是按照一定结构去记录一套设计系统。人打开可以直接阅读,AI 也能读取里面的颜色、字体、间距、组件规则和设计约束。

在 RICOUI DESIGN 里,我约定了一套固定的结构,方便编辑器识别和继续派生 Token、CSS。这里的“固定结构”是这个项目采用的设计方式,不代表 DESIGN.md 已经像 HTML、CSS 一样有完全统一的行业标准。

一个最小骨架大概长这样:

# Acme — Style Reference

> 一句话品牌调性

**Theme:** light

## Tokens — Colors

## Tokens — Typography

### Type Scale

## Tokens — Spacing & Shapes

### Spacing Scale

### Border Radius

## Components

## Do's and Don'ts

## Imagery

## Layout

骨架确定之后,每个章节各自负责一部分内容:

DESIGN.md 结构拆解

章节写什么
顶部(标题 + 引用 + Theme)产品名、一句话品牌调性、明色/暗色主题
Tokens — Colors颜色原子:名称、色值、CSS 变量名、用途
Tokens — Typography字体族(含 fallback)+ 字号阶梯(大小、行高、字距)
Tokens — Spacing & Shapes间距阶梯 + 圆角阶梯
Components每个组件一段:角色、用哪些 Token、用法约束
Do’s and Don’ts质量护栏:鼓励做什么、禁止做什么
Imagery / Layout(可选)图片风格、布局节奏

写 DESIGN.md 时,我比较在意下面几点:

  • Token 用 Markdown 表格存,保留 Name / Value / Token / Role,方便阅读和解析;
  • 字体直接写完整的 fallback chain,不需要另外维护一份字体清单;
  • 组件继续引用前面的 Token,而不是重新写一套颜色和尺寸;
  • Do's and Don'ts 单独保留,因为很多时候“不应该怎么设计”比单纯告诉 AI 一个数值更有用。

它和 Figma、Design Token 也不是替代关系。

Figma 仍然更适合做视觉设计和组件协作,Design Token 更适合保存颜色、字号、间距、圆角这些原子值。DESIGN.md 在我的工作流里更像一层“设计上下文”:除了告诉 AI 某个值是什么,还继续告诉它这个值应该怎么用、组件之间是什么关系,以及哪些视觉做法应该避免。

所以我现在会把 DESIGN.md 当作唯一需要维护的源文件,预览、Token、CSS 和其他交付格式都从它继续派生,而不是各自维护一份。


使用说明与教程

design.ricoui.com 打开浏览器就可以使用,不需要注册。AI 功能接入自己的 API Key;如果需要跨设备同步和私有交付,再登录并开启云端。

整个产品我现在主要分成两个方向去理解:一个是,一个是

“看”是品牌参考库,可以拆解成熟产品的设计语言;“做”则是创建、编辑、预览和交付自己的 DESIGN.md。

示例流程:从品牌参考到自己的设计库

如果第一次用,我建议先从品牌库开始,这样比从空白文档理解 DESIGN.md 更直观。

1. 在 Brands 页面寻找喜欢的品牌

RICOUI DESIGN 品牌参考库

进入 brands 页面后,可以浏览已经整理好的品牌规范。这里不是只展示一张截图,而是把一个品牌对应的 DESIGN.md、Token、CSS 和视觉预览放在一起。

看到视觉方向比较接近的品牌,可以先点进去继续看。

2. 查看品牌详细信息

RICOUI DESIGN 品牌参考库详情

品牌详情页里可以查看完整规范,右上角也可以直接下载多个文件。

我觉得这种参考方式比只保存网页截图更有用。截图只能告诉我们“最后长什么样”,拆成 DESIGN.md 以后还能继续看颜色有几级、字号如何组织、间距有没有统一阶梯、组件用了哪些 Token,以及哪些规则是整个产品反复遵守的。

3. 复制到工作台编辑

把品牌规范复制到工作台编辑

如果这套规范和自己的项目比较接近,可以直接复制到工作台,再修改品牌名、颜色、字体、间距和组件规则。

不用从空白文件开始,先借一个成熟结构做起点,再慢慢改成自己的版本,会轻松很多。

4. 保存到设计库

把整理好的规范保存到设计库

整理完成后,可以保存到自己的设计库。草稿继续用于修改,设计库则更适合存已经相对稳定、准备长期使用的规范。


谁适合用,分别能拿到什么

不同身份进来,关心的东西不太一样,但最后使用的是同一份 DESIGN.md。

设计师更在意“不写代码也能精确调整视觉”。在结构化视图里,颜色有色盘,字号和间距有数值控件,改完可以直接看预览,不需要一直在 Markdown 源码里找变量。品牌库里的规范也可以直接复制成草稿,再改成自己项目的样子。

前端开发者更关心“规范怎么变成可以直接使用的代码”。一份 DESIGN.md 通过派生检查后,可以继续得到 DTCG 格式的 tokens.jsonvariables.css、Tailwind v4 的 theme.css 和 ZIP。这些文件都来自同一份文档,不需要另外维护。

用 AI 做界面的人更关心“怎么让 AI 真正读懂设计”。把 DESIGN.md 放进 Cursor、Claude、Codex 等项目上下文,AI 看到的是具体的颜色变量、字体层级、组件约束和 Do’s and Don’ts,而不只是“做成某个品牌风格”这种模糊描述。


怎么用

页面入口指引

功能按“想做什么”分布在不同页面里:

RICOUI DESIGN 页面入口与使用流程

想做的事在哪做
新建一份 DESIGN.md,或输入网址让 AI 生成首页“新建草稿”,或搜索框直接粘网址
编辑文档、看预览、跑 AI、导出文件编辑器
找回、筛选、批量整理已有草稿草稿页
把成熟规范存起来,带描述、标签和项目链接设计库
拆解成熟产品的设计语言品牌参考
跨草稿、设计库、品牌一起搜索全局搜索(Ctrl K / ⌘ K
管理私有交付版本交付版本页,需要登录并开启云端

创建第一份 DESIGN.md

如果不想从品牌模板开始,也可以直接从零创建。

流程很简单:

  1. 打开首页,选择“新建草稿”;
  2. 在编辑器切换到“源码”视图;
  3. 输入名称、描述、主题、颜色、字体、间距和组件说明;
  4. 等待顶部状态显示“已保存到本机”;
  5. 切到“阅读”检查排版,再用“结构化”修改具体颜色和字号,最后打开“预览”看视觉结果。

RICOUI DESIGN

可以直接用下面这个最小骨架起步:

# Acme — Design System

> A clear design language for product interfaces.

**Theme:** light

## Tokens — Colors

| Name | Value | Token | Role |
| --- | --- | --- | --- |
| Brand | #2563EB | --color-brand | Primary actions |
| Background | #FFFFFF | --color-background | Application canvas |
| Text | #0F172A | --color-text | Primary text |

## Tokens — Typography

| Name | Value | Token | Role |
| --- | --- | --- | --- |
| Sans | Inter, ui-sans-serif, system-ui, sans-serif | --font-sans | Interface |

### Type Scale

| Role | Size | Line Height | Letter Spacing | Token |
| --- | --- | --- | --- | --- |
| Body | 16px | 1.5 | 0 | --font-size-body |

## Tokens — Spacing & Shapes

### Spacing Scale

| Name | Value | Token |
| --- | --- | --- |
| 1 | 4px | --space-1 |
| 2 | 8px | --space-2 |

### Radius Scale

| Name | Value | Token |
| --- | --- | --- |
| Medium | 8px | --radius-md |

## Components

### Button

**Role:** Primary action control.

Use the brand color for the primary state and keep one primary action per surface.

## Do's and Don'ts

### Do

- Keep action labels short and specific.

### Don't

- Do not use multiple primary actions in one panel.

RICOUI DESIGN 编辑器

不用一开始就把所有章节写完整。先建一个可以正确识别和预览的骨架,再逐项补内容,反而更容易知道是哪里出了问题。


用 AI 从一个网站生成 DESIGN.md

如果连第一版 DESIGN.md 都不想自己写,也可以输入一个公开网站,让 AI 先起草。

这一步需要自己的 AI Key。Key 保存在自己的浏览器里,应用不提供统一的公共 Key。

1. 配置 AI 服务

先在“设置 → AI 服务”里配置 Provider 和 Key,然后测试连接。

配置 AI Provider 和 API Key

2. 输入品牌网站地址

在首页搜索框或全局搜索中粘贴网址,选择“从网址生成 DESIGN.md”。

输入网站 URL 并生成 DESIGN.md

3. 提取并生成

应用会先查找公开的 DESIGN.md,同时读取页面元信息、可读内容和能够提取到的样式信号,再交给模型整理。

AI 分析网站并生成 DESIGN.md

生成完成后,需要自己检查品牌色、字体、Token、组件说明和来源链接,确认没有明显问题再保存。

确认并保存 AI 生成结果

这里我一直把网址生成定位成分析起点,而不是逐像素复制网页。

复杂网站背后的完整设计系统不可能只从一个页面完全还原,模型对布局和视觉层级的理解也会有误差,所以重要数值仍然需要自己确认。

安全边界也需要说明:应用会拒绝 localhost、私有 IP、带用户名密码的 URL,以及 DNS 解析到私有网络的主机。生成 DESIGN.md 也不代表获得了原网站品牌资产的授权。


检查、导出说明

这里有一个我比较在意的设计:一份文档“能保存”和“能正确派生 Token、CSS”是两件事。

普通 Markdown 只要有内容,就应该可以继续保存和阅读;但如果 Token 名称不合法、变量引用最终无法解析,再继续生成 CSS 就容易让人误以为结果是正确的。

所以 RICOUI DESIGN 会按照文档状态开放不同能力:

文档状态可用能力
非空普通 Markdown保存、查看、复制、下载原始 Markdown
可识别 DESIGN.md增加结构化编辑和预览
Token 与数值通过派生检查增加 tokens.json、CSS、ZIP 和交付版本

通过检查之后,可以导出:

导出格式用途
DESIGN.md唯一可编辑原文
tokens.jsonDTCG Token JSON
variables.cssCSS Custom Properties
theme.cssTailwind CSS v4 变量
文档 ZIPDESIGN.md + Token JSON + CSS

派生的前置条件是 Token 名称和值合法,var(--token) 这类引用最终也能正确解析。

如果检查没有通过,CSS 导出会被锁住,但原始 Markdown 仍然可以继续保存和修改。这样做是为了避免导出一份彼此对不上的 CSS,还以为它就是最终结果。

要修改时,继续修改 DESIGN.md,再重新派生就可以了。不要把生成后的 JSON 或 CSS 当成另一份源继续手动维护。

RICOUI DESIGN 设计系统预览


云端服务

RICOUI DESIGN 默认以本地使用为主。没有配置云端时,应用不会自动上传草稿,本地数据保存在浏览器的 IndexedDB 中,刷新页面后仍然可以恢复。

如果开启云端,不同数据大致放在这些位置:

位置保存什么不保存什么
浏览器 IndexedDB本地工作区数据服务器永久备份
Supabase Postgres登录用户的云端业务数据AI API Key、ZIP 文件内容
Supabase Storage服务端生成的 ZIP普通本地导出、任意附件

如果只是个人整理 DESIGN.md,本地模式已经能完成创建、编辑、预览和导出。跨设备同步、私有交付或者团队独立部署,再按需开启云端即可。

云端容量和文件大小目前也有限制,具体额度以后可能继续调整,以项目最新说明为准。比较重要的一点是:云端同步不应该被当成永久备份。 重要的 DESIGN.md 仍然建议保留本地文件,或者直接放进自己的代码仓库。


自己部署

在线版已经够大部分个人用户使用。

如果想要跨设备同步、私有交付版本,或者给团队部署独立实例,可以直接把项目克隆到本地。项目使用 Apache-2.0 License 开源。

最快启动只需要:

git clone https://github.com/ricocc/ricoui-design-md.git
cd ricoui-design-md
pnpm install
pnpm dev

不配置任何环境变量,也能先使用本地编辑、预览和导出。

AI、Supabase、Vercel 部署等完整配置,我都放在仓库 /GUIDE 目录里,需要哪部分能力再继续配置,不需要第一次使用时全部打开。


我的设计思路

我一直在尝试以 DESIGN.md 为核心去维护产品和品牌的视觉文档。现在自己的项目基本都会配一套 DESIGN.md,把设计规范整理清楚,一方面给自己和前端看,另一方面也直接给 AI 读取。

它解决的并不是 Figma 不够用,而是项目里缺少一份可以长期保留、能跟代码放在一起、又方便 AI 读取的设计上下文。

我觉得 DESIGN.md 最有用的地方,也不是单纯把 Token 再写一遍。

最底层的颜色、字体、间距、圆角当然很重要,但 AI 真正做界面时,还需要知道这些值怎么组合,组件应该在什么场景出现,以及哪些做法应该避免。所以除了 Tokens,我还会继续写 Components 和 Do’s and Don’ts。

比如:

### Do

- 保持大面积留白。
- 一屏只保留一个主要操作。
- 产品截图优先于无意义的装饰插图。

### Don't

- 不随意增加新的强调色。
- 不同时出现多个主要按钮。
- 不为了填满页面而增加装饰元素。

这些内容没办法直接变成 CSS,但在实际 AI Coding 里很有用。它们描述的是“这个产品应该继续怎么设计”,而不只是“目前用了哪些值”。

RICOUI DESIGN 这个工作台,就是为了让我维护这些文档时更方便。

前面提到的“看”和“做”,其实也是整个产品现在最核心的两个部分。

,是浏览和参考。品牌库把成熟产品的 DESIGN.md、Token、CSS 和预览放在一起,可以拆开看别人怎么处理颜色、Typography、Spacing 和 Components,也可以直接复制成自己的草稿。

,是创建、编辑和交付。从零写、从品牌模板开始,或者让 AI 从网站先生成都可以。后续修改仍然围绕同一份 DESIGN.md 完成,再继续派生 Token、CSS 和 ZIP。

这样设计师不需要放弃 Figma,前端也不需要换一套开发方式,只是在两者之间多了一份更适合项目长期保存,也更适合 AI 阅读的设计规范。


最后

这个网站最开始就是为了解决我自己关于 DESIGN.md 的使用需求,目前项目还是 Beta。

内置品牌参考只作为学习和设计参考,不代表品牌官方规范。品牌本身也会持续更新设计,这边没办法保证及时同步每一次变化。

如果第一次体验,我建议先走最简单的一条路径:去 Brands 找一套接近的参考,复制到工作台,改几个颜色、字体和组件,再看预览和导出结果。跑通这一步之后,再决定要不要继续使用 AI、云端同步或者自己部署。

有兴趣的话,我之后会继续分享这个产品的设计和开发流程,以及技术栈选择过程中踩过的一些坑。

文章中的截图样机美化,是用了自己近期开发的另一个网站  shot.ricoui.com ,  也是开源的,有需要的话可以体验一下 

RICOUI DESIGN 编辑器

我是 Rico,可以关注公众号「Rico的设计漫想」获得更新。

Rico的设计漫想

关注我的微信公众号

我在这里专注文字创作,分享设计观察、产品思考、个人网站和前端实践的长文与资源。

  • Design Notes
  • Vibe Coding
  • Rico Writing
微信公众号二维码
Rico的设计漫想