用 OpenDesign 复刻 Discord 设计语言:Blurple 暗色优先设计系统的 Tokens、排版与组件实战
用 OpenDesign 复刻 Discord 设计语言Blurple 暗色优先设计系统的 Tokens、排版与组件实战【免费下载链接】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 仓库中 design-systems/discord 设计系统包为蓝本系统拆解 Discord 风格设计语言的完整实现从三段式暗色深度、单一饱和色 Blurple 的克制用法到 gg sans 字族与重量对比排版层级再到按钮、输入框、服务器头像、状态点等组件的精确样式参数。读完本文你将掌握如何把整套规范落地为可复用的 CSS 变量令牌tokens并了解 tokens.css 与 components.html 之间的绑定关系可直接用于在 OpenDesign 中生成 Discord 气质的原型、落地页与仪表盘。说明本仓库中的设计系统文档提供英文DESIGN.md、土耳其语DESIGN-tr.md等多语言版本内容实质一致本文以DESIGN-tr.md为骨架展开。1. 视觉主题为“晚间、突袭与群语音”而生的暗色优先界面Discord 的产品场景是晚间、游戏突袭和群组语音通话因此整套界面以暗色优先dark-first。默认画布是深邃的Background Primary#313338暗色主题聊天列在其上叠加稍亮或稍暗的层次用于区分频道、话题与侧边面板。这个「三层深度阶梯」正是 Discord 界面能被一眼认出的根本原因最深#1e1f22Background Tertiary——服务器列表轨道次深#2b2d31Background Secondary——频道侧边栏、设置侧边栏基准#313338Background Primary——聊天表面、消息列标志性的Blurple#5865f2被严格保留给品牌标识、主要行动号召CTA、提及和「你自己」的提示you affordance在克制的暗色中性面上少量使用反而更加醒目。形状语言是「圆润但不至于像气球一样软」卡片 8px 圆角、输入框 4px、状态徽章与标签使用完整胶囊形服务器是 48px 的圆角方形头像hover 时变形为圆形。排版上正文与界面全部使用gg sansDiscord 自有的 Whitney 替代字体聊天行距紧凑消息组之间 4–8px保证数小时的滚动回溯依然易于扫读。关键特征速览原文档 §1暗色优先表面#1e1f22/#2b2d31/#313338三段深度Blurple#5865f2是聊天表面唯一的饱和强调色全部文本使用 gg sansWhitney 风格——友好、几何、中性16px 圆角的圆角方形服务器头像hover 时吸附为圆形紧凑的聊天行距 宽裕的侧边面板内边距状态点在线绿、空闲黄、勿扰红、离线灰低 alpha 的 1px 像素对齐分隔线偏冷白2. 颜色面板与角色每个色值背后的语义分工原文档§2给出了完整的色板下面按语义角色分组整理并标注了每个色值在界面中的实际职责。主色Primary令牌名色值用途Blurple#5865f2品牌主色、主要 CTA、提及高亮Blurple Hover#4752c4Blurple 的 hover/active 状态Blurple Soft#7289da旧版 blurple营销场景的次要强调表面暗色主题——默认令牌名色值用途Background Tertiary#1e1f22服务器列表轨道最深的背景Background Secondary#2b2d31频道侧边栏、设置侧边栏Background Primary#313338聊天表面、消息列Background Floating#111214浮动弹层、工具提示、自动补全Background Modifier Hoverrgba(78, 80, 88, 0.3)行上的 hover 覆盖层Background Modifier Selectedrgba(78, 80, 88, 0.6)当前激活行表面亮色主题令牌名色值用途Light Bg Primary#ffffff亮色主题下的聊天表面Light Bg Secondary#f2f3f5亮色主题下的侧边栏Light Bg Tertiary#e3e5e8最深的亮色表面文本Text令牌名色值用途Header Primary#f2f3f5暗色主题下频道标题、弹窗标题Header Secondary#b5bac1弱化的标题Text Normal#dbdee1暗色主题正文——比纯白略冷Text Muted#949ba4时间戳、服务器名、次级元数据Text Link#00a8fc消息内超链接——天空蓝与 blurple 区分Channels Default#80848e侧边栏中未激活的频道名状态与语义Status Semantic令牌名色值用途Status Online#23a55a在线点、成功状态Status Idle#f0b232空闲点、离开状态Status DND#f23f43勿扰同时充当破坏性红色Status Streaming#593695“正在直播”紫色Status Offline#80848e离线灰Mention Highlightrgba(88, 101, 242, 0.1)提及行上的柔和 blurple 晕染边框与分隔线令牌名色值用途Background Modifier Accentrgba(255, 255, 255, 0.06)暗色模式的标准分隔线Border Subtle#3f4147卡片的实色分隔线源码侧的令牌落地打开 tokens.css可以看到上述角色被一一映射为结构化 CSS 变量--bg: #313338、--surface: #2b2d31、--surface-warm: #1e1f22、--fg: #dbdee1、--fg-2: #f2f3f5、--muted: #949ba4、--meta: #80848e、--accent: #5865f2、--accent-hover: #4752c4等。值得注意的两个实现细节激活态强调色使用现代 CSS 颜色函数--accent-active: color-mix(in oklab, var(--accent), black 14%)无需手写第二个色值即可派生出按压态语义色直接复用状态点色板--success: #23a55a、--warn: #f0b232、--danger: #f23f43即「勿扰红同时承担破坏性红色」在令牌层的一一对应。令牌契约方面design-tokens.json 记录了 56 个令牌的声明与引用统计declaredTokens 56、sourceBackedTokens 56、总分 100、评级 excellent每个令牌都标注了它在tokens.css中的声明行号source/token-contract.report.json 则把每个 TOKEN_SCHEMA 绑定映射回提交的样式表声明行是审计与回填的证据链。3. 排版规则重量对比优先于颜色对比Discord 的字族策略非常明确原文档 §3正文 / 界面 / 标题gg sans回退Helvetica Neue, Helvetica, Arial, sans-serif展示旧 / WhitneyWhitney回退gg sans代码 / 等宽gg mono回退Consolas, Andale Mono, Courier New, Courier, monospace层级表Hierarchy角色字体字号字重行高字距备注Display Herogg sans56px (3.5rem)8001.1-0.02em营销 hero页面标题gg sans24px (1.5rem)7001.25normal设置/资料页标题频道名gg sans16px (1rem)6001.25normal#general、频道头消息正文gg sans16px (1rem)4001.375normal标准聊天文本用户名gg sans16px (1rem)5001.25normal消息作者时间戳gg sans12px (0.75rem)5001.25normal“今天 16:32”侧边栏频道gg sans16px (1rem)5001.25normal频道列表行服务器名gg sans16px (1rem)6001.25normal服务器标题说明 / 元数据gg sans12px (0.75rem)4001.30.02em状态文本、已编辑标记行内代码gg mono0.875em400inheritnormal行内code代码块gg mono14px (0.875rem)4001.5normal三反引号块三条排版原则友好的几何gg sans 在 a/g/s 上以圆角终端替代 Whitney——品牌要的是不破坏可读性的温暖感重量对比而非颜色对比层级来自 400→500→600→700→800 的字重台阶表面保持中性16px 正文底线聊天消息绝不小于 16px密度来自行高1.375而非缩小字号。在 tokens.css 中这套字号被展开为--text-xs: 12px时间戳/说明、--text-sm: 14px、--text-base: 16px消息正文永不小于此、--text-2xl: 24px页面标题、--text-4xl: 56px展示 hero并配套--leading-body: 1.375、--leading-tight: 1.10、--tracking-display: -0.02em56px 展示级压缩字距。tailwind-v4.css 再将这些变量通过theme块桥接为 Tailwind v4 的--font-*、--text-*、--leading-*、--tracking-*命名空间方便在组件里直接使用工具类。4. 组件样式规格可直接照抄的参数原文档§4给出了每个核心组件的精确参数这里完整保留并补充说明。按钮Buttons主要按钮Primary背景#5865f2文本#ffffff内边距8px 16px圆角4pxHover#4752c4用途主要 CTA、“继续Continue”、“加入服务器Join Server”次要按钮Secondary背景#4e5058文本#ffffff内边距8px 16px圆角4pxHover#6d6f78三级 / 细腻链接风格背景transparent文本#dbdee1Hover文本加下划线背景不变危险按钮Danger背景#da373c文本#ffffffHover#a12d2f输入框Inputs背景#1e1f22文本#dbdee1边框1px solid#1e1f22圆角4px内边距10px 12px聚焦态边框变为#5865f2服务器头像Server Avatars尺寸48×48px圆角默认 16px圆角方形hover 与激活态过渡到 50%激活态图标列左边缘显示 4px 白色胶囊指示条状态点Status Dots尺寸10×10px边框3px solid background-tertiary制造“缺口”效果位置头像右下角卡片 / 嵌入内容Cards / Embeds背景#2b2d31暗色或#f2f3f5亮色左边框4px solid 嵌入内容强调色圆角4px内边距8px 16px提及胶囊Mention Pill背景rgba(88, 101, 242, 0.3)文本#c9cdfb内边距0 2px圆角3px组件清单的机器可读版本components.manifest.json 将上述组件抽象成带id、label、selectors、classes、tokenReferences的分组清单buttons、inputs、cards、links、typography、layout 六个组 presentbadges、keyboard、icons 三个组 present:false并统计了tokens.css中 56 个令牌的 declared/referenced/unused 状态与 38 个选择器。它同时记录了整份 fixture 的规模styleBlockCount: 1、selectorCount: 38、classCount: 17、elementCount: 21。实际的选择器与样式实现可直接对照 components.html 查看。5. 间距与布局4px 基准网格与三段式列结构原文档§5定义的布局骨架基准单位4px。刻度4、8、12、16、20、24、32、40服务器轨道72px 宽固定频道侧边栏240px 宽成员列表桌面端 240px 宽聊天列流式最小 380px在令牌层4px 网格被完整落到--space-1到--space-124/8/12/16/20/24/32/40px容器约束为--container-max: 1200px栅格随断点切换--container-gutter-desktop: 24px/--container-gutter-tablet: 16px/--container-gutter-phone: 16px区块节奏--section-y-desktop: 80px/--section-y-tablet: 48px/--section-y-phone: 32px在 components.html 的section规则里直接消费。此外tokens.css 还提供了圆角族--radius-sm: 4px按钮/输入框、--radius-md: 8px卡片、--radius-lg: 16px头像、--radius-pill: 9999px胶囊与阴影族--elev-flat、--elev-ring、--elev-raised、--focus-ring: 0 0 0 3px rgba(88, 101, 242, 0.3)其中暗色界面的“抬升感”优先用半透明白色描边而非投影来表达。6. 动效规范短促、干脆、可感知原文档§6的动效节奏时长hover 200ms头像圆角变形 350ms工具提示淡入淡出 80ms缓动曲线头像变形使用cubic-bezier(0.215, 0.61, 0.355, 1)快速启动后稳定通知脉冲未读提及指示器上 1.4s ease-in-out infinite令牌层对应为--motion-fast: 80ms、--motion-base: 200ms与--ease-standard: cubic-bezier(0.2, 0, 0, 1)tokens.css 第 116–118 行并在 tailwind-v4.css 中映射为--duration-fast、--duration-base、--ease-standard。注意原文档给出的头像变形专用缓动cubic-bezier(0.215, 0.61, 0.355, 1)与令牌层的标准缓动cubic-bezier(0.2, 0, 0, 1)并不相同——前者用于单一场合的「吸附感」变形后者是全局默认使用时请按场景区分。7. 使用护栏Usage Guardrails原文档§7给出了三条硬性约束避免产出“形似神不似”的 Discord 界面必须整体保持暗色外壳 紧凑密度 blurple 行动层级这三件套在亮色营销风格布局里用 blurple会破坏 Discord 的产品感导航密集型表面应围绕轨道rails、侧边栏与聊天列来组织而不是散落的装饰卡片表现人、服务器或在线状态时坚持使用圆角方形头像 状态点的语言。USAGE.md 进一步规定了包级使用契约先读本文件理解包契约再读DESIGN.md理解视觉意图与反模式然后把 tokens.css 粘贴进首个产物的style块后再写组件 CSS用 components.manifest.json 作为组件清单必要时打开 components.html 核对精确选择器。它同时提醒避免在复制的:root令牌块之外使用裸色值避免绕过tokens.css独立重定义 Tailwind 或设计令牌且不要宣称存在上游原始来源证据——本包基于仓库内置的精选 fixture 回填见 source/evidence.md。8. 落地路径从规范到可用界面的文件地图在 OpenDesign 中复刻 Discord 风格推荐按以下顺序使用仓库内资源阅读规范DESIGN.md含DESIGN-tr.md等多语言版本定义视觉意图与反模式复制令牌把 tokens.css 的:root块粘贴为产物第一个style的基底核对组件用 components.manifest.json 快速盘点用 components.html 查看精确选择器与状态预览校验打开preview/下的 colors.html、typography.html、spacing.html 做视觉抽检派生输出若需要 Tailwind v4 环境使用 tailwind-v4.css令牌契约与来源回溯分别见 design-tokens.json 与 source/token-contract.report.json。这套「规范文档 令牌样式表 组件清单 预览页」的包结构正是 OpenDesign 设计系统体系的标准形态Discord 包可以作为暗色优先、强调色克制的聊天/SaaS 类界面的直接参考模板。【免费下载链接】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),仅供参考

相关新闻

PhysX 5源码尽调:从架构演进到Omniverse集成的物理引擎深度解析

PhysX 5源码尽调:从架构演进到Omniverse集成的物理引擎深度解析

1. 项目概述与源码尽调目标1.1 为什么在这个时间点做PhysX源码尽调先说点背景。PhysX从2008年被NVIDIA收购算起,在物理引擎这个圈子里已经跑了十五年以上。游戏开发者对它不陌生,Unity、Unreal都在用,但大部分人是把它当黑盒用——调几个参数…

2026/9/19 22:58:20 阅读更多 →
Windows下Claude Code+Playwright+MCP三端联调排坑指南

Windows下Claude Code+Playwright+MCP三端联调排坑指南

1. 这不是一次普通配置:Claude Code Playwright MCP 的组合为何在 Windows 上特别“脆”我第一次在 Windows 上尝试把 Claude Code、Playwright 和 MCP(Model Control Protocol)三者串起来跑通时,以为只是照着文档敲几行命令的事…

2026/9/19 22:58:20 阅读更多 →
Vuetify CSS Layers 级联层机制完全指南:告别特异性冲突与 `!important`

Vuetify CSS Layers 级联层机制完全指南:告别特异性冲突与 `!important`

Vuetify CSS Layers 级联层机制完全指南:告别特异性冲突与 !important 【免费下载链接】vuetify 🐉 Vue Component Framework 项目地址: https://gitcode.com/gh_mirrors/vu/vuetify 导读 CSS 级联层(Cascade Layers,laye…

2026/9/19 22:58:20 阅读更多 →

最新新闻

PHP在线加密系统源码拆解:ionCube与宝塔部署实战

PHP在线加密系统源码拆解:ionCube与宝塔部署实战

简介:PHP在线加密系统网站源码是一套基于PHP构建的轻量级在线加密Web应用,面向PHP开发者、安全爱好者及需要快速为代码或数据提供加密保护的用户。源码核心涵盖AES、DES、MD5、SHA等常见算法调用,并涉及密钥生成与存储、哈希校验、HTTPS传输安…

2026/9/21 1:23:46 阅读更多 →
MicroPython Thumb2 内联汇编:比较指令(cmp/cmn/tst)与 APSR 条件标志、it/ite 条件执行详解

MicroPython Thumb2 内联汇编:比较指令(cmp/cmn/tst)与 APSR 条件标志、it/ite 条件执行详解

MicroPython Thumb2 内联汇编:比较指令(cmp/cmn/tst)与 APSR 条件标志、it/ite 条件执行详解 【免费下载链接】micropython MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems 项目…

2026/9/21 1:23:46 阅读更多 →
PX4+Gazebo动态目标追踪:视觉控制从仿真到实战

PX4+Gazebo动态目标追踪:视觉控制从仿真到实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 1:23:46 阅读更多 →
CANN ops-nn ForeachBinaryOp 算子深度解析:GE IR 图模式下的 Tensor 列表二元融合运算

CANN ops-nn ForeachBinaryOp 算子深度解析:GE IR 图模式下的 Tensor 列表二元融合运算

人工智能算子库深度学习CANNAscend 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 点击查看 免费下载 导读 本文基于 CANN 神经网络算子库 ops-nn 中 foreach…

2026/9/21 1:23:46 阅读更多 →
MXNet 云端部署实战:在 AWS 上使用 SageMaker、Deep Learning AMI 与 S3 训练深度学习模型

MXNet 云端部署实战:在 AWS 上使用 SageMaker、Deep Learning AMI 与 S3 训练深度学习模型

深度学习机器学习人工智能 【免费下载链接】mxnet Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more 项目地址: https://gitcode.c…

2026/9/21 1:23:46 阅读更多 →
个人开发者如何高效啃下12种工控协议:从分类框架到代码复用

个人开发者如何高效啃下12种工控协议:从分类框架到代码复用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 1:22:46 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →