‹ 返回合集

Interaction Spec

7 交互文档

点击“编辑”后可直接修改正文中的标题、段落、列表和表格内容;“保存”会存到当前浏览器本地,重新部署请导出或交给 Codex 同步。

0. 当前交付目录

首页入口内容说明
1 UI demo共 9 个正式演示包含默认血液、历史血液、超长周期、跨月、异常经期、打断场景、多段展示和震动提示;已去掉旧的完整流程演示入口。
2 交互文档当前页面对齐产品、设计、开发的交互细节,支持本地编辑保存。
3 需求文档PRD 阅读版以最新优先弹窗流程和压缩动效时长为准。
4 客户端交付代码包下载包含 HTML demo、提示词、双端说明、iOS/Android/跨端参考代码。

1. 触发范围与播放条件

项目规则
触发入口仅记录 tab 触发血量动效;其他入口只同步最终记录状态,不播放逐格血流。
常规记录用户点击“大姨妈来了-是”后先进入白底中间态并显示黄色开始 icon,再弹出记经期必填弹窗;点击确定后才展开下方当天记录列表并开始播放血流动画;点击取消不记录、不播放。
历史日补记/提前来了用户在已记录的经期开始了情况下修改开始日,先弹窗提示确认;点击确定后按新经期范围进入优先弹窗流程并播放动效;点击取消不播放且不改写原周期。
历史周期与当前周期只要发生“记录月经开始”且在记录 tab 内,历史周期和当前周期均播放。
实验互斥版本 ≥ 9.07.0 中,2232 记录月经动效实验与 1830 不规律经期实验互斥;命中互斥实验时按实验平台分组结果执行。
多段经期多段展示用于表达多个已确认经期片段;播放中日历被锁定,用户不能再切换其他日期触发新的经期记录。

2. 核心动效流程

阶段交互与视觉
初始状态经期中日期格子显示深粉色;预测经期日期显示浅粉格子;今天或选中日显示红色描边和白色内描边;未点击“是”前不显示黄色开始 icon。
点击“是”按钮点击被接受后立即触发一次较强震感;本次经期范围内格子先变白 white_AN,并在选中开始日显示黄色开始 icon。该阶段只做白底中间态,不开始血流动画。
必填弹窗白底中间态完成后弹出记经期必填弹窗。弹窗为必填步骤,点击确定后展开下方当天记录列表并开始血流动画;点击取消后弹窗收起,恢复未记录态,不播放血流动画。
动画播放中日历表格进入禁用态,不能切换其他日期,也不能触发其他会改写经期范围的操作;下方当天记录列表保持可操作。
白底中间态点击“是”后、必填弹窗弹出前,本次经期范围内格子先变白 white_AN;日期文字变粉色:历史日和今天为深粉色 #FF4D88,未来日为浅粉色 #FFCADB;选中开始日显示黄色开始 icon。
血量上涨按日期顺序播放液体按照比例上涨;血液颜色为 #FF4D88,动效有粘黏感,下一格在上一格接近结束前提前启动。血液覆盖文字时,覆盖部分文字反白,未覆盖部分保持原粉色。
最终定格动画完成后统一冲满 100%;历史日和今天定格为深粉色,未来日定格为浅粉色,文字为白色。
分析弹泡血流播放完后才弹出分析弹泡;分析弹泡出现后,代表本次经期记录完成,再允许其他日期选择和操作。

3. 颜色规则

对象颜色/表现
血液液面#FF4D88
白底中间态文字-历史日/今天#FF4D88
白底中间态文字-未来日#FFCADB
最终定格-历史日/今天格子 #FF4D88,文字 #FFFFFF
最终定格-未来日格子 #FFD6E4,文字 #FFFFFF
开始 icon确定记录后显示在选中开始日,尺寸 12×12;未确认前不显示。

4. 经期天数、长周期与跨月

规则说明
默认周期未设置时使用默认 5 天,播放完整 5 天动效。
常规周期使用用户设置值,常规范围为 3-15 天。
1 天模型不提供 1 天血量比例模型;如服务端出现异常 1 天周期,客户端按最终态静态兜底。
主动画上限最多 7 天按比例逐格播放,避免播放时间过长。
8 天以上第 8 天及以后日期统一 5% 液面轻量反馈,最终一起 100% 定格。
跨月经期按真实日期连续计算,不按当前日历视图是否可见来截断;跨月经期整段周期都要参与播放。当前页面只渲染可见日期,切换到跨月其他月份时直接展示该段经期最终态。

4.1 血量比例数组

经期天数血量数组说明
2 天[60, 100]2 天起按真实趋势展示。
3 天[60, 90, 40]先升高,再回落。
4 天[50, 90, 60, 30]第二天附近达到高点。
5 天[40, 80, 60, 30, 20]默认 demo 使用该数组。
6 天[35, 80, 65, 40, 22, 12]后段逐步降低。
7 天[30, 60, 85, 65, 40, 24, 15]主动画播放上限。
8 天以上[30, 60, 85, 65, 40, 24, 15, 5, 5, 5...]前 7 天逐格播放;第 8 天及以后日期统一 5% 轻量反馈。

5. 动效节奏参数

参数规则
单格时长公式duration = 125 + level * 5.3
100% 参考时长655ms
白底中间态停留115ms
重叠比例0.35,下一格在上一格约 65% 进度时启动。
最小启动间隔118ms
统一冲满等待170ms
统一冲满时长360ms
整体时长5 天常规动效约 1.9 秒;15 天超长周期约 2.4 秒;整体建议不超过 2.5 秒。

6. 震感规则

规则项交互细则
点击“是”需要触发一次较强震感,作为用户确认记录“大姨妈来了”的即时反馈;强震感发生在“是”按钮点击被客户端接受后,并与白底中间态启动同时发生,早于必填弹窗和血流动画,不等待接口返回。
点击“否”/取消不触发额外强震感,不使用当前 demo 的强震动模式;点击后立即恢复未记录态。
iOS点击“是”保持较强系统触感效果,建议使用 UIImpactFeedbackGenerator(style: .heavy)。点击“否”或取消仅保留系统控件默认触感反馈,不额外调用强震感;系统关闭触感时静默降级。
Android点击“是”需要触发较强震感,可使用系统允许的强震感能力;点击“否”或取消不做客户端震感,不调用震动能力。
Web demo仅用于演示:点击“是”调用 navigator.vibrate([80,30,80]);点击“否”不调用震动。网页展示限制仅部分安卓机可感受,客户端按照上述要求实现。
禁止项不要用页面抖动、按钮抖动或其他视觉动画替代震感;震感不作为记录成功判断依据,不阻塞记录流程和血流动效。

7. 打断、接口与降级

类型场景处理
弹窗取消必填弹窗中点击取消,或未确定前关闭弹窗。不写入记录,不播放血流,恢复未记录态。
播放中日期操作血流动画播放中尝试切换日期或改写经期范围。日历表格处于禁用态,操作不可触发;等分析弹泡出现后再恢复。
播放中列表操作血流动画播放中记录爱爱、体温、体重、心情、日记、症状等当天列表项。允许操作,下方列表按线上逻辑处理;日历血流继续播放。
系统不可见中断播放中切换 tab、离开记录 tab 进入二级页、退后台、锁屏等导致记录页面不可见。中断后不续播半截动画;回来后按接口最终结果展示最终态或回滚态。
接口失败记录保存失败,或服务器返回失败发生在切断后。以接口最终结果为准:失败回到初始态并提示同线上规则;成功展示最终态。
低性能设备明显卡顿或系统 Reduce Motion。可降级关闭水波纹,保留液面高度、文字反白和最终定格;Reduce Motion 可使用短过渡直达最终态。

8. 验收标准

  1. 点击“是”后先完成白底中间态并显示黄色开始 icon,再出现记经期必填弹窗;点击确定后才展开当天记录列表并开始血流动画。
  2. 血流动画播放期间日历表格不可切换其他日期,下方当天记录列表可操作。
  3. 血流播放完成后弹出分析弹泡;分析弹泡出现后,才允许其他日期选择和操作。
  4. 点击“是”按钮时有较强震动反馈;点击“否”或取消不触发额外强震感。
  5. 白底中间态、血流上涨、文字反白、最终定格、黄色开始 icon 均符合颜色规则。
  6. 历史日补记、提前来了、异常周期、跨月经期都按整段新范围播放。
  7. 长周期前 7 天按比例播放,第 8 天及以后统一 5% 反馈,最终一起定格。
  8. 播放中被切断时不续播半截动画,直接按业务结果展示最终态或回滚态。
  9. UI demo、交互文档、需求文档、客户端交付入口均可在手机浏览器正常打开。