OpenDesign 设计系统剖析:以 OpenAI 风格为范式的近单色冷静界面体系
【免费下载链接】open-design🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. 🖥️ Local-first desktop app. 🖼️ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video — real files, HTML/PDF/PPTX/MP4 export. 🤖 Claude Code / Codex / Cursor / DeepSeek Harness / OpenCode & 20+ CLIs via BYOK.项目地址: https://gitcode.com/gh_mirrors/opend/open-design
本文以仓库内 design-systems/openai/DESIGN-vi.md(英文原版为 DESIGN.md)为骨架,结合同目录下真实存在的 tokens.css、components.html、manifest.json 等打包产物,系统拆解这套"OpenAI 灵感设计系统"的视觉基调、色彩角色、字体层级、组件样式、间距布局、动效规范与使用护栏,并说明它作为可移植设计系统包在 OpenDesign 仓库中的组成形态与消费方式。读完本文,你将能直接复用这套 token 体系与组件配方,为 AI 类产品构建冷静、克制、编辑部气质的界面。
1. 视觉主题与氛围:一间"为公开亮相而整理过的研究实验室"
OpenAI 风格产品界面的整体气质是临床、克制、刻意保持安静。它不像多数 AI 品牌那样走未来主义路线,而是像一份精心排版的学术刊物:纯白画布(#ffffff)叠加在带有微妙青绿色调的近黑墨色(#0d0d0d)之上,即使正文文字也带有一丝冷感,而非咄咄逼人的纯黑。这种色度上的中性,把模型输出、代码与散文推到视觉前台,界面本身的"镀铬"被压到最低。
两大标志性手法构成了这套系统的识别度:
- 字体配对:正文与 UI 使用Söhne(系统替代字体
Inter),且只使用克制的字重——400 用于正文、500 用于导航与标签、600 用于强调;展示级标题使用Signifier,一款当代衬线字体,为编辑性展示时刻注入"每一则公告都是一篇随笔"的文学语气。 - 形状系统:处处柔软——圆角统一为 8px–12px,标签与 chip 使用 9999px 全药丸形,任何地方都看不到生硬棱角;区块之间的边界主要靠留白而非分隔线来表达,即使出现边框,也是
#e5e5e5的发丝线,读起来像"颜色的缺席"而非"颜色的在场"。
核心特征清单(直接来自原文档):
- 纯白画布(
#ffffff)+ 深青黑墨色(#0d0d0d) - Söhne / Inter 仅用克制字重(400、500、600)——克制优先于张扬
- Signifier 衬线用于编辑性展示标题
- 全局 8–12px 柔和圆角;chip 用 9999px 药丸形
- 发丝线边框(
#e5e5e5)使用克制;留白是主要分隔手段 - 深青色单色插图——标识中不使用渐变
- 宽裕行高(1.55–1.65)与近乎为零的字距
2. 色彩体系与角色:唯一一支"青绿"的近乎单色系统
这套系统最反直觉的地方在于:它只有一个品牌强调色(OpenAI Teal#10a37f),其余全部是中性与语义色。任何"只有绿色点缀"的实现都不足以还原 OpenAI 式表面——克制必须整套出现。
主色(Primary)
| 令牌语义 | 色值 | 角色 |
|---|---|---|
| Pure White(纯白) | #ffffff | 主背景、卡片表面、按钮背景 |
| Ink Black(墨黑) | #0d0d0d | 主文本、品牌标识、主 CTA |
| Soft Black(柔黑) | #1a1a1a | 次级标题、非关键文本的替代墨色 |
表面与背景(Surface & Background)
| 令牌语义 | 色值 | 角色 |
|---|---|---|
| Mist(薄雾) | #fafafa | 区块分隔背景、页脚表面 |
| Pearl(珍珠) | #f5f5f5 | 卡片表面、浮起面板 |
| Cloud(云) | #ececec | 禁用背景、分隔线着色 |
品牌强调色(Brand Accent)
| 令牌语义 | 色值 | 角色 |
|---|---|---|
| OpenAI Teal | #10a37f | 品牌主色、链接、高亮徽标——中性系统中的唯一彩色 |
| Teal Deep | #0a7a5e | 品牌色的 hover 与按下态 |
| Teal Soft | #e8f5f0 | 成功徽标的表面着色、高亮提示框 |
中性色与文本(Neutrals & Text)
| 令牌语义 | 色值 | 角色 |
|---|---|---|
| Graphite(石墨) | #3c3c3c | 正文文本、默认阅读色 |
| Slate(板岩) | #6e6e6e | 次级文本、说明、元数据 |
| Ash(灰烬) | #9b9b9b | 三级文本、占位符、禁用标签 |
| Stone(石头) | #c4c4c4 | 装饰性分隔线、淡图标 |
语义色与边框(Semantic & Border)
| 令牌语义 | 色值 | 角色 |
|---|---|---|
| Border Hairline | #e5e5e5 | 标准发丝线分隔 |
| Border Soft | #ededed | 白底卡片描边 |
| Error | #ef4146 | 校验、破坏性操作 |
| Warning | #f5a623 | 柔和琥珀色警告态 |
| Info | #2563eb | 信息性链接色调(谨慎使用;青绿仍是主导) |
这些颜色并非停留在文档层面。在仓库的 tokens.css 中,它们被逐一绑定为语义化 CSS 变量:--bg: #ffffff、--surface: #f5f5f5(pearl,卡片表面)、--surface-warm: #fafafa(mist,区块分隔/页脚)、--fg: #0d0d0d、--fg-2: #1a1a1a、--muted: #6e6e6e(slate)、--accent: #10a37f、--accent-hover: #0a7a5e,以及--success: #10a37f、--warn: #f5a623、--danger: #ef4146三个语义令牌。值得注意的是--accent-active使用现代 CSS 的color-mix(in oklab, var(--accent), black 14%)推导按下态,体现"以 token 派生、不写死新色值"的实现原则。这一绑定结构在 source/tokens.source.json 中有逐条审计记录(每个 token 都标注了tokens.css中的声明行号),并经过 source/token-contract.report.json 的契约校验。
3. 字体规范:衬线给灵魂,无衬线给系统
字体族(Font Family)
- 展示 / 编辑体:
Signifier,回退'Source Serif Pro', Georgia, serif - 正文 / UI:
Söhne,回退Inter, system-ui, -apple-system, 'Segoe UI', sans-serif - 代码 / 等宽:
Söhne Mono,回退ui-monospace, 'JetBrains Mono', Menlo, Consolas, monospace
在 tokens.css 中,三个字体族被绑定为--font-display、--font-body、--font-mono。注意--font-display的注释明确写着"仅用于展示时刻",--font-body覆盖"所有 UI 与阅读文本"——这一职责切分是整套排版纪律的根。
层级(Hierarchy)
| 角色 | 字体 | 字号 | 字重 | 行高 | 字距 | 说明 |
|---|---|---|---|---|---|---|
| Display | Signifier | 56px (3.5rem) | 400 | 1.08 | -0.02em | 编辑性 Hero、公告标题 |
| H1 | Söhne | 40px (2.5rem) | 600 | 1.15 | -0.01em | 页面标题 |
| H2 | Söhne | 28px (1.75rem) | 600 | 1.2 | -0.005em | 区块标题 |
| H3 | Söhne | 20px (1.25rem) | 600 | 1.3 | normal | 子区块标题 |
| Body Large | Söhne | 18px (1.125rem) | 400 | 1.6 | normal | 引导段 |
| Body | Söhne | 16px (1rem) | 400 | 1.65 | normal | 标准阅读文本 |
| Body Small | Söhne | 14px (0.875rem) | 400 | 1.55 | normal | 卡片正文、密集 UI |
| Caption | Söhne | 13px (0.8125rem) | 500 | 1.4 | 0.01em | 元数据、徽标 |
| Label | Söhne | 12px (0.75rem) | 500 | 1.3 | 0.04em | Eyebrow、大写导航链接 |
| Code | Söhne Mono | 14px (0.875rem) | 400 | 1.55 | normal | 代码块、终端输出 |
这套字号在 tokens.css 中被映射为--text-xs(12px)到--text-4xl(56px)的阶梯,同时提供--leading-body: 1.65、--leading-tight: 1.08(Signifier 展示级压缩行距)与--tracking-display: -0.02em。在组件夹具 components.html 中可以看到落地写法:h1用var(--font-display)+var(--text-4xl)+ 字重 400 +var(--tracking-display)+var(--leading-tight);h2/h3则切回var(--font-body),行高分别固定为 1.20 与 1.30;.label使用 12px/500、text-transform: uppercase与0.04em字距。
三条原则
- 克制即身份:字重上限为 600;700+ 会显得脱离品牌。层级来自字号与颜色,而非字重。
- 衬线给灵魂,无衬线给系统:Signifier 只出现在编辑性展示时刻;产品 UI 只用无衬线。
- 展示级负字距:display 尺寸使用 -0.02em;到 16px 时字距归零。
4. 组件样式:从按钮到 chip 的完整配方
以下所有组件规格均来自原文档,并在 components.html 中有可直接运行的实现(其内部:root令牌块与tokens.css完全一致),组件清单与 token 引用关系可对照 components.manifest.json 中的groups结构。
按钮(Buttons)
Primary 主按钮
- 背景:
#0d0d0d;文字:#ffffff - 内边距:10px 18px
- 圆角:chip 上为 9999px 全药丸形,矩形 CTA 上为 12px
- Hover:背景
#1a1a1a - 用途:主 CTA、"Try ChatGPT"、"Sign in"
Secondary 次按钮
- 背景:
#ffffff;文字:#0d0d0d;边框:1px solid#e5e5e5 - 内边距:10px 18px;圆角:12px
- Hover:背景
#fafafa,边框#d4d4d4
Brand Accent 品牌强调按钮
- 背景:
#10a37f;文字:#ffffff - 内边距:10px 18px;圆角:12px
- Hover:
#0a7a5e - 用途:突出的升级 CTA、成功路径
在 components.html 的实现中,.btn基类统一了inline-flex布局、10px 18px内边距、var(--radius-sm)圆角、500 字重与 150ms 的--motion-fast过渡;.btn-primary用var(--fg)作背景、hover 切var(--fg-2);.btn-teal用var(--accent)背景、hover 切var(--accent-hover);键盘可达性通过.btn:focus-visible挂载var(--focus-ring)实现。
卡片(Cards)
- 背景:
#ffffff;边框:1px solid#ededed;圆角:16px;内边距:24px–32px - 阴影:默认无;hover 时
0 4px 16px rgba(13,13,13,0.06)
实现(components.html)中.card的阴影过渡使用--motion-base(220ms)+--ease-standard,呼应"克制动效"的整体纪律。
输入框(Inputs)
- 背景:
#ffffff;边框:1px solid#e5e5e5;圆角:12px;内边距:12px 14px - Focus:边框
#10a37f,ring0 0 0 3px rgba(16,163,127,0.12)
实现(components.html)中 focus 态的 ring 正是tokens.css里的--focus-ring变量,占位符颜色使用三级文本--meta。
药丸与标签(Pills & Tags)
- 背景:
#f5f5f5;文字:#3c3c3c;内边距:4px 10px;圆角:9999px;字体:12px / 500
5. 间距与布局:4px 网格上的慷慨留白
- 基础单位:4px。阶梯:4、8、12、16、24、32、48、64、96、128。
- 容器:max-width 1200px;移动端 gutter 24px,桌面端 48px。
- 区块节奏:主要区块之间纵向 96–128px;移动端 64px。
- 网格:桌面 12 列、移动 4 列,间距 24px。
tokens.css 将该尺度映射为--space-1(4px)到--space-16(64px),并额外提供了区块纵向节奏令牌--section-y-desktop: 96px、--section-y-tablet: 64px、--section-y-phone: 48px;components.html 中的.container与section样式展示了响应式落点:桌面 48px gutter、1023px 以下 24px、639px 以下仍为 24px,区块纵向间距随断点逐级收紧。.stack-3 / .stack-4 / .stack-6这类堆叠工具类则用相邻兄弟选择器把留白纪律固化到布局原语中。
6. 动效:克制是默认值
- 时长:hover 150–220ms;布局过渡 280–360ms。
- 缓动:入场使用
cubic-bezier(0.16, 1, 0.3, 1)(smooth out)。 - 纪律:无视差、无滚动劫持;只使用克制的 fade 与 translate。
token 侧(tokens.css)对应为--motion-fast: 150ms、--motion-base: 220ms与--ease-standard: cubic-bezier(0.16, 1, 0.3, 1)——前者覆盖 hover 级反馈,后者是全局默认缓动曲线。
7. 使用护栏:什么不该做
- 整套克制必须同现:中性编辑性克制、柔和圆角、稀疏强调色必须一起使用;单独的绿色强调色并不会产生 OpenAI 式表面。
- 衬线仅限展示时刻:Signifier 式展示时刻只用于编辑性或公告层级,产品控件必须留在无衬线系统中。
- 拒绝装饰性过载:避免装饰性动效、厚重阴影与超大装饰卡片;系统应让人感到平静、易读、有意图。
8. 仓库落地形态:从 DESIGN.md 到可消费的设计系统包
这套规范在 OpenDesign 中不是孤立的文档,而是一个完整的、可被 Agent 与运行时消费的"设计系统包"。按 design-systems/README.md 的说明,每个 bundled 包的最小结构为manifest.json(稳定发现元数据与来源)、DESIGN.md(面向 Agent 的权威设计散文)与tokens.css(权威语义 token 样式表);当前目录下 manifest.json 采用od-design-system-project/v1schema,声明了id: "openai"、category: "AI & LLM"、files.design/tokens等契约,还登记了USAGE.md、components.html、design-tokens.json、tailwind-v4.css等丰富文件与preview/、source/目录。
包内文件按职责分层:
- DESIGN.md:Agent 可读的规范散文(本文即其越南语译本 DESIGN-vi.md 的展开),视觉意图、约束与反模式都在这里。
- tokens.css:可直接粘贴进产物第一个
<style>块的语义 token 样式表——这是运行时真正生效的"单一事实源"。 - tailwind-v4.css:从
tokens.css派生的 Tailwind v4 映射(@theme中把--color-*、--font-*、--text-*、--spacing-*、--radius-*等全部绑定到 token 变量),文件头注释明确"由 tokens.css 派生,保持 tokens.css 为事实源"。 - components.html:独立组件夹具,含 hero、features grid、按钮、卡片、输入框、chip 的完整样式与结构;components.manifest.json 是其派生的组件/token 索引(41 个选择器、18 个类、8 个组件分组,并区分了 declared/referenced/unused 的 token 清单)。
- USAGE.md:面向 Agent 的阅读顺序与使用指南——先读包契约、再读 DESIGN.md、将 tokens.css 粘贴进首产物
<style>块、用组件清单复用组件、必要时用preview/页面做视觉核对。 - source/:导入证据与 token 契约报告。按 evidence.md 的说明,该包由 OpenDesign 精选 bundled fixture 派生,并不声称重新抓取上游品牌站点;tokens.source.json 逐条记录了每个 token 在
tokens.css中的声明行号。
从消费链路看,选择该包后,USAGE.md、tokens.css、组件信息、导入模式与 craft 绑定(manifest 中craft.suggested建议了color与accessibility-baseline)会被组合进 Agent 提示词,preview/下的 colors.html、typography.html、spacing.html 三个页面则用于视觉巡检。完整的打包规范、guard 校验与编写清单见 docs/design-systems.md。
结语
OpenAI 风格设计系统的精髓不在某一个绿色、某一款衬线,而在于"整套克制"的协同:纯白画布上的深青黑墨色、上限 600 的字重纪律、仅存于展示时刻的 Signifier、发丝线边框与留白主导的分隔、以及 150–220ms 的安静动效。在 OpenDesign 中,这一切被沉淀为可验证、可审计、可切换的 token 契约(tokens.css+ 派生文件 + 契约报告),既可供 Agent 直接消费出产物,也可作为自建 AI 产品设计系统的参照模板——从文档、变量到组件夹具,每一层都有据可查。
【免费下载链接】open-design🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. 🖥️ Local-first desktop app. 🖼️ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video — real files, HTML/PDF/PPTX/MP4 export. 🤖 Claude Code / Codex / Cursor / DeepSeek Harness / OpenCode & 20+ CLIs via BYOK.项目地址: https://gitcode.com/gh_mirrors/opend/open-design
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考