news 2026/9/20 8:45:55

OpenDesign 中的 Figma 风格设计系统:从 DESIGN-id 规范到 tokens.css 与组件实现的完整解读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenDesign 中的 Figma 风格设计系统:从 DESIGN-id 规范到 tokens.css 与组件实现的完整解读

OpenDesign 中的 Figma 风格设计系统:从 DESIGN-id 规范到 tokens.css 与组件实现的完整解读

【免费下载链接】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

本文聚焦 OpenDesign 仓库中随附的 Figma 风格设计系统包(design-systems/figma),以 DESIGN-id.md 视觉规范为骨架,结合 tokens.css、components.html 等源码级产物,系统讲解「严格黑白界面外壳 + 彩色产品内容」的双层设计哲学、figmaSans 可变字重体系、pill/圆形几何按钮、虚线焦点指示等核心规则,并给出可直接复用的 Agent Prompt 配方与实现证据,帮助你在生成原型、落地页、仪表盘等设计任务中复现 Figma 风格的高保真页面。


1. 设计系统包结构:一份面向 Agent 与审阅者的完整契约

在 OpenDesign 中,每个品牌风格包都遵循 Design System 2.0 的「文档 + Token + 组件 + 预览」四层结构。Figma 包位于 design-systems/figma,由 manifest.json 声明包元数据与文件清单:

文件作用
DESIGN.md / DESIGN-id.md视觉意图、约束与反模式(视觉规范本体,多语言版本)
tokens.cssToken 绑定样式表,是全部可见值的唯一事实来源(source of truth)
design-tokens.json结构化 Token 清单(56 个 Token,评分 100/excellent)
tailwind-v4.css派生产物:将 Token 映射为 Tailwind v4 主题
components.html参考组件 fixture:每个可见值都来自 tokens.css
components.manifest.json组件清单:选择器、类、组件分组与 Token 引用
USAGE.md消费契约:阅读顺序与使用注意事项
preview/colors / typography / spacing 三个可视化预览页
source/审计证据(evidence.md、token-contract.report.json、tokens.source.json)

根据 USAGE.md 约定的阅读顺序:先读 USAGE 理解包契约 → 读 DESIGN 掌握视觉意图与反模式 → 把tokens.css粘贴到首个 artifact 的<style>块再写组件 CSS → 用components.manifest.json获取紧凑组件清单,需要精确选择器或状态时打开components.html→ 需要视觉抽查时查看preview/页面。需要特别注意的是,本包源自 OpenDesign 精选的内置 fixture(见 manifest.json 的source.type: "bundled"与 source/evidence.md),不宣称来自上游品牌仓库的原始抓取,因此不应声称拥有原始上游来源证据。

2. 视觉主题:设计工具设计了自己的界面

2.1 双层结构:无色的外壳 + 彩色的内容

Figma 风格最核心的特征是界面外壳与产品内容严格分离:整个交互框架(chrome)只使用#000000#ffffff两个颜色,而 hero 区与产品展示区则爆发出多色渐变(电光绿、亮黄、深紫、热粉)。这一分离意味着设计系统本身是无色的,把产品的彩色输出当作主角内容——营销页本质上是一面展示彩色艺术品的白色画廊墙。

该决策在 tokens.css 中被显式注释为品牌身份的三句话之一:"Monochrome interface absolutely — pure black (#000000) for all text, borders, and solid buttons; pure white (#ffffff) for all backgrounds; no mid-tones in the chrome layer whatsoever."(界面严格单色——所有文本、边框与实心按钮为纯黑,所有背景为纯白,外壳层没有任何中间调。)

2.2 可变字重的微观层次

figmaSans 自定义可变字体在极细(weight 320)与粗体(weight 700)之间调制,且停留在多数字体系统从不触及的中间档位:320、330、340、450、480、540。这种颗粒化的字重控制让每个文本元素拥有精确校准的视觉重量,通过微观差异而非「regular vs bold」这种粗钝工具建立层级——330 与 340 的差异几乎不可见,但在结构上意义重大。

2.3 圆形与 pill 几何、虚线焦点

与可变字体并列的另一大识别特征是 circle-and-pill 几何:按钮使用 50px 半径(pill)或 50%(图标按钮的正圆),营造有机的、工具调色板般的质感。虚线焦点指示器(dashed 2px)是有意为之的设计选择——它呼应 Figma 编辑器中的选区手柄(selection handles),让网站的 UI 语言引用产品自身的 UI 语言,是一种连接网站与产品的元设计(meta-design)选择。

核心特征速查:

  • 自定义可变字体 figmaSans,非常规字重档位 320、330、340、450、480、540、700
  • 界面外壳严格黑白——颜色只存在于产品内容中
  • figmaMono 用于大写技术标签,宽 letter-spacing
  • 按钮几何:pill(50px)与圆形(50%)
  • 虚线焦点轮廓,呼应 Figma 编辑器选区手柄
  • 多彩 hero 渐变(绿、黄、紫、粉)
  • 全局启用 OpenType"kern"特性
  • 全页面负 letter-spacing——连正文都在 -0.14px 到 -0.26px

3. 颜色系统:二元单色与玻璃叠加

3.1 主色(Primer)

Token角色
--fg/--accent#000000纯黑所有文本、所有实心按钮、所有边框;界面唯一的「颜色」
--bg/--surface#ffffff纯白所有背景、白色按钮、深色表面的文本

注意:Figma 营销站的界面层使用这两种颜色,所有鲜艳颜色只出现在产品截图、hero 渐变与嵌入内容中。有趣的是,在黑白系统中黑色本身就是强调色(accent)——tokens.css 中--accent: #000000的注释直白地写道:"black IS the accent in a monochrome system"--accent-on: #ffffff保证黑底白字对比。

3.2 表面与背景(Surface & Background)

Token用途
--bg#ffffff页面主背景与卡片表面
--mutedrgba(0, 0, 0, 0.55)白底上的次级文本
--metargba(0, 0, 0, 0.40)元数据、说明文字
--borderrgba(0, 0, 0, 0.12)仅在结构需要处使用的最小边框
--border-softrgba(0, 0, 0, 0.06)更柔和的边框
玻璃黑rgba(0, 0, 0, 0.08)次级圆形按钮的细微深色叠加(即--accent-active
玻璃白rgba(255, 255, 255, 0.16)深色/彩色表面按钮的磨砂玻璃叠加

3.3 渐变系统

  • Hero 渐变:使用电光绿、亮黄、深紫、热粉的多停靠点渐变,是 hero 区的视觉签名,代表工具带来的创作可能性。
  • 产品分区渐变:各个产品区域(Design、Dev Mode、Prototyping)的展示区可分别采用不同颜色主题。

语义色(success/warn/danger)在黑白外壳中作为例外保留:--success: #16a34a--warn: #eab308--danger: #dc2626

4. 字体排印规则:可变精度、轻量基底与负字距

4.1 字体族

Token
--font-display/--font-body"figmaSans", "figmaSans Fallback", "SF Pro Display", system-ui, Helvetica, sans-serif
--font-mono"figmaMono", "figmaMono Fallback", "SF Mono", Menlo, ui-monospace, monospace

4.2 层级总表

角色字体字号字重行高Letter Spacing说明
Display / HerofigmaSans86px (5.38rem)4001.00(紧凑)-1.72px最大冲击力,极端 tracking
章节标题figmaSans64px (4rem)4001.10(紧凑)-0.96px功能分区标题
副标题figmaSans26px (1.63rem)5401.35-0.26px强调型分区文本
轻量副标题figmaSans26px (1.63rem)3401.35-0.26px轻量分区文本
功能标题figmaSans24px (1.5rem)7001.45normal加粗卡片标题
大号正文figmaSans20px (1.25rem)330–4501.30–1.40-0.1px 至 -0.14px描述、引言
正文 / 按钮figmaSans16px (1rem)330–4001.40–1.45-0.14px 至 normal标准正文、导航、按钮
轻量正文figmaSans18px (1.13rem)3201.45-0.26px 至 normal轻量正文
Mono 标签figmaMono18px (1.13rem)4001.30(紧凑)0.54px大写章节标签
Mono 小号figmaMono12px (0.75rem)4001.00(紧凑)0.6px大写迷你标签

4.3 核心原则

  • 可变字体精度:使用多数系统从不触碰的字重 320–540,用细微差异而非剧烈跳变建立层级。
  • 轻量即基底:多数正文使用 320–340(比常见的 400「regular」更轻),营造空灵、通透的阅读体验,契合设计工具美学;正文字重上限为 450。
  • 处处 kern:每个文本元素启用 OpenType"kern"——components.html 的body与标题、按钮、tab 上都显式写有font-feature-settings: "kern",注释强调"OpenType kern on all text — structural, not decorative."(结构性而非装饰性)。
  • 默认负 tracking:连正文都使用 -0.1px 至 -0.26px 的 letter-spacing,显示级文本进一步压缩至 -0.96px、-1.72px。Token 侧用--tracking-display: -0.02em(86px 归一化后即 -1.72px)表达。
  • Mono 承载结构:figmaMono 大写 + 正 letter-spacing(0.54px–0.6px),形成技术路标式标签。

components.html中的实现细节值得注意:标题默认字重为 400(h1/h2),而 h3 副标题用字重 540、line-height: 1.35letter-spacing: -0.01em.lead用字重 330、letter-spacing: -0.007em.mono-label则用 18px figmaMono、大写、letter-spacing: 0.54px——与 DESIGN 文档的层级表逐项对应。

5. 组件样式:按钮、卡片、导航与标志性组件

5.1 按钮体系

类型背景文本半径焦点用途
黑色实心(Pill)#000000#ffffff圆形(50%,图标按钮)虚线 2px最大强调
白色 Pill#ffffff#000000pill(50px)虚线 2px深色/彩色表面的标准 CTA;padding 8px 18px 10px(垂直不对称)
玻璃黑rgba(0, 0, 0, 0.08)纯黑圆形(50%)虚线 2px亮色表面的次级操作
玻璃白rgba(255, 255, 255, 0.16)纯白圆形(50%)虚线 2px深色/彩色表面的次级操作

源码实现上,.btn基类统一border-radius: var(--radius-sm)(50px pill),.btn:focus-visible { outline: 2px dashed var(--fg); outline-offset: 2px; }落实虚线焦点;hover 用玻璃叠加而非改色:.btn-black:hover背景为rgba(0, 0, 0, 0.85).btn-white:hover背景为rgba(0, 0, 0, 0.04)

5.2 卡片与容器

  • 背景:纯白(--bg
  • 边框:无或最小
  • 半径:6px(小容器)、8px(图片、卡片、对话框)
  • 阴影:--elev-raised: 0 4px 16px rgba(0, 0, 0, 0.08)的细微到中等浮起效果
  • 内容:产品截图作为卡片内容

5.3 导航

白色底上的干净水平导航;黑色 Figma wordmark 徽标;pill 形(50px)产品 tab 导航;黑色文本链接 + 1px 下划线装饰;黑色 pill 按钮 CTA;hover 通过 CSS 变量改变文本颜色。

5.4 标志性组件

  • 产品 Tab 栏(Product Tab Bar):水平 pill 形(50px 半径)tab,每个 tab 代表一个产品域(Design、Dev Mode、Prototyping 等),激活态高亮。实现上.tabfont-weight: 480padding: 8px 18px.tab.active为黑底白字,.tab:hoverrgba(0, 0, 0, 0.06)
  • Gradient Hero 区:全宽多彩渐变背景,白色文本叠加 86px 显示标题,产品截图在渐变内浮动。
  • 虚线焦点指示器:所有可交互元素在聚焦时使用dashed 2px轮廓。

6. 布局原则:8px 基础网格与画廊式留白

6.1 间距系统

基础单元 8px;完整刻度:1px、2px、4px、4.5px、8px、10px、12px、16px、18px、24px、32px、40px、46px、48px、50px。Token 化后为--space-1(4px)到--space-12(48px),并配套--section-y-desktop: 96px--section-y-tablet: 64px--section-y-phone: 40px的分区节奏变量。

6.2 网格与容器

  • 容器最大宽度:1920px(--container-max),桌面/平板/手机侧 gutter 分别为 40px / 24px / 16px
  • Hero:全宽渐变、内容居中
  • 产品分区:交替展示
  • Footer:深色全宽区块
  • 响应范围 559px–1920px

6.3 留白哲学

  • 画廊式节奏:宽裕间距让每个产品分区像独立展品一样呼吸。
  • 彩色分区作为视觉呼吸:hero 渐变与产品展示在单色界面区块之间提供色彩喘息。

6.4 Border Radius 刻度

级别用途
最小2px小链接元素
柔和6px小容器、分隔线
舒适8px卡片、图片、对话框
Pill50pxTab 按钮、CTA
圆形50%图标按钮、圆形元素

Token 侧对应--radius-sm: 50px(pill,所有交互元素)、--radius-md: 8px--radius-pill: 9999px

7. 深度与层级:以背景对比而非阴影取胜

层级处理用途
扁平(Level 0)无阴影(--elev-flat: none页面背景、多数文本
表面(Level 1)渐变/深色分区上的白色卡片卡片、产品展示
浮起(Level 2)细微阴影(--elev-raised浮动卡片、hover 状态

阴影哲学:Figma 克制地使用阴影。主要的深度机制是背景对比(彩色/深色分区上的白色内容)以及产品截图本身固有的维度感。另一个细节是--elev-ring: 0 0 0 1px var(--border)(1px 描边替代阴影)与--focus-ring: 0 0 0 2px rgba(0, 0, 0, 0.8)(键盘导航的焦点回退)。

8. 响应式行为

8.1 Breakpoint

名称宽度主要变化
小屏手机<560px紧凑布局,纵向堆叠
平板560–768px微调
小桌面768–960px双列布局
桌面960–1280px标准布局
大桌面1280–1440px展开
超宽1440–1920px最大宽度

8.2 折叠策略

  • Hero 文本:86px → 64px → 48px
  • 产品 tab:移动端水平滚动
  • 功能分区:堆叠为单列
  • Footer:多列 → 堆叠

components.html使用两档媒体查询实现:@media (max-width: 1023px)切换 gutter 与分区内边距、hero-grid变单列、features-grid变双列;@media (max-width: 639px)进一步把features-grid折叠为单列。

9. 无障碍与焦点:虚线 2px 是签名模式

DESIGN 文档将「对所有交互元素应用虚线 2px 焦点轮廓」明确列为 Do 项,并强调它是签名式无障碍模式(signature accessibility pattern);对应地,「不要使用实线焦点轮廓」是 Don't 项。该规则在 components.html 中落实到.btn:focus-visible.tab:focus-visible两处,均使用outline: 2px dashed var(--fg); outline-offset: 2px,保证键盘导航时焦点清晰可见且与产品编辑器的选区语言一致。

10. Token 契约与派生产物:tokens.css 是唯一事实来源

本包遵循「单一事实来源 + 派生产物」的工程约束:source/evidence.md 明确说明design-tokens.jsontailwind-v4.css是派生输出,应从 token 契约报告与样式表重新生成,不应手工编辑。

  • TOKEN_SCHEMA 契约:design-tokens.json 汇总 56 个 Token,按 A1-identity(8)、A1-structure(18)、A2(26)、B-slot(4)分层,score: 100grade: "excellent"recommendRebuild: false,每个 Token 都带sources指向 tokens.css 的具体声明行。
  • 组件覆盖审计:components.manifest.json 记录 34 个选择器、17 个类、19 个元素,undeclaredReferenced: []表明组件引用的所有 Token 都有声明,无悬空引用;同时列出unusedDeclared(如--danger--focus-ring等在 fixture 中声明但未被引用的 Token),供扩展组件时直接使用。
  • Tailwind v4 集成:tailwind-v4.css 通过@theme把 CSS 变量映射为--color-*--text-*--radius-*--shadow-*--duration-*--spacing-*等 Tailwind 命名空间,让你既能写原生 CSS 变量,也能用 Tailwind 工具类消费同一套 Token。

11. 给 Agent 的 Prompt 指南:可直接复用的配方

11.1 快速颜色参考

  • 一切:纯黑(#000000)纯白(#ffffff)
  • 玻璃黑:rgba(0, 0, 0, 0.08)
  • 玻璃白:rgba(255, 255, 255, 0.16)

11.2 组件 Prompt 示例

  • 「在鲜艳的多色渐变(绿、黄、紫、粉)上创建 hero。标题 86px figmaSans 字重 400、行高 1.0、letter-spacing -1.72px。白色文本。白色 pill CTA 按钮(50px 半径,8px 18px padding)。」
  • 「设计产品 tab 栏,pill 形按钮(50px 半径)。激活态:黑底白字;非激活态:透明、黑色文本。figmaSans 20px 字重 480。」
  • 「构建章节标签:figmaMono 18px、大写、letter-spacing 0.54px、黑色文本。启用 kern。」
  • 「创建正文:20px figmaSans 字重 330、行高 1.40、letter-spacing -0.14px。白底纯黑。」

11.3 迭代指南

  1. 精确使用可变字重档位:320、330、340、450、480、540、700
  2. 界面永远黑 + 白——绝不给外壳添加颜色
  3. 虚线焦点轮廓,而非实线
  4. 正文 letter-spacing 永远为负,mono 标签永远为正
  5. 按钮/tab 用 pill(50px),图标按钮用圆形(50%)

11.4 Do's and Don'ts 总结

Do:用 figmaSans 精确可变字重(320–540,颗粒化字重控制本身就是设计);保持界面严格黑白(颜色只来自产品内容);所有交互元素用 pill(50px)与圆形(50%)几何;应用虚线 2px 焦点轮廓;所有文本启用"kern";用 figmaMono 大写 + 正 letter-spacing 做标签;全页应用负 letter-spacing(-0.1px 至 -1.72px)。

Don't:不要添加界面颜色(单色调色板是绝对的);不要用标准字重(400/500/600/700)——用可变字体的独特档位(320/330/340/450/480/540);不要在按钮上用尖锐直角——只能 pill 与圆形几何;不要用实线焦点轮廓——虚线是签名;不要把正文字重提到 450 以上——轻量美学是核心;不要在正文字体上用正 letter-spacing——永远为负。


结语

这份 Figma 风格设计系统包的价值在于:它把「黑白外壳 + 彩色内容」「可变字重微观层级」「pill/圆形几何」「虚线焦点」等高度凝练的视觉判断,编码成了机器可读、可审计、可派生的工程资产。无论你是通过 DESIGN-id.md 建立视觉直觉、通过 tokens.css 获取 Token 值、通过 components.html 核对组件细节,还是直接用本文第 11 节的 Prompt 配方驱动编码 Agent 生成页面,都能确保输出在视觉上忠于 Figma 的品牌语言,在工程上忠于 OpenDesign 的 Token 契约。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 8:45:51

OpenToonz:免费的开源 2D 动画软件,从草图到成片一站完成

OpenToonz&#xff1a;免费的开源 2D 动画软件&#xff0c;从草图到成片一站完成 【免费下载链接】opentoonz OpenToonz - An open-source full-featured 2D animation creation software 项目地址: https://gitcode.com/GitHub_Trending/op/opentoonz 商业级 2D 动画软…

作者头像 李华
网站建设 2026/9/20 8:44:40

从零自研短链系统:从短码生成到高并发跳转的完整实战

1. 内容整体设计与思路拆解短链这东西&#xff0c;听起来是个再小不过的工程。做之前我也觉得&#xff0c;不就是把一串长 URL 变成一个小短码嘛&#xff0c;能有多复杂。可真到动手写的时候才发现&#xff0c;一个能上线的短链系统&#xff0c;几乎把后端常见的套路全部串起来…

作者头像 李华
网站建设 2026/9/20 8:44:35

AIGC检测与学术写作:深度改写与混合创作方法论

1. 论文AIGC率问题的现状与挑战2026年的学术环境正在面临一个前所未有的挑战——随着生成式AI技术的普及&#xff0c;论文中AI生成内容&#xff08;AIGC&#xff09;的比例正在急剧攀升。最近一项针对全球TOP100高校的调研显示&#xff0c;超过67%的导师表示他们无法准确判断学…

作者头像 李华
网站建设 2026/9/20 8:42:21

Coursor:提升开发者终端效率的智能命令行工具

1. 项目概述Coursor是一款专为开发者设计的命令行工具&#xff0c;它能够显著提升终端操作效率。作为一个长期与终端打交道的开发者&#xff0c;我深刻理解在复杂项目环境中频繁切换目录、记忆冗长路径的痛苦。Coursor通过智能索引和快速跳转功能&#xff0c;让终端导航变得像使…

作者头像 李华
网站建设 2026/9/20 8:42:10

Context Pruning技术解析:提升RAG系统效率的关键方法

1. 为什么我们需要Context Pruning&#xff1f;在检索增强生成&#xff08;RAG&#xff09;系统中&#xff0c;我们经常会遇到一个典型问题&#xff1a;当检索到的上下文文档过长或包含大量无关信息时&#xff0c;生成模型的表现会显著下降。这个问题就像让一个学生在考试时同时…

作者头像 李华
网站建设 2026/9/20 8:41:29

开源AI Agent框架选型与实战指南

1. 开源AI Agent框架全景扫描2023年被称为AI Agent元年&#xff0c;各类开源框架如雨后春笋般涌现。作为长期跟踪AI工程化落地的从业者&#xff0c;我实测了GitHub上star量超1k的12个主流框架&#xff0c;发现它们大致可分为三类&#xff1a;单智能体开发框架&#xff1a;侧重个…

作者头像 李华