826 lines
20 KiB
Markdown
826 lines
20 KiB
Markdown
# 液态玻璃后台 UI 设计规范
|
||
|
||
适用产品:运维管理平台、微服务管理平台、发布/重启/回滚控制台、数据库资源管理后台。
|
||
|
||
设计目标:在保持截图中的“液态玻璃”视觉质感的同时,保证后台系统需要的信息密度、可读性、风险控制和操作效率。
|
||
|
||
## 1. 设计定位
|
||
|
||
整体风格定义为:浅色冰蓝液态玻璃后台。
|
||
|
||
它不是营销页、不是展示型大屏,而是一个高频操作的运维控制台。界面第一优先级是让用户快速回答以下问题:
|
||
|
||
- 当前项目和环境是否健康
|
||
- 哪些服务异常
|
||
- 最近谁发布了什么
|
||
- 是否可以安全执行发布、重启、回滚
|
||
- MySQL、MongoDB、Redis、MQ 等公共资源是否正常
|
||
|
||
## 2. 核心设计原则
|
||
|
||
### 2.1 信息优先
|
||
|
||
- 首页核心区域优先展示微服务列表,而不是装饰性卡片。
|
||
- 服务状态、版本、实例数、CPU/内存、最近发布、负责人、操作入口必须在同一行内可扫描。
|
||
- 高风险动作必须可见但不应过于顺手,生产环境操作必须经过二次确认。
|
||
|
||
### 2.2 玻璃感服务于层级
|
||
|
||
- 玻璃效果主要用于页面壳、侧边栏、顶部筛选区、统计区、表格容器、详情面板和发布抽屉。
|
||
- 不要把每一小块内容都做成强玻璃卡片,避免界面碎片化。
|
||
- 同一页面最多使用 3 个玻璃层级:页面容器、内容容器、浮层/抽屉。
|
||
|
||
### 2.3 克制的视觉强度
|
||
|
||
- 主色使用冰蓝和白色透明层。
|
||
- 状态色只用于语义:健康、警告、严重、未知、执行中。
|
||
- 图表可以使用蓝、绿、红、紫、橙作为指标区分,避免整个平台只有一种蓝色。
|
||
|
||
### 2.4 风险可控
|
||
|
||
- 发布、重启、回滚、数据库恢复、权限变更必须有影响范围说明。
|
||
- 生产环境必须显示环境提醒和审计提示。
|
||
- 所有关键操作都要在事件流和审计日志中可追踪。
|
||
|
||
## 3. 页面布局规范
|
||
|
||
### 3.1 全局框架
|
||
|
||
推荐结构:
|
||
|
||
- 左侧导航:项目运维台主导航
|
||
- 顶部工具栏:项目、环境、集群、告警、用户角色
|
||
- 主内容区:当前页面的核心任务
|
||
- 右侧抽屉:发布、重启、配置变更等流程型操作
|
||
|
||
桌面端基础尺寸:
|
||
|
||
| 区域 | 尺寸 |
|
||
| --- | --- |
|
||
| 页面最小宽度 | 1280px |
|
||
| 左侧导航宽度 | 216px |
|
||
| 收起导航宽度 | 72px |
|
||
| 顶部栏高度 | 64px |
|
||
| 内容区外边距 | 20px |
|
||
| 页面模块间距 | 16px / 20px |
|
||
| 右侧抽屉宽度 | 420px - 460px |
|
||
|
||
### 3.2 首页布局
|
||
|
||
首页名称建议:项目运维台。
|
||
|
||
从上到下:
|
||
|
||
1. 顶部筛选栏:项目、环境、集群、当前告警、当前用户、角色。
|
||
2. 状态总览:运行中服务数、异常服务数、最近发布、活跃告警、数据库状态。
|
||
3. 微服务列表:服务、状态、版本、实例数、CPU/内存、最近发布、负责人、操作。
|
||
4. 下方可选区域:最近事件、资源状态、告警摘要。
|
||
|
||
首页不使用大 Hero,不放宣传说明,不做低密度卡片瀑布。
|
||
|
||
### 3.3 服务详情页布局
|
||
|
||
服务详情页建议结构:
|
||
|
||
- 顶部:返回、面包屑、服务名称、状态、命名空间、负责人、创建时间。
|
||
- 标签页:概览、实例、发布、日志、监控、配置、事件。
|
||
- 概览页:基础状态、依赖服务、监控概览、最近事件、实例列表。
|
||
- 右侧抽屉:发布、重启、回滚等操作流程。
|
||
|
||
## 4. 设计 Token
|
||
|
||
### 4.1 颜色
|
||
|
||
基础色:
|
||
|
||
| Token | 色值 | 用途 |
|
||
| --- | --- | --- |
|
||
| `--color-bg-page` | `#edf6ff` | 页面底色 |
|
||
| `--color-bg-page-soft` | `#f7fbff` | 页面浅色过渡 |
|
||
| `--color-glass` | `rgba(247, 251, 255, 0.58)` | 默认玻璃面 |
|
||
| `--color-glass-strong` | `rgba(255, 255, 255, 0.72)` | 强玻璃面 |
|
||
| `--color-glass-muted` | `rgba(232, 244, 255, 0.42)` | 弱玻璃面 |
|
||
| `--color-glass-active` | `rgba(219, 236, 255, 0.76)` | 导航/标签激活背景 |
|
||
| `--color-border-light` | `rgba(255, 255, 255, 0.82)` | 高光边 |
|
||
| `--color-border-soft` | `rgba(114, 151, 188, 0.22)` | 分割线 |
|
||
|
||
文字色:
|
||
|
||
| Token | 色值 | 用途 |
|
||
| --- | --- | --- |
|
||
| `--color-text-primary` | `#1d2b3a` | 标题、关键数字 |
|
||
| `--color-text-secondary` | `#52677f` | 正文、表格内容 |
|
||
| `--color-text-tertiary` | `#7b8da3` | 辅助信息 |
|
||
| `--color-text-disabled` | `#a8b7c8` | 禁用文本 |
|
||
| `--color-text-inverse` | `#ffffff` | 深色按钮文字 |
|
||
|
||
品牌与操作色:
|
||
|
||
| Token | 色值 | 用途 |
|
||
| --- | --- | --- |
|
||
| `--color-brand` | `#2f7df6` | 主按钮、激活态 |
|
||
| `--color-brand-hover` | `#1f6ee8` | 主按钮 hover |
|
||
| `--color-brand-soft` | `#e6f1ff` | 品牌浅背景 |
|
||
| `--color-brand-ring` | `rgba(47, 125, 246, 0.28)` | 聚焦环 |
|
||
|
||
语义色:
|
||
|
||
| 状态 | 主色 | 背景 | 用途 |
|
||
| --- | --- | --- | --- |
|
||
| Healthy | `#18a957` | `rgba(24, 169, 87, 0.12)` | 健康、通过 |
|
||
| Warning | `#f5a524` | `rgba(245, 165, 36, 0.14)` | 警告、需关注 |
|
||
| Critical | `#e5484d` | `rgba(229, 72, 77, 0.14)` | 严重、失败 |
|
||
| Running | `#2f7df6` | `rgba(47, 125, 246, 0.14)` | 执行中、发布中 |
|
||
| Unknown | `#8b98a9` | `rgba(139, 152, 169, 0.14)` | 未知、未连接 |
|
||
|
||
图表色:
|
||
|
||
| 指标 | 色值 |
|
||
| --- | --- |
|
||
| CPU / QPS | `#4f83ff` |
|
||
| 内存 | `#37b66a` |
|
||
| 错误率 | `#ff5a57` |
|
||
| 平均延迟 | `#9b72f2` |
|
||
| P95 延迟 | `#ff9f43` |
|
||
|
||
### 4.2 背景
|
||
|
||
页面背景使用柔和的大面积渐变,不使用离散装饰圆球、漂浮光斑或强装饰图形。
|
||
|
||
推荐 CSS:
|
||
|
||
```css
|
||
:root {
|
||
--page-bg:
|
||
linear-gradient(135deg, rgba(255, 255, 255, 0.76), rgba(221, 239, 255, 0.72)),
|
||
radial-gradient(1200px 720px at 12% 8%, rgba(255, 255, 255, 0.82), transparent 62%),
|
||
radial-gradient(1000px 680px at 88% 0%, rgba(255, 232, 224, 0.36), transparent 58%),
|
||
linear-gradient(180deg, #f7fbff 0%, #eaf5ff 100%);
|
||
}
|
||
```
|
||
|
||
背景可以有轻微的折射感,但必须保证表格、表单、抽屉背后的区域足够干净。
|
||
|
||
### 4.3 玻璃材质
|
||
|
||
默认玻璃面:
|
||
|
||
```css
|
||
.glass-surface {
|
||
background:
|
||
linear-gradient(135deg, rgba(255, 255, 255, 0.68), rgba(232, 244, 255, 0.46));
|
||
border: 1px solid rgba(255, 255, 255, 0.82);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.88),
|
||
inset 0 -1px 0 rgba(122, 158, 192, 0.12),
|
||
0 18px 48px rgba(55, 101, 145, 0.16);
|
||
backdrop-filter: blur(24px) saturate(145%);
|
||
-webkit-backdrop-filter: blur(24px) saturate(145%);
|
||
}
|
||
```
|
||
|
||
强玻璃面用于右侧抽屉、弹窗、顶部关键容器:
|
||
|
||
```css
|
||
.glass-surface-strong {
|
||
background:
|
||
linear-gradient(135deg, rgba(255, 255, 255, 0.78), rgba(236, 246, 255, 0.58));
|
||
border: 1px solid rgba(255, 255, 255, 0.9);
|
||
box-shadow:
|
||
inset 0 1px 0 rgba(255, 255, 255, 0.95),
|
||
0 24px 64px rgba(48, 92, 132, 0.2);
|
||
backdrop-filter: blur(30px) saturate(150%);
|
||
-webkit-backdrop-filter: blur(30px) saturate(150%);
|
||
}
|
||
```
|
||
|
||
弱玻璃面用于表格行、输入框、标签、依赖服务 Chip:
|
||
|
||
```css
|
||
.glass-subtle {
|
||
background: rgba(255, 255, 255, 0.48);
|
||
border: 1px solid rgba(255, 255, 255, 0.66);
|
||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
|
||
}
|
||
```
|
||
|
||
降级要求:
|
||
|
||
- 不支持 `backdrop-filter` 时,玻璃背景透明度提高到 `0.88`。
|
||
- 表格、表单和抽屉必须保持可读,不允许依赖模糊效果本身提供对比度。
|
||
|
||
### 4.4 圆角
|
||
|
||
| 类型 | 圆角 |
|
||
| --- | --- |
|
||
| 页面主壳、侧边栏、右侧抽屉 | 20px |
|
||
| 一级内容容器 | 16px |
|
||
| 表格容器、图表容器 | 12px |
|
||
| 数据卡片、菜单、输入框 | 8px |
|
||
| 状态 Badge、Chip | 6px |
|
||
| 图标按钮 | 8px |
|
||
|
||
原则:只有框架级玻璃容器可以使用较大圆角;高密度数据卡片和表格单元保持 8px 左右,避免后台界面过度柔化。
|
||
|
||
### 4.5 阴影
|
||
|
||
| Token | 值 | 用途 |
|
||
| --- | --- | --- |
|
||
| `--shadow-glass-sm` | `0 8px 24px rgba(55, 101, 145, 0.12)` | 小控件 |
|
||
| `--shadow-glass-md` | `0 18px 48px rgba(55, 101, 145, 0.16)` | 卡片/表格容器 |
|
||
| `--shadow-glass-lg` | `0 24px 64px rgba(48, 92, 132, 0.2)` | 抽屉/弹窗 |
|
||
| `--shadow-focus` | `0 0 0 4px rgba(47, 125, 246, 0.22)` | 聚焦态 |
|
||
|
||
### 4.6 字体
|
||
|
||
字体栈:
|
||
|
||
```css
|
||
font-family: Inter, "SF Pro Display", "SF Pro Text", "PingFang SC", "Microsoft YaHei", sans-serif;
|
||
```
|
||
|
||
字号:
|
||
|
||
| 场景 | 字号 | 行高 | 字重 |
|
||
| --- | --- | --- | --- |
|
||
| 页面标题 | 20px | 28px | 700 |
|
||
| 面板标题 | 16px | 24px | 700 |
|
||
| 表格正文 | 13px | 20px | 500 |
|
||
| 正文 | 14px | 22px | 500 |
|
||
| 辅助文本 | 12px | 18px | 500 |
|
||
| 关键数字 | 28px | 36px | 700 |
|
||
| 状态 Badge | 12px | 18px | 600 |
|
||
|
||
规范:
|
||
|
||
- 不使用负字距。
|
||
- 表格和表单内不要使用过大的标题字。
|
||
- 数字指标可以使用 `font-variant-numeric: tabular-nums;`,方便对齐。
|
||
|
||
### 4.7 间距
|
||
|
||
基础间距:`4 / 8 / 12 / 16 / 20 / 24 / 32`。
|
||
|
||
常用规则:
|
||
|
||
- 页面外边距:20px。
|
||
- 模块间距:16px。
|
||
- 表格单元格左右 padding:16px。
|
||
- 表单项垂直间距:12px。
|
||
- 抽屉步骤块间距:16px。
|
||
- 按钮内边距:水平 16px,垂直 9px。
|
||
|
||
## 5. 组件规范
|
||
|
||
### 5.1 侧边导航
|
||
|
||
用途:承载平台一级功能,不放业务详情。
|
||
|
||
规格:
|
||
|
||
- 宽度:216px。
|
||
- 外边距:16px。
|
||
- 导航项高度:44px。
|
||
- 图标:18px。
|
||
- 激活态:左侧 3px 蓝色指示条 + 浅蓝玻璃背景。
|
||
- 文案:总览、微服务、发布记录、数据漫游、配置中心、日志与事件、监控告警、权限与审计。
|
||
|
||
交互:
|
||
|
||
- Hover:背景透明度提升,边框高光增强。
|
||
- Active:图标和文字使用品牌蓝。
|
||
- 收起状态只显示图标,hover 显示 Tooltip。
|
||
|
||
### 5.2 顶部工具栏
|
||
|
||
用途:表达当前操作上下文。
|
||
|
||
必须包含:
|
||
|
||
- 项目选择器
|
||
- 环境切换:dev / test / staging / prod
|
||
- 集群选择器
|
||
- 当前告警入口
|
||
- 当前用户
|
||
- 当前角色
|
||
|
||
环境切换规范:
|
||
|
||
- `prod` 激活时使用蓝色强调,但旁边的危险操作流程必须出现生产环境提醒。
|
||
- 不同环境切换后,页面数据和操作权限必须同步变化。
|
||
|
||
### 5.3 状态总览卡
|
||
|
||
规格:
|
||
|
||
- 高度:104px - 112px。
|
||
- 图标容器:44px。
|
||
- 标题:12px 辅助文本。
|
||
- 主数字:28px。
|
||
- 单卡最多展示一个主指标。
|
||
|
||
推荐卡片:
|
||
|
||
- 运行中服务数
|
||
- 异常服务数
|
||
- 最近发布
|
||
- 活跃告警
|
||
- 数据库状态
|
||
|
||
### 5.4 表格
|
||
|
||
表格是运维平台的核心组件。
|
||
|
||
规格:
|
||
|
||
- 表头高度:44px。
|
||
- 行高:56px。
|
||
- 单元格左右间距:16px。
|
||
- 表格容器使用一级玻璃面。
|
||
- 表头使用弱玻璃背景。
|
||
- 行分割线使用 `rgba(114, 151, 188, 0.16)`。
|
||
|
||
服务列表字段:
|
||
|
||
| 字段 | 说明 |
|
||
| --- | --- |
|
||
| 服务 | 服务名、可选命名空间 |
|
||
| 状态 | Healthy / Warning / Critical / Unknown |
|
||
| 当前版本 | 镜像 Tag 或语义化版本 |
|
||
| 实例数 | 当前可用/期望实例 |
|
||
| CPU / 内存 | 数字 + 细进度条 |
|
||
| 最近发布 | 相对时间 |
|
||
| 负责人 | 团队或人员 |
|
||
| 操作 | 日志、详情、更多 |
|
||
|
||
操作列规范:
|
||
|
||
- 高频安全操作直接展示:日志、详情。
|
||
- 发布、重启、配置、回滚放入更多菜单。
|
||
- 危险操作使用红色文本,并触发二次确认或流程抽屉。
|
||
|
||
### 5.5 状态 Badge
|
||
|
||
规格:
|
||
|
||
- 高度:24px。
|
||
- 内边距:`0 8px`。
|
||
- 圆角:6px。
|
||
- 左侧可带 6px 状态点。
|
||
|
||
文案固定:
|
||
|
||
- `Healthy`
|
||
- `Warning`
|
||
- `Critical`
|
||
- `Running`
|
||
- `Unknown`
|
||
|
||
状态不能只依赖颜色,必须保留文字。
|
||
|
||
### 5.6 按钮
|
||
|
||
按钮类型:
|
||
|
||
| 类型 | 用途 |
|
||
| --- | --- |
|
||
| Primary | 开始发布、确认执行 |
|
||
| Secondary | 取消、返回 |
|
||
| Ghost | 表格内轻量操作 |
|
||
| Danger | 删除、强制重启、回滚生产 |
|
||
| Icon | 更多、关闭、刷新、返回 |
|
||
|
||
规格:
|
||
|
||
- 默认高度:36px。
|
||
- 大按钮高度:40px。
|
||
- 图标按钮:32px x 32px。
|
||
- 主按钮可以使用蓝色轻微渐变和柔和阴影。
|
||
|
||
Primary 示例:
|
||
|
||
```css
|
||
.button-primary {
|
||
color: #fff;
|
||
background: linear-gradient(180deg, #3f8cff 0%, #1f6ee8 100%);
|
||
box-shadow: 0 10px 24px rgba(47, 125, 246, 0.34);
|
||
}
|
||
```
|
||
|
||
### 5.7 表单和选择器
|
||
|
||
规格:
|
||
|
||
- 高度:36px。
|
||
- 圆角:8px。
|
||
- 背景:弱玻璃面。
|
||
- Focus:品牌蓝边框 + 聚焦环。
|
||
- Disabled:降低透明度,文字使用禁用色。
|
||
|
||
下拉选择器用于:
|
||
|
||
- 项目
|
||
- 集群
|
||
- 镜像 Tag
|
||
- 命名空间
|
||
- 数据库实例
|
||
|
||
### 5.8 Tabs
|
||
|
||
服务详情页使用 Tabs。
|
||
|
||
规格:
|
||
|
||
- 高度:48px。
|
||
- 激活态:蓝色文字 + 底部 2px 指示线。
|
||
- 标签数量超过 7 个时,后续项目进入更多菜单。
|
||
|
||
推荐顺序:
|
||
|
||
概览、实例、发布、日志、监控、配置、事件。
|
||
|
||
### 5.9 右侧流程抽屉
|
||
|
||
用途:发布、重启、回滚、配置变更。
|
||
|
||
规格:
|
||
|
||
- 宽度:420px - 460px。
|
||
- 高度:全高或内容区全高。
|
||
- 背景:强玻璃面。
|
||
- 顶部固定:标题 + 关闭按钮。
|
||
- 底部固定:取消 + 主操作按钮。
|
||
- 中间内容滚动。
|
||
|
||
发布抽屉步骤:
|
||
|
||
1. 选择版本或镜像 Tag。
|
||
2. 选择发布策略:滚动发布、灰度发布、全量发布。
|
||
3. 查看变更内容。
|
||
4. 预检查。
|
||
5. 确认执行。
|
||
6. 发布中。
|
||
7. 完成。
|
||
|
||
生产环境提醒:
|
||
|
||
- 放在抽屉顶部。
|
||
- 使用 Warning 语义色。
|
||
- 明确展示当前环境、影响实例数、是否需要二次确认。
|
||
|
||
### 5.10 Stepper
|
||
|
||
规格:
|
||
|
||
- 圆点尺寸:22px。
|
||
- 当前步骤:品牌蓝圆点 + 白色数字。
|
||
- 完成步骤:Success 色 + 对勾。
|
||
- 未开始步骤:灰色圆点。
|
||
- 每个步骤块使用弱玻璃面。
|
||
|
||
步骤内容必须简洁,避免长段说明。
|
||
|
||
### 5.11 图表
|
||
|
||
适用于服务详情、监控概览、数据库资源页。
|
||
|
||
规范:
|
||
|
||
- 使用轻量折线图。
|
||
- 网格线透明度低。
|
||
- 坐标轴文字使用辅助文本色。
|
||
- 图表高度:120px - 180px。
|
||
- 小图表不放过多图例。
|
||
- 图表颜色固定使用指标色,不随机。
|
||
|
||
监控概览推荐:
|
||
|
||
- CPU 使用率
|
||
- 内存使用率
|
||
- QPS
|
||
- 错误率
|
||
- 平均响应延迟
|
||
- P95 响应延迟
|
||
|
||
### 5.12 菜单
|
||
|
||
规格:
|
||
|
||
- 宽度:120px - 180px。
|
||
- 背景:强玻璃面。
|
||
- 菜单项高度:36px。
|
||
- 危险操作放底部,红色文字,必要时加分割线。
|
||
|
||
服务行更多菜单:
|
||
|
||
- 发布
|
||
- 重启
|
||
- 配置
|
||
- 回滚
|
||
|
||
### 5.13 Toast 和通知
|
||
|
||
位置:
|
||
|
||
- 默认右上角。
|
||
- 发布流程内的状态反馈优先显示在抽屉内部,不只依赖 Toast。
|
||
|
||
类型:
|
||
|
||
- 成功:发布完成、重启完成。
|
||
- 警告:预检查有风险。
|
||
- 错误:发布失败、连接失败。
|
||
- 信息:任务已提交。
|
||
|
||
### 5.14 空状态和异常状态
|
||
|
||
空状态保持克制:
|
||
|
||
- 不使用大插画。
|
||
- 使用图标 + 一句话 + 主操作按钮。
|
||
|
||
示例:
|
||
|
||
- 暂无服务
|
||
- 暂无发布记录
|
||
- 当前环境未接入数据库
|
||
|
||
异常状态必须给出下一步:
|
||
|
||
- 重试
|
||
- 查看日志
|
||
- 查看事件
|
||
- 联系负责人
|
||
|
||
## 6. 运维业务页面规范
|
||
|
||
### 6.1 微服务页
|
||
|
||
核心能力:
|
||
|
||
- 服务搜索
|
||
- 状态筛选
|
||
- 负责人筛选
|
||
- 环境和集群继承顶部上下文
|
||
- 批量操作仅允许安全操作,危险操作默认不批量开放
|
||
|
||
列表优先,不使用卡片墙。
|
||
|
||
### 6.2 发布记录页
|
||
|
||
字段:
|
||
|
||
- 时间
|
||
- 服务
|
||
- 环境
|
||
- 版本变更
|
||
- 发布策略
|
||
- 操作人
|
||
- 状态
|
||
- 耗时
|
||
- 操作入口
|
||
|
||
状态:
|
||
|
||
- 成功
|
||
- 失败
|
||
- 执行中
|
||
- 已回滚
|
||
|
||
### 6.3 数据资源页
|
||
|
||
不要默认做成在线数据库客户端。第一版以运维视角为主。
|
||
|
||
资源类型:
|
||
|
||
- MySQL
|
||
- MongoDB
|
||
- Redis
|
||
- MQ / Kafka
|
||
|
||
每个资源展示:
|
||
|
||
- 连接状态
|
||
- 主从/副本状态
|
||
- 容量
|
||
- 连接数
|
||
- 慢查询/错误摘要
|
||
- 备份状态
|
||
- 所属服务
|
||
- 负责人
|
||
|
||
生产环境查询能力必须加权限、审批、脱敏和审计。
|
||
|
||
### 6.4 日志与事件页
|
||
|
||
日志规范:
|
||
|
||
- 时间范围
|
||
- 服务筛选
|
||
- 级别筛选
|
||
- 关键词搜索
|
||
- 实时跟随开关
|
||
|
||
事件规范:
|
||
|
||
- 发布事件
|
||
- 重启事件
|
||
- 健康检查事件
|
||
- 配置变更事件
|
||
- 数据库连接异常事件
|
||
|
||
### 6.5 权限与审计页
|
||
|
||
必须展示:
|
||
|
||
- 操作人
|
||
- 操作对象
|
||
- 操作类型
|
||
- 环境
|
||
- 操作时间
|
||
- 执行结果
|
||
- 关联工单或审批记录
|
||
|
||
## 7. 交互状态
|
||
|
||
### 7.1 Hover
|
||
|
||
- 玻璃面亮度轻微增加。
|
||
- 边框高光增强。
|
||
- 可点击区域必须显示指针。
|
||
- 不使用明显位移,避免表格扫描时跳动。
|
||
|
||
### 7.2 Active
|
||
|
||
- 导航、Tabs、环境切换使用品牌蓝。
|
||
- 按钮 Active 可以降低亮度。
|
||
|
||
### 7.3 Focus
|
||
|
||
所有可交互元素必须有键盘 Focus 状态。
|
||
|
||
推荐:
|
||
|
||
```css
|
||
:focus-visible {
|
||
outline: none;
|
||
box-shadow: 0 0 0 4px rgba(47, 125, 246, 0.22);
|
||
}
|
||
```
|
||
|
||
### 7.4 Loading
|
||
|
||
场景:
|
||
|
||
- 页面首次加载:骨架屏。
|
||
- 表格局部刷新:表格内 loading,不遮挡整个页面。
|
||
- 发布执行:抽屉内步骤状态实时更新。
|
||
|
||
### 7.5 Disabled
|
||
|
||
- 降低透明度。
|
||
- 保留 Tooltip 或说明,解释为什么不可操作。
|
||
- 对危险操作,权限不足时不要隐藏入口,建议展示禁用态并说明权限要求。
|
||
|
||
## 8. 动效规范
|
||
|
||
动效只用于反馈,不用于装饰。
|
||
|
||
时间:
|
||
|
||
| 场景 | 时长 |
|
||
| --- | --- |
|
||
| Hover / Press | 120ms |
|
||
| 菜单展开 | 160ms |
|
||
| 抽屉进入 | 220ms |
|
||
| Toast 出现 | 180ms |
|
||
| 步骤状态变化 | 180ms |
|
||
|
||
缓动:
|
||
|
||
```css
|
||
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
||
--ease-emphasized: cubic-bezier(0.2, 0, 0, 1);
|
||
```
|
||
|
||
禁止:
|
||
|
||
- 背景长期大幅动画。
|
||
- 表格行持续闪烁。
|
||
- 告警使用高频闪烁。
|
||
|
||
## 9. 可访问性和可读性
|
||
|
||
最低要求:
|
||
|
||
- 正文和背景对比度不低于 4.5:1。
|
||
- 大号关键数字对比度不低于 3:1。
|
||
- 状态不能只靠颜色表达,必须有文字或图标。
|
||
- 点击目标不小于 32px x 32px。
|
||
- 抽屉、弹窗、菜单支持键盘关闭。
|
||
- 用户开启减少动态效果时,禁用非必要过渡。
|
||
|
||
玻璃面可读性规则:
|
||
|
||
- 承载正文的玻璃层透明度不低于 0.58。
|
||
- 承载表格和表单的玻璃层透明度不低于 0.68。
|
||
- 背景折射纹理不能穿过表格文字密集区域。
|
||
|
||
## 10. 文案规范
|
||
|
||
操作文案:
|
||
|
||
- 使用动词 + 对象:发布服务、重启实例、回滚版本。
|
||
- 危险操作必须说明影响:将重启 3 个实例,期间可能出现短暂连接波动。
|
||
- 避免模糊文案:确定、提交、处理。
|
||
|
||
状态文案:
|
||
|
||
- 发布中
|
||
- 发布成功
|
||
- 发布失败
|
||
- 预检查通过
|
||
- 预检查未通过
|
||
- 等待确认
|
||
|
||
生产环境确认文案示例:
|
||
|
||
> 当前环境为 prod,本次操作将影响 3 个实例。请确认已评估影响范围,并已记录审计日志。
|
||
|
||
## 11. 全局实现建议
|
||
|
||
建议在前端项目中建立以下基础层:
|
||
|
||
```text
|
||
styles/
|
||
tokens.css
|
||
glass.css
|
||
layout.css
|
||
components.css
|
||
```
|
||
|
||
基础 CSS 变量示例:
|
||
|
||
```css
|
||
:root {
|
||
color-scheme: light;
|
||
|
||
--color-bg-page: #edf6ff;
|
||
--color-text-primary: #1d2b3a;
|
||
--color-text-secondary: #52677f;
|
||
--color-text-tertiary: #7b8da3;
|
||
|
||
--color-brand: #2f7df6;
|
||
--color-success: #18a957;
|
||
--color-warning: #f5a524;
|
||
--color-danger: #e5484d;
|
||
|
||
--radius-shell: 20px;
|
||
--radius-panel: 16px;
|
||
--radius-card: 8px;
|
||
|
||
--space-1: 4px;
|
||
--space-2: 8px;
|
||
--space-3: 12px;
|
||
--space-4: 16px;
|
||
--space-5: 20px;
|
||
--space-6: 24px;
|
||
|
||
--shadow-glass-sm: 0 8px 24px rgba(55, 101, 145, 0.12);
|
||
--shadow-glass-md: 0 18px 48px rgba(55, 101, 145, 0.16);
|
||
--shadow-glass-lg: 0 24px 64px rgba(48, 92, 132, 0.2);
|
||
}
|
||
```
|
||
|
||
## 12. 禁止项
|
||
|
||
- 不要做营销型 Hero 首页。
|
||
- 不要把后台做成大面积宣传卡片。
|
||
- 不要让危险操作裸露成显眼的大按钮。
|
||
- 不要在表格密集区域使用过强背景纹理。
|
||
- 不要只用颜色表达服务状态。
|
||
- 不要在玻璃容器中再嵌套多层卡片。
|
||
- 不要把生产环境操作和测试环境操作做成完全一样的确认流程。
|
||
- 不要默认开放生产数据库查询入口。
|
||
- 不要隐藏审计记录。
|
||
|
||
## 13. 页面优先级
|
||
|
||
MVP 推荐顺序:
|
||
|
||
1. 项目运维台首页。
|
||
2. 微服务列表。
|
||
3. 服务详情页。
|
||
4. 发布抽屉。
|
||
5. 重启确认流程。
|
||
6. 发布记录。
|
||
7. 数据资源状态页。
|
||
8. 日志与事件。
|
||
9. 权限与审计。
|
||
|
||
判断一个页面是否符合规范,可以用三句话检查:
|
||
|
||
- 第一眼能不能看出当前环境和服务健康情况。
|
||
- 第二步能不能定位异常服务和关键指标。
|
||
- 第三步执行危险操作时,是否有明确影响范围、确认流程和审计记录。
|