| name | harmonyos-motion-vocabulary |
| description | 把用户对 HarmonyOS、ArkUI、Canvas 或代码生成产品动效的模糊描述转换为准确术语、相近概念和可能的 ArkUI 能力,例如“松手像急刹车”“拖过头有阻力”“页面像从同一个卡片长出来”“后端没完成却显示成功”。用于命名、检索和编写提示词;不要用于完整设计审视、传统视频剪辑、镜头叙事、直接实现或构建问题。 |
| metadata | {"status":"experimental","version":"1.0.0"} |
HarmonyOS 动效词汇
只做一件事:把模糊的视觉或手感描述转换为准确术语。
适用边界
- 强适用:ArkUI 交互界面、Canvas/RenderNode 产品动效;
- 部分适用:由代码明确控制时间、几何、排版和状态的非交互产品视频;
- 不适用:传统剪辑、镜头叙事、实拍、生成式视频黑盒。
非交互视频可以使用节奏、连续性、错峰、形变、曲线等术语,但不要套用按下反馈、焦点、可打断输入等交互词汇。对缺少已核验官方资料的第三方工具,不对其具体能力作假设。
输出格式
**术语** — 一句话定义。
ArkUI 关联:`可能的 API 或能力`
边界:何时不是这个术语。
有多个可能时,先给最佳匹配,再给 1–2 个近义概念。
词汇表
输入与反馈
- 按下反馈(Press feedback) — 在 Touch Down 时立即改变控件状态,证明输入已被接收。
- 提交(Commit on release) — 抬起且仍位于有效目标内时执行动作。
- 取消回拖(Cancel and re-enter) — 手指移出目标可取消,重新移入可恢复候选状态。
- 焦点态(Focus state) — 键盘、遥控器或旋钮当前操作目标。
- 悬停态(Hover state) — 光标到达可交互对象时的反馈。
- 激活态(Active/selected state) — 控件或导航项已经被选择的持久状态。
连续手势
- 跟手(Direct tracking) — 对象在手势过程中持续随手指或指针变化。
- 速度继承(Velocity handoff) — 离手动画沿用离手前速度,不从零开始。
- 动画衔接(Animation continuity) — 目标改变时从当前动画状态平滑进入新动画。
- 可打断动画(Interruptible motion) — 动画中可被新输入接管、反向或重定向。
- 边界阻尼(Boundary resistance) — 越过边界越难继续拖动,而不是硬停止。
- 回稳(Settle) — 离手后向边界、吸附点或稳定状态运动。
- 抛滑(Fling) — 离手带方向和速度的滑动。
- 吸附(Snap) — 根据位置和速度选择离散目标点。
ArkUI 关联:
- 跟手:
curves.responsiveSpringMotion();
- 回稳/速度衔接:
curves.springMotion();
- 显式物理:
curves.interpolatingSpring()。
曲线
- 标准曲线(Standard curve) — 对象前后都在屏内的加速—减速变化。
- 减速曲线(Decelerate) — 开始快、结束慢,常用于进入视线。
- 加速曲线(Accelerate) — 从静止逐渐加速,常用于退出视线。
- 弹性曲线(Spring) — 由响应、阻尼或质量、刚度、速度决定的物理运动。
- 临界阻尼(Critical damping) — 不振荡并尽快稳定。
- 欠阻尼(Underdamped) — 越过目标并振荡后稳定。
- 过阻尼(Overdamped) — 不越过目标,但更慢地接近稳定。
转场
- 同层转场 — Tab、编辑模式等相同层级状态变化。
- 上下层转场 — 父页面与子页面之间的进入和返回。
- 跨层转场 — 应用或任务上下文之间的切换。
- 共享元素转场 — 同一对象在两个页面之间连续移动和变化。
- 共享容器转场 — 容器边界、大小、圆角连续变化,内部内容再切换。
- 共享动势 — 无法直接共享对象时,保持位移、缩放或旋转的共同运动趋势。
- 一镜到底 — 使用共享关系让转场看起来不中断。
- 交叉淡化(Crossfade) — 一个状态淡出、另一个淡入。
ArkUI 关联:geometryTransition()、Navigation 默认或自定义转场。
编排与微动效
- 错峰(Stagger) — 多个元素以小间隔依次出现。
- 数值脉冲(Value pulse) — 数字变化时短暂缩放或透明度反馈。
- 图标抬升(Icon lift) — 选中图标轻微位移以表达激活。
- 状态形变(State morph) — 同一对象在两个状态间连续改变形状或容器。
- 微动效(Micro-interaction) — 小范围、短时、承担反馈或状态说明的运动。
这些通常是 House Style,不是统一官方要求。
异步状态
- 本地确认(Acknowledged) — 客户端已收到输入,但远端尚未完成。
- 处理中(Pending) — 操作正在等待后端、设备或耗时任务。
- 真实确认(Confirmed) — 业务结果已经被权威状态确认。
- 乐观更新(Optimistic UI) — 在远端确认前先更新界面,并准备失败回滚。
- 回滚(Rollback) — 乐观结果失败后恢复先前真实状态。
- 虚假完成(False completion) — 动效或播报暗示成功,但真实状态尚未确认。
- 响应乱序(Out-of-order response) — 旧请求比新请求晚返回并可能覆盖新状态。
用户说“动画在撒谎”时,最佳匹配通常是 虚假完成 或 异步状态不真实,不是简单的缓动问题。
适配与可访问性
- 交互归一 — 同一任务在触摸、鼠标、键盘、遥控器等输入下使用符合习惯的方式完成。
- 多态控件 — 同一控件针对不同设备、输入和场景呈现不同形态与状态。
- 自适应布局 — 元素随容器连续拉伸、缩放、延伸、隐藏或折行。
- 响应式布局 — 布局在断点处变为缩进、挪移、重复或分栏。
- 语义 Token — 用用途命名而不是用具体数值命名的设计参数。
- 永恒基础层(Evergreen Foundation) — 预期跨多个视觉版本成立的反馈、连续性、层级、可读性和真实性原则。
- 版本化平台层(Versioned Platform Layer) — 随 HarmonyOS/OpenHarmony/ArkUI 版本更新的组件、视觉语言、API 和默认行为。
- 项目覆盖层(Project Overlay) — 品牌、业务风险和 House Style 对平台的产品化表达。
- 无障碍分组 — 将相关节点作为一个语义整体播报。
- 虚拟无障碍节点 — 为自绘内容提供辅助工具可识别的结构。
示例
用户:
卡片拖出去以后,松手那一下像突然刹车,然后才回去。
输出:
**速度继承(Velocity handoff)缺失** — 离手后的回稳动画没有沿用手势最后速度,因此在松手点产生速度断层。
ArkUI 关联:跟手阶段检查 `responsiveSpringMotion()`,离手回稳检查 `springMotion()`。
边界:若卡顿来自掉帧而不是速度归零,则属于性能长帧,不是速度继承。