326 lines
9.7 KiB
Markdown
326 lines
9.7 KiB
Markdown
# EasyFlow 基础组件规范 v1
|
||
|
||
## 1. 文档目标
|
||
|
||
本规范用于统一 EasyFlow 常见组件与页面组合层的视觉气质、尺寸节奏、状态表达和布局原则。
|
||
|
||
适用范围:
|
||
|
||
- `easyflow-ui-admin`
|
||
- `easyflow-ui-usercenter`
|
||
- `easyflow-ui-websdk`
|
||
|
||
## 2. 组件总原则
|
||
|
||
EasyFlow 的组件应遵守以下统一气质:
|
||
|
||
- 柔和但理性
|
||
- 轻盈但稳定
|
||
- 精致但克制
|
||
- 现代但不花哨
|
||
- 鲜明但不失控
|
||
|
||
统一要求:
|
||
|
||
- 同类组件尺寸档位一致
|
||
- 同类组件状态规则一致
|
||
- 同类组件交互反馈一致
|
||
- 同类组件在不同端只允许密度差异,不允许语言割裂
|
||
- 不做传统表单后台式的强框架、重线条、死板排布
|
||
|
||
补充原则:
|
||
|
||
- Apple HIG 强调层级、材质、清晰与内容优先,EasyFlow 可大胆借鉴其导航骨架和控制点表达。
|
||
- Material Design 3 强调 `color roles`、`tonal surfaces`、`adaptive layouts`,EasyFlow 可大胆借鉴其色彩和表面层组织方式。
|
||
- 最终目标不是“像 Apple”或“像 Google”,而是让 EasyFlow 像一个现代工作台,而不是传统管理系统模板。
|
||
|
||
## 3. 按钮 Button
|
||
|
||
### 3.1 角色层级
|
||
|
||
- `Primary`:主操作,如新建、保存、发布、提交、确认
|
||
- `Secondary`:辅助操作,如取消、返回、次级入口
|
||
- `Ghost`:低干扰操作,如工具栏辅助动作
|
||
- `Text`:最弱层级操作,如查看详情、轻跳转
|
||
- `Danger`:删除、停用、清空等高风险动作
|
||
|
||
### 3.2 设计要求
|
||
|
||
- 主按钮明确,但不刺眼、不厚重、不夸张。
|
||
- 同一区域内按钮高度、圆角、左右内边距和图标尺寸统一。
|
||
- 图标按钮必须有足够点击热区,不可只按图标本体大小计算。
|
||
- 导航骨架中的工具按钮可以更有材质感和触感,但不应厚重、拟物或果冻化。
|
||
|
||
### 3.3 状态要求
|
||
|
||
- `hover`:轻微提亮或轻微背景变化
|
||
- `active`:轻微下压感或更深一档颜色
|
||
- `focus`:清晰焦点环
|
||
- `disabled`:降低对比度并禁用交互
|
||
- `loading`:保留按钮宽度,不发生跳变
|
||
|
||
### 3.4 禁止事项
|
||
|
||
- 一个区域同时出现多个同权重主按钮
|
||
- 用危险红色做普通主操作
|
||
- 用超大圆角和重阴影制造主操作感
|
||
|
||
## 4. 输入类组件 Input / Select / DatePicker / Search
|
||
|
||
### 4.1 统一要求
|
||
|
||
- 高度和按钮保持统一档位
|
||
- 占位文案、前后缀图标、清空按钮间距一致
|
||
- 默认边框克制,focus 时明确但不过亮
|
||
|
||
### 4.2 搜索框
|
||
|
||
- 搜索是效率辅助,不应默认比主按钮更抢眼。
|
||
- 搜索图标优先弱化,placeholder 保持清楚但不过深。
|
||
- 高级筛选展开后,信息层级仍需清晰,不形成工具栏拥堵。
|
||
- 在现代工作台场景中,搜索入口可使用轻玻璃、轻染色和更圆润的容器,但应作为“柔和工具”而不是“表单输入框”。
|
||
|
||
### 4.3 校验与提示
|
||
|
||
- 错误提示应紧邻字段出现
|
||
- 描述文案优先解释“为什么错”和“怎么改”
|
||
- 成功态与错误态使用统一结构,不因页面定制
|
||
|
||
## 5. 标签 Tag / Badge / Status
|
||
|
||
### 5.1 使用原则
|
||
|
||
- 标签用于分类、状态、轻量属性展示,不承担主要信息块角色。
|
||
- 状态标签优先语义明确,而不是丰富多彩。
|
||
|
||
### 5.2 视觉要求
|
||
|
||
- 默认低饱和背景 + 清晰文字
|
||
- 相同状态在不同页面使用相同颜色和风格
|
||
- 控制一页中高彩状态标签的数量
|
||
- 状态表达仍以语义优先,但当前态、品牌态和重点态可以更鲜明,不必做得过灰。
|
||
|
||
## 6. 卡片 Card / Panel
|
||
|
||
### 6.1 使用原则
|
||
|
||
- 卡片和面板用于承载内容分组,不应形成“层层包裹”的视觉噪音。
|
||
- 一个页面尽量维持一种主容器语言。
|
||
|
||
### 6.2 结构建议
|
||
|
||
- 头部:标题 + 摘要 / 操作
|
||
- 内容:主体信息
|
||
- 底部:补充信息或收尾动作
|
||
|
||
### 6.3 视觉要求
|
||
|
||
- 主要通过内边距、标题层级、弱分隔建立结构
|
||
- 弱边框或极轻阴影即可,不做厚重悬浮卡片
|
||
- 正文主面板应保持清晰稳定,导航骨架和轻浮层才是更适合使用轻玻璃和柔和悬浮感的位置。
|
||
|
||
## 7. 弹窗 Modal / 抽屉 Drawer / 浮层 Popover
|
||
|
||
### 7.1 总原则
|
||
|
||
- 浮层是为了帮助完成任务,不是为了制造空间戏剧性。
|
||
- 同类浮层的头部、说明区、底部操作区和关闭行为保持一致。
|
||
|
||
### 7.2 弹窗
|
||
|
||
- 适合短流程确认、中小表单、明确单任务场景
|
||
- 标题清楚,说明短而直接
|
||
- 底部按钮顺序稳定,避免不同页面顺序漂移
|
||
|
||
### 7.3 抽屉
|
||
|
||
- 适合中等复杂度编辑、详情查看、分步信息处理
|
||
- 内容区滚动、头部固定、底部操作区布局应保持稳定
|
||
|
||
### 7.4 Popover / Dropdown
|
||
|
||
- 只承载轻量选择、操作列表和局部补充信息
|
||
- 避免承载过长表单或复杂业务流程
|
||
|
||
## 8. 表格 Table
|
||
|
||
### 8.1 总体原则
|
||
|
||
- 表格优先服务检索、比较和快速操作
|
||
- 密度应克制统一,不要有的列很松,有的区域很挤
|
||
|
||
### 8.2 设计要求
|
||
|
||
- 表头、行高、单元格内边距、状态标签、行内操作维持统一节奏
|
||
- 行 hover 应轻,不造成过强闪烁
|
||
- 行内操作不应在未 hover 时完全不可发现
|
||
|
||
### 8.3 长列表策略
|
||
|
||
- 默认考虑分页、筛选、排序
|
||
- 数据量大时优先评估虚拟滚动或懒加载
|
||
- 表格工具栏与筛选区视作统一效率区域,不割裂设计
|
||
|
||
## 9. 工具栏 Toolbar / 筛选区 Filter Bar
|
||
|
||
### 9.1 总原则
|
||
|
||
- 工具栏服务任务效率,不应变成页面视觉中心。
|
||
- 搜索、筛选、批量操作、导入导出、主操作要形成明确优先级。
|
||
|
||
### 9.2 推荐布局
|
||
|
||
- 左侧:页面标题补充信息或筛选条件
|
||
- 右侧:主操作、次级操作
|
||
- 搜索与筛选默认退后于主操作
|
||
|
||
### 9.3 设计要求
|
||
|
||
- 避免同时叠加过多输入框、下拉、标签和按钮
|
||
- 高级筛选建议折叠或分层展示
|
||
|
||
### 9.4 现代工作台工具栏
|
||
|
||
- 工具栏不应看起来像一排传统表单控件堆叠。
|
||
- 可用更开放的留白、更柔和的按钮组、更轻的搜索容器来提升现代感。
|
||
- 应优先减少“每个操作一个线框框”的传统后台视觉。
|
||
- 在 toB 页面中,工具栏要更像操作系统级控制层,而不是审批系统式字段条。
|
||
|
||
## 10. Tabs / Breadcrumb / 导航类组件
|
||
|
||
### 10.1 Tabs
|
||
|
||
- 用于同级内容切换,不用于承载复杂操作入口
|
||
- 当前态应清晰,但不依赖厚重背景或夸张动画
|
||
- 标签过多时优先滚动或收纳,不压缩到难读
|
||
|
||
### 10.2 Breadcrumb
|
||
|
||
- 只表达路径,不承载大量操作
|
||
- 当前页层级清晰,前层级适度弱化
|
||
|
||
### 10.3 导航
|
||
|
||
- 导航风格轻量,重点是帮助定位,不抢占内容区注意力
|
||
- 选中态与 hover 态要统一,避免不同模块风格分裂
|
||
|
||
### 10.4 现代导航骨架
|
||
|
||
- 顶栏、侧栏、tab、breadcrumb、搜索入口、工具按钮应被视为统一导航骨架系统。
|
||
- 默认允许轻度液态玻璃、柔和模糊、弱染色和轻悬浮。
|
||
- 当前态可以更鲜明、更像“现代工作台中的激活项”,而不是传统树菜单里一条蓝字。
|
||
- 导航骨架的任务是“提升流动感和定位感”,不是把页面切成一块块硬区域。
|
||
|
||
## 11. 表单 Form
|
||
|
||
### 11.1 结构原则
|
||
|
||
- 标签、字段、说明、错误、帮助信息保持稳定顺序
|
||
- 长表单按逻辑分组,避免一屏超长无层次
|
||
|
||
### 11.2 交互要求
|
||
|
||
- 提交时必须有 loading、防重复提交和错误回填
|
||
- 必填项策略统一,不做页面级个性化表达
|
||
- 表单保存失败必须说明原因和可恢复路径
|
||
|
||
## 12. 空状态 / 错误状态 / 无权限状态
|
||
|
||
### 12.1 空状态
|
||
|
||
必须同时包含:
|
||
|
||
- 当前为空的原因
|
||
- 一句简洁说明
|
||
- 明确的下一步动作
|
||
|
||
### 12.2 错误状态
|
||
|
||
必须同时包含:
|
||
|
||
- 错误说明
|
||
- 重试或返回路径
|
||
- 必要时的诊断信息入口
|
||
|
||
### 12.3 无权限状态
|
||
|
||
- 明确告诉用户为什么不可访问
|
||
- 指向申请权限、联系管理员或返回路径
|
||
|
||
## 13. AI 相关组件
|
||
|
||
### 13.1 对话与消息区
|
||
|
||
- AI 输出区域应强调可读性与节奏,不做过度聊天气泡装饰
|
||
- 系统消息、用户消息、工具状态、执行结果要有清晰区分
|
||
|
||
### 13.2 工作流 / Agent 状态块
|
||
|
||
- 优先表达当前步骤、执行状态、结果摘要、错误恢复
|
||
- 用结构和状态说明表达过程,不靠大面积特效制造“智能感”
|
||
|
||
### 13.3 知识 / 检索 / 引用信息
|
||
|
||
- 应有稳定的辅助信息样式
|
||
- 引用、命中来源、分块信息不应与主回答混成一层
|
||
|
||
## 14. 页面组合层建议
|
||
|
||
### 14.1 列表页
|
||
|
||
推荐结构:
|
||
|
||
1. 页面标题
|
||
2. 说明或摘要
|
||
3. 工具栏
|
||
4. 表格 / 卡片列表
|
||
5. 分页 / 列表底部说明
|
||
|
||
要求:
|
||
|
||
- 列表页应尽量摆脱传统“标题下方一整排表单 + 粗边框表格”的后台感。
|
||
- 可以通过更轻的工具栏、更开阔的内容面、更清晰的主操作强调来提升活力。
|
||
|
||
### 14.2 详情页
|
||
|
||
推荐结构:
|
||
|
||
1. 标题与主操作
|
||
2. 摘要信息
|
||
3. 主内容区
|
||
4. 次级面板区
|
||
|
||
### 14.3 配置页
|
||
|
||
- 优先按模块分组,而不是长表单堆叠
|
||
- 危险配置、基础配置、实验性配置层级明确分开
|
||
|
||
## 15. 三端差异建议
|
||
|
||
### 15.1 Admin
|
||
|
||
- 更紧凑
|
||
- 更强调检索、管理、批量操作和信息秩序
|
||
- 但视觉上应更像“现代工作台”,而不是“传统表单管理系统”
|
||
- 导航骨架允许轻度液态玻璃、更鲜明的品牌当前态和更通透的控制层表达
|
||
|
||
### 15.2 User Center
|
||
|
||
- 更轻松
|
||
- 更强调个人任务、引导和可读性
|
||
|
||
### 15.3 Web SDK
|
||
|
||
- 更轻、更简、更对话化
|
||
- 但按钮、输入、面板、标签与状态反馈必须保持同源
|
||
|
||
## 16. 交付检查重点
|
||
|
||
做组件或页面时,至少确认:
|
||
|
||
- 是否符合 `冷静智能` 主题
|
||
- 是否复用了统一 Token 与公共组件
|
||
- 是否保持组件族一致
|
||
- 是否补齐了状态与异步反馈
|
||
- 是否在不同尺寸下仍然清晰、顺手、不拥挤
|