Skip to content

Latest commit

 

History

History
413 lines (346 loc) · 25.3 KB

File metadata and controls

413 lines (346 loc) · 25.3 KB

UI 设计规范

1. 设计理念

1.1 设计原则

原则 说明
专业 面向数据开发专业用户,界面简洁高效
清晰 信息层次分明,操作路径清晰
一致 视觉风格、交互模式保持统一
高效 减少操作步骤,提升工作效率

1.2 设计风格

采用深色主题作为默认主题,原因:

  • 数据平台用户长时间使用,深色减少眼睛疲劳
  • 深色背景下代码、数据可视化更加突出
  • 符合行业惯例(如 Airflow、Grafana 等)

2. 色彩系统

2.1 主色调

主色 (Primary)
┌──────────────────────────────────────────────────┐
│  #1668DC   品牌蓝,用于主要按钮、链接、选中状态    │
└──────────────────────────────────────────────────┘

功能色 (Functional)
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ #52C41A  │ │ #FAAD14  │ │ #FF4D4F  │ │ #1890FF  │
│  成功    │ │   警告   │ │   错误   │ │   信息   │
└──────────┘ └──────────┘ └──────────┘ └──────────┘

2.2 中性色

深色主题背景色
┌────────────────────────────────────────────────────────────────┐
│ #000000  布局背景     │ 页面最外层背景                         │
├────────────────────────────────────────────────────────────────┤
│ #141414  容器背景     │ 卡片、侧边栏、头部背景                   │
├────────────────────────────────────────────────────────────────┤
│ #1F1F1F  浮层背景     │ 弹窗、下拉菜单、Tooltip 背景            │
├────────────────────────────────────────────────────────────────┤
│ #262626  悬停背景     │ 列表项、表格行悬停状态                   │
├────────────────────────────────────────────────────────────────┤
│ #303030  边框颜色     │ 分割线、边框                            │
└────────────────────────────────────────────────────────────────┘

文字颜色
┌────────────────────────────────────────────────────────────────┐
│ rgba(255,255,255,0.85)  │ 主要文字                            │
├────────────────────────────────────────────────────────────────┤
│ rgba(255,255,255,0.65)  │ 次要文字                            │
├────────────────────────────────────────────────────────────────┤
│ rgba(255,255,255,0.45)  │ 辅助文字、placeholder               │
├────────────────────────────────────────────────────────────────┤
│ rgba(255,255,255,0.25)  │ 禁用文字                            │
└────────────────────────────────────────────────────────────────┘

2.3 状态颜色

任务状态
┌──────────┬────────────┬────────────────────────────────┐
│  状态    │   颜色     │   使用场景                      │
├──────────┼────────────┼────────────────────────────────┤
│ 等待中   │  #D9D9D9   │  任务等待调度                   │
│ 运行中   │  #1890FF   │  任务正在执行                   │
│ 成功     │  #52C41A   │  任务执行成功                   │
│ 失败     │  #FF4D4F   │  任务执行失败                   │
│ 超时     │  #FAAD14   │  任务执行超时                   │
│ 已终止   │  #8C8C8C   │  任务被手动终止                 │
└──────────┴────────────┴────────────────────────────────┘

3. 字体规范

3.1 字体家族

/* 中文字体 */
font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC',
             'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;

/* 代码字体 */
font-family: 'JetBrains Mono', 'Fira Code', 'SF Mono',
             'Monaco', 'Consolas', monospace;

3.2 字号规范

级别 字号 行高 用途
H1 24px 32px 页面标题
H2 20px 28px 区块标题
H3 16px 24px 卡片标题
Body 14px 22px 正文内容
Caption 12px 20px 辅助说明
Code 13px 20px 代码内容

4. 间距系统

4.1 基础间距

间距单位:4px

┌──────────────────────────────────────────┐
│  xs:  4px   │  极小间距                  │
│  sm:  8px   │  小间距                    │
│  md:  16px  │  中等间距(默认)           │
│  lg:  24px  │  大间距                    │
│  xl:  32px  │  超大间距                  │
│  xxl: 48px  │  特大间距                  │
└──────────────────────────────────────────┘

4.2 页面间距

┌─────────────────────────────────────────────────────────────────┐
│                         Header (56px)                           │
├────────────┬────────────────────────────────────────────────────┤
│            │            ┌──────────────────────────────────┐   │
│            │   24px     │                                  │   │
│            │  ┌─────────┤        Content Area              │   │
│  Sidebar   │  │         │                                  │   │
│  (200px)   │  │  24px   │  Card Padding: 24px              │   │
│            │  │         │  Card Gap: 16px                  │   │
│            │  └─────────┤                                  │   │
│            │            │                                  │   │
│            │            └──────────────────────────────────┘   │
└────────────┴────────────────────────────────────────────────────┘

5. 组件规范

5.1 按钮

尺寸规范
┌─────────────────────────────────────────────────────────────────┐
│  Large:   高度 40px,内边距 16px 24px,字号 16px                │
│  Middle:  高度 32px,内边距 8px 16px,字号 14px  (默认)         │
│  Small:   高度 24px,内边距 4px 8px,字号 12px                  │
└─────────────────────────────────────────────────────────────────┘

类型规范
┌─────────────┬──────────────────────────────────────────────────┐
│  Primary    │  主要操作,如"保存"、"提交"、"创建"               │
│  Default    │  次要操作,如"取消"、"返回"                       │
│  Dashed     │  添加操作,如"添加节点"、"新增规则"               │
│  Text       │  链接式操作,如"编辑"、"删除"                     │
│  Link       │  纯链接,如"查看详情"                            │
└─────────────┴──────────────────────────────────────────────────┘

5.2 表单

表单布局
┌─────────────────────────────────────────────────────────────────┐
│  标签宽度:  80px ~ 120px(根据最长标签确定)                    │
│  输入框高度:32px                                               │
│  字段间距:  24px                                               │
│  必填标记:  * 红色,位于标签后                                  │
└─────────────────────────────────────────────────────────────────┘

示例:
┌───────────────────────────────────────────────────────────┐
│  任务名称 *  ┌────────────────────────────────────────┐  │
│              │  请输入任务名称                         │  │
│              └────────────────────────────────────────┘  │
│                                                          │
│  调度周期    ┌────────────────────────────────────────┐  │
│              │  每天                                ▼ │  │
│              └────────────────────────────────────────┘  │
│                                                          │
│  负责人      ┌────────────────────────────────────────┐  │
│              │  请选择负责人                        ▼ │  │
│              └────────────────────────────────────────┘  │
└───────────────────────────────────────────────────────────┘

5.3 表格

表格规范
┌─────────────────────────────────────────────────────────────────┐
│  行高:      54px (带操作列) / 46px (纯数据)                    │
│  单元格边距:16px                                               │
│  表头背景:  #1F1F1F                                            │
│  斑马纹:    奇数行 #141414,偶数行 #1A1A1A                      │
│  悬停背景:  #262626                                            │
└─────────────────────────────────────────────────────────────────┘

示例:
┌──────────────┬────────────┬────────────┬────────────┬──────────┐
│  任务名称    │   状态     │  调度时间   │   负责人   │   操作   │
├──────────────┼────────────┼────────────┼────────────┼──────────┤
│  etl_daily   │ ● 运行中   │ 10:00:00   │   张三     │ 编辑 删除 │
├──────────────┼────────────┼────────────┼────────────┼──────────┤
│  sync_order  │ ● 成功     │ 09:30:00   │   李四     │ 编辑 删除 │
└──────────────┴────────────┴────────────┴────────────┴──────────┘

5.4 卡片

卡片规范
┌─────────────────────────────────────────────────────────────────┐
│  边框圆角:  8px                                                │
│  内边距:    24px                                               │
│  阴影:      0 2px 8px rgba(0, 0, 0, 0.15)                      │
│  标题字号:  16px                                               │
│  标题下边距:16px                                               │
└─────────────────────────────────────────────────────────────────┘

示例:
┌─────────────────────────────────────────────────────────────────┐
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  卡片标题                                    更多 >      │   │
│  ├─────────────────────────────────────────────────────────┤   │
│  │                                                         │   │
│  │                    卡片内容区域                          │   │
│  │                                                         │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

6. 图标规范

6.1 图标尺寸

尺寸 用途
12px 辅助小图标
14px 按钮内图标、表格操作图标
16px 菜单图标、状态图标
24px 功能入口图标
32px 空状态图标
48px+ 大型装饰图标

6.2 图标风格

  • 使用 Ant Design Icons 作为基础图标库
  • 线条粗细统一为 2px
  • 风格统一为线性(Outlined)

7. 布局规范

7.1 整体布局

┌─────────────────────────────────────────────────────────────────┐
│                         顶部导航 (56px)                          │
│  ┌───────────┬────────────────────────────────────────────────┐ │
│  │   Logo    │  面包屑 / 搜索               用户信息 │ 设置   │ │
│  └───────────┴────────────────────────────────────────────────┘ │
├────────────┬────────────────────────────────────────────────────┤
│            │                                                    │
│            │  ┌──────────────────────────────────────────────┐ │
│  侧边导航   │  │                                              │ │
│  (200px)   │  │              内容区域                         │ │
│            │  │              (自适应)                         │ │
│  - 菜单1   │  │                                              │ │
│  - 菜单2   │  │                                              │ │
│  - 菜单3   │  └──────────────────────────────────────────────┘ │
│            │                                                    │
└────────────┴────────────────────────────────────────────────────┘

7.2 响应式断点

断点 宽度 布局调整
xs < 576px 侧边栏收起,单列布局
sm >= 576px 侧边栏可展开
md >= 768px 两列布局
lg >= 992px 三列布局
xl >= 1200px 完整布局
xxl >= 1600px 最大宽度 1400px

8. 交互规范

8.1 反馈规范

场景 方式 说明
操作成功 Message 成功提示 3秒自动消失
操作失败 Message 错误提示 5秒自动消失
确认操作 Modal 确认框 需用户明确确认
异步加载 Spin 加载中 显示加载状态
表单校验 字段红色高亮 实时反馈

8.2 动效规范

类型 时长 缓动函数
淡入淡出 200ms ease-in-out
展开收起 300ms ease-out
滑动切换 300ms ease-in-out
悬停效果 150ms ease

9. 特殊场景

9.1 SQL 编辑器

┌─────────────────────────────────────────────────────────────────┐
│  文件名.sql                                     运行 │ 保存     │
├─────────────────────────────────────────────────────────────────┤
│  1 │  SELECT                                                    │
│  2 │      user_id,                                              │
│  3 │      user_name,                                            │
│  4 │      SUM(amount) as total                                  │
│  5 │  FROM orders                                               │
│  6 │  WHERE create_time >= '2024-01-01'                         │
│  7 │  GROUP BY user_id, user_name                               │
│  8 │                                                            │
├─────────────────────────────────────────────────────────────────┤
│  结果 │ 消息 │ 执行计划                          导出 │ 复制    │
├─────────────────────────────────────────────────────────────────┤
│  user_id │ user_name │ total                                    │
│  1001    │ 张三      │ 5280.00                                  │
│  1002    │ 李四      │ 3150.00                                  │
└─────────────────────────────────────────────────────────────────┘

配色方案 (Monaco Editor Dark+):
- 关键字: #569CD6 (蓝色)
- 字符串: #CE9178 (橙色)
- 数字:   #B5CEA8 (绿色)
- 注释:   #6A9955 (深绿)
- 函数:   #DCDCAA (黄色)

9.2 DAG 编辑器

节点样式
┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│     ┌──────────────────┐                                       │
│     │  ◇ SQL           │  节点宽度: 180px                      │
│     │  数据清洗任务     │  节点高度: 60px                       │
│     │  ● 运行中        │  圆角: 4px                            │
│     └──────────────────┘  边框: 2px                            │
│                                                                 │
│  类型图标颜色:                                                  │
│  - SQL:    #1890FF                                             │
│  - Shell:  #52C41A                                             │
│  - Spark:  #FA8C16                                             │
│  - Flink:  #722ED1                                             │
│  - Python: #13C2C2                                             │
│                                                                 │
│  连接线: 2px, #91D5FF, 带箭头                                   │
│  选中态: 边框 #1668DC, 阴影                                     │
└─────────────────────────────────────────────────────────────────┘

9.3 监控大盘

统计卡片
┌─────────────────────────────────────────────────────────────────┐
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │     1,234    │  │    98.5%     │  │      156     │          │
│  │  今日任务数   │  │    成功率    │  │   运行中任务  │          │
│  │  ↑ 12%       │  │  ↓ 0.5%      │  │  ↑ 23        │          │
│  └──────────────┘  └──────────────┘  └──────────────┘          │
│                                                                 │
│  数值字号: 32px                                                 │
│  标签字号: 14px                                                 │
│  趋势字号: 12px (绿色上升/红色下降)                              │
└─────────────────────────────────────────────────────────────────┘

10. 暗色/亮色主题

10.1 主题切换

// 主题配置
const themes = {
  dark: {
    colorBgContainer: '#141414',
    colorBgElevated: '#1f1f1f',
    colorBgLayout: '#000000',
    colorText: 'rgba(255, 255, 255, 0.85)',
    colorBorder: '#303030',
  },
  light: {
    colorBgContainer: '#ffffff',
    colorBgElevated: '#ffffff',
    colorBgLayout: '#f5f5f5',
    colorText: 'rgba(0, 0, 0, 0.85)',
    colorBorder: '#d9d9d9',
  },
};

10.2 主题适配注意事项

  • 图片、图标需准备深浅两套
  • 图表颜色需根据主题调整
  • 阴影深度需根据主题调整
  • 代码编辑器主题需同步切换