xworkmate-app/docs/plans/xworkmate-ui-web/04-design-system-spec.md
2026-03-30 15:56:47 +08:00

10 KiB
Raw Blame History

04. 设计系统规范MacOS AI Workspace 基准)

1. 设计目标

这套设计系统以当前 XWorkmate macOS APP UI 为主基准,并吸收 Notion 与 Linear 的两类优点:

  • Notion 的平静、中性、低打扰信息组织
  • Linear 的紧凑、精准、状态清晰、专业工具感

但本系统不直接复制两者而是服务于“MacOS 风格 AI 工作台”:

  • 更强调线程、Agent、连接、结果渲染等工作流对象
  • 更强调长时间停留的低疲劳阅读体验
  • 更强调分栏、底部 dock、快捷面板、系统设置等桌面工作台语义

因此,这套视觉语言应满足三个目标:

  • Calm低噪音、可持续停留
  • Compact适合高密度工作区
  • Tactile按钮、面板、sheet 都要有轻微但明确的可操作反馈

2. 视觉基调

A. 总体风格

建议定义为:

  • calm compact workspace
  • border-first 但不过度描边
  • 系统字体优先
  • 低饱和中性色 + 单一品牌蓝强调
  • 光感和层级主要依靠 tonal layering而不是高对比色块

B. 气质关键词

  • 安静
  • 精准
  • 专业
  • 编辑式
  • 工具化
  • 长时工作友好

C. 使用规则

  • 主色只用于主 CTA、选中态、关键状态不大面积铺底
  • 层级优先靠 spacing、字号、权重、surface tone 建立
  • 大部分卡片使用 ghost border + soft shadow而不是强边框
  • Web 与 macOS 使用同一套语言,只调整密度,不切换视觉流派

3. 颜色体系

Light Theme

A. Background

  • App Background: #F8F9FA
  • Workspace Chrome Background: #F4F7FA
  • Sidebar Background: #F1F4F8
  • Inset Background: #EFF3F7

B. Surface

  • Primary Surface: #FFFFFF
  • Secondary Surface: #F2F5F8
  • Tertiary Surface: #E9EEF4
  • Pressed Surface: #F1F5F9
  • Highlight Surface: #FFFFFF

C. Text

  • Text Primary: #1C1B1F
  • Text Secondary: #667085
  • Text Muted: #98A1B2
  • Text Inverse: #FFFFFF

D. Accent

  • Accent Primary: #0058BD
  • Accent Hover: #1A6CCE
  • Accent Soft: #E8F0FB
  • Accent Strong Fill: #0058BD

E. Semantic

  • Success: #34A853
  • Warning: #8F4A00
  • Danger: #C3655C
  • Idle: #98A1B2
  • Info Banner Tint: #EEF4FB
  • Warning Banner Tint: #FFF3CD
  • Error Banner Tint: #FBEDEC

F. Border

  • Default Border: rgba(166, 180, 200, 0.20)
  • Soft Border: rgba(166, 180, 200, 0.15)
  • Strong Border: rgba(166, 180, 200, 0.32)

Dark Theme

A. Background

  • App Background: #141422
  • Workspace Chrome Background: #161A26
  • Sidebar Background: #1A1D2A
  • Inset Background: #1A1F2C

B. Surface

  • Primary Surface: #171C28
  • Secondary Surface: #1E2433
  • Tertiary Surface: #262D3F
  • Pressed Surface: #23293A
  • Highlight Surface: #2A3145

C. Text

  • Text Primary: #E6E1E5
  • Text Secondary: #B0B8C8
  • Text Muted: #8B95A8
  • Text Inverse: #0F1117

D. Accent

  • Accent Primary: #4B8FE8
  • Accent Hover: #78AFFF
  • Accent Soft: #1C3355
  • Accent Strong Fill: #4B8FE8

E. Semantic

  • Success: #5CB978
  • Warning: #E0AE5A
  • Danger: #EF9A9A
  • Idle: #8B95A8
  • Info Banner Tint: #1B2940
  • Warning Banner Tint: #3A3118
  • Error Banner Tint: #3A2527

F. Border

  • Default Border: rgba(202, 196, 208, 0.22)
  • Soft Border: rgba(202, 196, 208, 0.15)
  • Strong Border: rgba(202, 196, 208, 0.30)

4. Spacing / Radius / Shadow

A. Spacing

建议继续沿用当前家族的紧凑节奏:

  • 4: micro gap
  • 6: compact gap
  • 8: standard gap
  • 12: section inner gap
  • 16: card inner padding / block gap
  • 20: pane padding
  • 24: page section gap
  • 32: large layout gap

使用规则:

  • 控件之间优先 68
  • 卡片内部优先 1216
  • 大模块之间优先 24
  • 页面级横向 padding 建议 2024

B. Radius

基于 MacOS 工作台语义,保持柔和但不臃肿:

  • Card Radius: 16
  • Panel Radius: 18
  • Sidebar Radius: 20
  • Button Radius: 12
  • Icon Button Radius: 12
  • Input Radius: 14
  • Chip Radius: 12
  • Bottom Sheet Radius: 18
  • Badge Radius: 999

Web 紧凑版本可收紧,但不建议低于:

  • card 12
  • input 10
  • button 10

C. Shadow

阴影必须是“柔和、带轻微蓝灰偏色”的工作台阴影,而不是通用黑灰阴影。

Light

  • Ambient Shadow: 0 12 40 -14 rgba(0, 88, 189, 0.08)
  • Lift Shadow: 0 10 24 -12 rgba(0, 88, 189, 0.10)

Dark

  • Ambient Shadow: 0 12 36 -14 rgba(0, 8, 20, 0.30)
  • Lift Shadow: 0 8 22 -12 rgba(0, 88, 189, 0.28)

使用规则:

  • 卡片默认只用 ambient
  • 可点击卡片 hover 时追加 lift
  • sidebar 与 sheet 使用更柔和、更大范围的阴影,不用锐利投影

5. Typography

A. 字体策略

优先使用系统字体:

  • macOS / iOS: SF Pro
  • Web: system-ui, -apple-system, sans-serif
  • Monospace: 系统等宽字体,仅用于 token、ID、日志、endpoint

不引入自定义 UI 字体。

B. 字号体系

Workspace Display

  • 28 / 32 / 700
  • 用于少量登录、欢迎、全屏态标题

Dialog Title

  • 20 / 24 / 600
  • 用于弹窗与设置大卡标题

Section Title

  • 13 / 14 / 600
  • 用于工作区 section、侧栏分组、卡片标题

Body

  • 13 / 15 / 400
  • 默认正文

Emphasized Body

  • 13 / 14 / 600
  • 重要标签、按钮文字、关键值

Caption

  • 12 / 16 / 400
  • 辅助文字、meta、时间、helper text

Caption Strong

  • 12 / 16 / 600
  • 状态标签、breadcrumb、chip 文案

C. 字体使用规则

  • 不在工作区内使用大而营销化的 hero heading
  • 大部分文字应保持在 12 到 13 范围
  • 主要层级靠字重与间距,而不是大字号跳跃
  • 线程标题、卡片标题、section 标题允许 600不建议更重
  • 技术值、endpoint、token key 才使用 monospace

6. 核心组件规范

A. Card

适用摘要卡、设置卡、Focus 卡、任务卡。

规则:

  • 默认使用 primary 或 secondary surface
  • 带 soft border
  • 16 圆角
  • 内边距 16
  • hover 只抬升一点,不做明显放大
  • 选中态优先用 accent soft 背景 + 轻描边,不直接大面积纯蓝铺底

B. Panel

适用线程栏、Focus pane、设置大面板、详情面板。

规则:

  • 比 card 更强调容器感
  • panel 内允许嵌套 card但 panel 自身应更克制
  • 通常使用 chrome background 或 secondary surface
  • 应具备清晰的 header / content / footer 区域
  • 在桌面大屏中应优先承担结构层级,而非视觉重点

C. Sidebar

适用主导航、Focus 左侧面板、线程导航区域。

规则:

  • 使用 sidebar background
  • 分组信息采用 caption strong
  • 导航项高度建议 32 到 36
  • 选中项使用 accent soft + subtle border
  • 收藏/星标属于辅助交互,不要抢主导航焦点
  • collapse 后仍要保留清晰的 icon-only 语义

D. Button

Primary Button

  • 用于主行动作,如发送、应用、创建
  • 使用 accent fill
  • 白字
  • hover 稍微变亮
  • active 稍微压暗并减小阴影

Secondary Button

  • 用于次级动作,如保存、测试、打开详情
  • 使用 secondary surface 或 ghost border
  • 文字保持 primary text

Tertiary / Ghost Button

  • 用于工具栏、icon action、内嵌操作
  • 背景默认透明
  • hover 出现 secondary surface

尺寸建议

  • Desktop utility button height: 30
  • Toolbar / input-affiliated button: 3032
  • 大型单独 CTA 不建议超过 36

E. Input

适用搜索、配置输入、endpoint 输入、composer 之外的表单输入。

规则:

  • 高度默认 40
  • 圆角 14
  • 背景用 primary surface
  • 边框默认 soft border
  • focus 使用 accent border + very soft glow
  • placeholder 使用 muted text
  • helper / error text 使用 caption

Search Input

  • 左侧 icon 固定
  • hover 只提升表面亮度,不改变布局
  • 不做过重投影

Composer Input

  • 作为特殊输入容器,不完全套用普通 input
  • 更像 bottom dock panel
  • 应支持更大高度、附件、模式切换、发送动作

7. 交互状态规范

A. Hover

目标:给出触感,而不是制造噪音。

规则:

  • surface 稍微提亮或切到 pressed surface
  • 阴影轻微增强
  • icon 与文字颜色不剧烈变化
  • 不使用明显 scale 动画

B. Active / Pressed

规则:

  • 背景比 hover 更实一点
  • 阴影减弱,模拟按下
  • 主按钮允许稍微压暗
  • 卡片点击态优先表现为“压下”,而不是“发光”

C. Selected

规则:

  • 优先使用 accent soft background
  • 边框轻微增强
  • 文字使用 emphasized body 或 accent text
  • 不建议用纯色大面积填充,除非是 primary CTA

D. Disabled

规则:

  • 背景不应完全消失,应保留轮廓
  • 文字降到 muted
  • border 保持 soft
  • 对可用区域和不可用区域保持几何一致,避免跳版

E. Focus

规则:

  • 键盘 focus 必须有清晰 focus ring
  • focus ring 使用 accent并保持较低扩散半径
  • sidebar item、button、input、chip 都要支持 focus state

8. 组件状态矩阵建议

以下组件必须具备完整状态:

  • button: default / hover / active / disabled / focus
  • input: default / hover / focus / error / disabled
  • card: default / hover / selected / disabled
  • sidebar item: default / hover / selected / focus
  • chip: default / hover / selected / disabled
  • panel: default / pinned / collapsed / active

9. 与当前产品的对应关系

这套设计系统应直接映射到当前 XWorkmate 家族 token

  • 颜色基于现有 AppPalette.light / AppPalette.dark
  • spacing / radius / typography 基于现有 SimpleSpacingSimpleRadiusSimpleTypography
  • Web 版本采用同一家族语言,但在高密度区域可轻微收紧几何

因此,后续实现建议遵循:

  • 不重新发明一套 Web token
  • 先让 Web 继承 macOS 家族 token再在 shell、sidebar、input、tabs、sheet 上做 Web 密度微调
  • 任何 Notion / Linear 风格借鉴,都应服务于现有产品家族,而不是覆盖现有品牌语言

10. 一句话结论

这套设计系统的最终目标,不是把 XWorkmate 做成“像某个 SaaS 后台”,而是把它做成:

  • 具有 MacOS 原生工作台气质
  • 适合长时间停留
  • 适合高密度 AI 任务调度
  • 视觉克制但交互明确
  • Web 与 macOS 同源而不割裂