Files
Migu2.0/frontends/apps/simple-platform-vue/design-system/MASTER.md
T
zhaowei.huangandCursor 42978930ca feat: 迁入 MiGu.Server、平台前端与车辆列表 reflection 回退
从 Simple-FR 拆出 Platform.Server 并重命名为 MiGu.Server;frontends 源码与构建脚本迁入本仓库。地图监控在 projection/cars 失败或为空时回退 reflection 车辆列表;Simple 仓库已移除旧 Platform.Server。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 18:16:34 +08:00

7.7 KiB
Raw Blame History

迷毂智能调度平台 · 设计系统 (MASTER)

由 ui-ux-pro-max skill 推导生成 (v1)。本文档是项目的单一设计真理。 页面级覆盖请放在 design-system/pages/<page-name>.md,覆盖优先级高于本 MASTER。


1. 产品定位 (Product Identity)

维度 取值
产品类型 B2B 工业 SaaS · AGV 智能调度平台 · 实时监控仪表板
行业 智能制造 / 物流自动化 / 仓储机器人
匹配 reasoning rule Autonomous Drone Fleet (id=97) 主匹配 / Logistics-Delivery (id=25) + Smart Home/IoT Dashboard (id=54) + SaaS Dashboard (id=19) 辅助
目标用户 现场调度员、运维工程师、车队管理员、平台管理员
使用环境 桌面端为主 (1920×1080 / 2560×1440)、长时间在线、信息密集

2. 设计模式与风格 (Pattern & Style)

维度 主选 辅助
Landing/页面模式 Real-Time + Feature-Rich Bento Grid (主体布局)
核心 UI 风格 Real-Time Monitoring + Data-Dense Dashboard Glassmorphism (卡片层级) + Dimensional Layering (z-轴层级)
可选风格元素 HUD/Sci-Fi FUI 微元素 (装饰用,不主导)

Real-Time Monitoring 必备特征

  • 实时状态指示器(脉动 dot / pulsing badge
  • 流式图表(数值平滑过渡而非跳变)
  • 告警通知层级(critical → warning → info
  • 连接状态/自动刷新指示
  • 数值用 font-variant-numeric: tabular-nums 防抖动

Data-Dense Dashboard 必备特征

  • 多 widget 并排(KPI 行 + 主图 + 列表)
  • 紧凑 padding(卡片 12-18px、KPI 项 10-12px
  • 高效栅格布局(CSS Grid
  • 表头常驻 hover tooltip
  • 列表行 hover 高亮 + 平滑过渡

3. 颜色系统 (Color System)

3.1 状态色(项目级强约束 · 跨主题保持语义)

关键原则:状态色与品牌色解耦。不要把品牌紫色当 "执行中"、把品牌橙色当 "警告"。

Token 浅色主题 (light) 深色主题 (dark) 语义
--mg-status-success #16A34A #22C55E 正常 / 成功 / 已完成
--mg-status-warning #D97706 #F59E0B 异常 / 警告 / 等待人工
--mg-status-danger #DC2626 #EF4444 严重故障 / critical / 阻断
--mg-status-info #2563EB #3B82F6 信息 / 进行中 / 通信
--mg-status-idle #64748B #94A3B8 待执行 / 已暂停 / 静默

3.2 数据可视化色板 (ECharts / Progress / Chart)

按"冷色→暖色"递进,避免单一色相被多 series 共用:

'#3B82F6'   蓝   优先级 1
'#22C55E'   绿   优先级 2
'#A855F7'   紫   优先级 3 (品牌色复用)
'#F59E0B'   琥珀  优先级 4
'#EF4444'   红   优先级 5 (告警语义保留时慎用)
'#06B6D4'   青   优先级 6
'#EC4899'   粉   优先级 7
'#84CC16'   黄绿  优先级 8

3.3 品牌主色(保留现有 7 套主题)

当前默认 fame-lavender(浅紫白主区 + 深紫侧栏)保持不变,所有变量在 themes.ts 中维护。 新增的状态色变量在每个主题预设里要补齐。

3.4 文字与对比度

Context 浅色主题 深色主题
text-light (主文字) #0F172A (slate-900) #FFFFFF
text-muted (次要) #475569 (slate-600 ≥ 4.5:1) rgba(255,255,255,0.72)
text-dim (装饰) #94A3B8 rgba(255,255,255,0.50)
text-faint (占位) #CBD5E1 rgba(255,255,255,0.35)

⚠ 不要用 slate-400 (#94A3B8) 做正文 (light mode) ——对比度不够。


4. 字体 (Typography)

选自 Minimal Swiss (Inter) + Developer Mono (JetBrains Mono) 组合,Dashboard Data 类目最佳实践。

用途 字体栈 备注
UI 主字体 'PingFang SC', 'Microsoft YaHei', Inter, -apple-system, 'Segoe UI', sans-serif 中文优先,英文 fallback Inter
数据数字 (KPI/坐标/ID) 'JetBrains Mono', 'Cascadia Mono', Menlo, Consolas, monospace 等宽,font-variant-numeric: tabular-nums
代码/JSON 同数据数字

字号分级

Token 用途 字号
text-xs 标签/时间戳 11-12px
text-sm 次要说明 12.5-13px
text-base 正文/列表 14px
text-md 卡片标题 15-16px
text-lg 模块标题 18-20px
text-xl 页面标题 24-28px
text-2xl KPI 数值 28-32px
text-hero Hero 标题 36-44px

5. 间距与圆角 (Spacing & Radius)

5.1 间距尺度 (8pt 网格)

4 / 8 / 12 / 16 / 18 / 24 / 32 / 48 / 64

5.2 圆角

Token 用途
--mg-radius-sm 8px 小标签、按钮、tag
--mg-radius 14px 卡片、面板
--mg-radius-lg 20px Hero 区、对话框
--mg-radius-xl 24px 全屏覆盖、巨型卡片

5.3 卡片层级 (Dimensional Layering)

z-0  背景 / orb / 网格
z-1  body 主区
z-2  普通卡片        shadow: 0 4px 14px rgba(_, .06)  light / 0 12px 30px rgba(0,0,0,.5) dark
z-3  浮起卡片 (hover) shadow: 0 8px 24px rgba(_, .10) light / 0 18px 40px rgba(0,0,0,.6) dark
z-4  Header / 侧栏  shadow: 0 1px 6px rgba(_, .05)
z-5  Dropdown / Toast
z-6  Modal / Dialog

6. 动画 (Motion)

场景 时长 缓动
颜色/边框变化 200ms ease-out
卡片 hover (transform) 250ms cubic-bezier(.25, .8, .25, 1)
路由切换 250ms 同上
状态脉动 (live dot) 1.5-2s ease-in-out infinite
Real-time 数值平滑 600-800ms 同卡片 hover

⚠ 严禁 hover 用 transform: scale() 引起 layout shift;用 translateY(-2px) + box-shadow 增强即可。 ⚠ 必须遵守 prefers-reduced-motion: reduce —— 关闭装饰性动画。


7. 反模式清单 (Anti-Patterns)

来自 ui-reasoning.csv (Autonomous Drone Fleet + SaaS Dashboard) + Common Rules

禁忌 原因
把品牌紫当作 "执行中" 状态色 状态色与品牌色冲突,扫读时干扰
KPI 数值用变宽字体 实时跳动时数字晃动,影响阅读
浅色主题用 slate-400 做正文 对比度 < 4.5:1,违反 WCAG AA
侧栏 active 用 4+ 重 box-shadow + text-shadow 视觉噪音,装饰过度
硬编码 #1a0b3d 等颜色 跨主题切换失效
用 emoji 做 UI icon (🚀⚙️🎨) 不统一,在不同 OS 渲染差异大 — 用 Heroicons / Element Plus icons
实时图表用 hard refresh (闪一下) 视觉干扰 — 用 series.universalTransitiondataset 平滑过渡

8. 实施清单 (Pre-Delivery Checklist)

每次发版前对照检查:

  • 所有状态色用 --mg-status-* token,不直接 hardcode #22c55e
  • 所有 KPI / 坐标 / ID 数字用 font-family: var(--mg-font-mono) + font-variant-numeric: tabular-nums
  • 卡片/表单 hover 不引起 layout shift
  • 浅色主题文字对比度 ≥ 4.5:1 (WCAG AA)
  • 浮动元素 (header / aside) 在两套主题下都可见
  • 响应式断点:375 / 768 / 1024 / 1440 / 1920 都过一遍
  • 主题切换时无硬编码色 (grep #[0-9a-f]{3,6} in DashboardView/AppShell)

9. 引用与扩展

  • 设计系统生成依据.cursor/skills/ui-ux-pro-max/data/ui-reasoning.csv (rows 19, 25, 54, 97), colors.csv (rows 26, 51, 53), styles.csv (rows 28, 31, 39, 46), typography.csv (rows 5, 9, 42)
  • 页面级覆盖design-system/pages/<page-name>.md
  • 变量来源src/styles/theme.css (CSS 变量声明) + src/styles/themes.ts (TS 主题预设)
  • Element Plus 适配theme.css.mg-content .el-* 选择器统一管理

Generated: ui-ux-pro-max v2.0 推理 + 项目实际代码 cross-check
Last sync: 2026-05-24