Files
EasyFlow/docs/design/interaction-motion-guidelines.md
陈子默 37e185e74a docs: 补充现代工作台设计规范
- 完善产品主题、组件语言与交互动效的设计说明

- 补充导航骨架、表面层级与设计 Token 的现代化规范
2026-03-06 20:04:13 +08:00

6.4 KiB

EasyFlow 交互与动效规范 v1

1. 文档目标

本规范用于统一 EasyFlow 的操作反馈、异步流程、状态恢复、键盘可达性与动效系统,确保界面既现代流畅,又稳定可信。

2. 交互哲学

EasyFlow 的交互原则是:

  • 顺手
  • 可预期
  • 低打扰
  • 可恢复
  • 有活力

界面应始终让用户知道:

  • 我现在在哪
  • 当前发生了什么
  • 下一步可以做什么
  • 出错了如何恢复

补充:

  • Apple HIG 所强调的直接、顺滑、层级清晰的控制感,应成为 EasyFlow 的默认交互目标。
  • toB 系统不应因为强调稳定,就牺牲流动感、反馈质量和控件手感。

3. 交互优先级规则

3.1 主操作稳定

  • 同类页面主操作位置尽量固定
  • 主操作数量尽量少,避免多个并列主按钮

3.2 次级操作退后

  • 搜索、筛选、帮助、导出等默认低于主任务
  • 危险操作不与主操作并列抢权重

3.3 反馈先于装饰

  • 任何视觉变化都应优先承担反馈职责
  • 不为“好看”增加没有业务意义的动画
  • 但也不应因为“稳”而做成死板、僵硬、毫无气息的后台交互

4. 表单交互规范

4.1 基本要求

  • 字段标签清晰
  • 帮助信息紧邻字段
  • 错误提示就近展示
  • 提交后有明确状态反馈

4.2 校验策略

  • 优先在字段级提示错误
  • 文案要能指导修改,而不是只提示“输入有误”
  • 对高风险或高成本字段,必要时增加确认步骤

4.3 提交流程

表单提交必须覆盖:

  • 提交中 loading
  • 防重复点击
  • 成功提示
  • 失败原因
  • 保留或恢复用户已填内容

5. 列表与批量操作规范

5.1 列表交互

  • 排序、筛选、分页、搜索需保持稳定顺序
  • 列表刷新不应导致明显跳闪
  • 行 hover 反馈应轻量但可感知

5.2 批量操作

  • 进入批量态后,当前选中数量要清楚
  • 高风险批量操作必须确认
  • 批量完成后需反馈结果摘要

6. 状态反馈规范

6.1 Loading

  • 短操作可用按钮 loading 或局部 skeleton
  • 中长操作应提供区域级反馈
  • 不要让全页面频繁闪动式 loading 干扰操作

6.2 Success

  • 成功反馈应简洁明确
  • 成功后如果有下一步建议,可轻量提示

6.3 Error

  • 错误要说明原因,至少说明失败发生在哪
  • 可恢复错误必须给出重试路径
  • 不可恢复错误也应给出返回或联系支持路径

6.4 Empty

  • 解释为什么为空
  • 提供推荐操作
  • 保持视觉克制,不用过重插画制造噪音

7. 危险操作规范

以下场景默认视为危险操作:

  • 删除
  • 清空
  • 停用
  • 覆盖
  • 批量不可逆处理

要求:

  • 二次确认
  • 文案明确说明影响范围
  • 按钮层级清晰,不允许误触
  • 完成后提供结果反馈

8. 键盘与可访问性

8.1 键盘可达性

  • Tab 顺序合理
  • 对话框支持 Esc 关闭
  • 主操作支持 Enter 快捷确认时,要避免误触发

8.2 焦点样式

  • 必须清晰可见
  • 不依赖微弱颜色变化
  • 不得被自定义样式覆盖消失

8.3 语义结构

  • 表单、表格、弹窗、导航使用语义化结构
  • 图标按钮必须有可访问名称

9. 动效总原则

EasyFlow 的动效关键词固定为:

  • 细腻
  • 短促
  • 稳定
  • 不变形

动效作用:

  • 帮助理解层级变化
  • 帮助理解状态切换
  • 帮助降低跳变感
  • 帮助界面保持现代、轻盈和有生命力

10. 动效时长与缓动

10.1 推荐时长

  • 微交互:120ms - 160ms
  • 常规切换:180ms - 240ms
  • 弹窗 / 抽屉:220ms - 280ms

10.2 推荐缓动

  • 常规:cubic-bezier(0.2, 0, 0, 1)
  • 进入:cubic-bezier(0.16, 1, 0.3, 1)
  • 离开:cubic-bezier(0.3, 0, 1, 1)

10.3 禁止事项

  • 弹跳
  • 果冻式形变
  • 过长动画
  • 多段花哨运动
  • 与业务无关的常驻装饰动画

11. 推荐动效模式

11.1 Hover

  • 颜色轻微变化
  • 背景轻微提亮
  • 轻微阴影或轻微上浮
  • 导航骨架中的 hover 可以有更明显一点的材质变化,但不应造成大幅跳动

11.2 Focus

  • 清晰焦点环
  • 轻量边框强化

11.3 面板出现

  • 淡入 + 轻微位移
  • 避免大幅滑入造成压迫感
  • 顶栏、侧栏、轻浮层可结合轻度模糊和透明度变化,形成更现代的进入感

11.4 弹窗 / 抽屉

  • 淡入 + 轻微缩放或轻微滑入
  • 遮罩过渡应与内容同步,不可明显割裂

11.5 列表更新

  • 避免整表闪烁刷新
  • 局部更新优先于全局重新挂载

12. 页面级体验规范

12.1 页面切换

  • 保持节奏轻,优先稳定而不是显著
  • 页面标题、工具栏、内容区切换不应各自动太多

12.2 骨架屏与占位

  • 骨架屏结构应接近真实布局
  • 不要用与实际结构完全不一致的占位图形

12.3 响应式行为

  • 优先保持信息层级和操作顺序
  • 不要简单缩小所有控件到影响手感
  • 小屏下优先重排而不是一味压缩

12.4 现代工作台感

  • 页面切换、导航激活、工具区状态变化应体现“流动感”,而不是生硬闪现。
  • 动效应让界面更像一个现代系统工作台,而不是一组静态表单页面之间的硬切换。
  • 动效与反馈应帮助用户感知“控制层浮于内容之上”的空间关系,而不是通过硬分隔线提醒区域切换。

13. AI 模块交互建议

13.1 生成中

  • 应让用户知道系统正在做什么
  • 若耗时较长,可显示阶段性状态或进度提示

13.2 工具调用 / 工作流执行

  • 优先呈现当前步骤、结果和异常信息
  • 不要让执行过程完全黑盒化

13.3 失败恢复

  • 失败后提供重试、编辑输入、查看错误原因等恢复路径
  • 对话和流程记录尽量保留,避免用户重新来过

14. 与当前代码的演进建议

当前设计层已有:

  • transition.css
  • ui.css
  • 若干组件内联 transition-* 规则

建议后续演进:

  1. 先统一动效时长和缓动命名
  2. 再逐步收敛组件内散落的 transition 写法
  3. 最终沉淀为基础动效 token 和少量标准过渡模式

15. 交付时必须说明

如果任务涉及交互、状态、表单、浮层或动效改动,交付说明必须补充:

  • 交互变化服务了什么任务目标
  • 是否补齐了 loading、失败恢复与空状态
  • 动效是否符合“细腻、短促、稳定、不变形”
  • 是否影响键盘可达性、焦点样式或响应式表现