用途:这是 Apple 设计中的功能决策层,用于决定界面行为而非视觉外观。涉及导航与呈现方式选择、状态行为设计、感知性能调优、焦点/键盘/输入/命中区域处理。动画执行交给 apple-design-motion,组件配置交给 apple-design-os。
主要能力:
- 导航与呈现决策:push、sheet、modal、tab、popover、split-view、full-screen 的取舍框架,返回行为、深链接与状态恢复。
- 状态行为:loading、empty、error、disabled、success,乐观更新、下拉刷新、分页/无限滚动、校验时机。
- 感知性能与输入:延迟阈值、即时反馈、预取与渐进加载;焦点、键盘、输入、指针与触摸差异、命中目标;滚动作为连续输入的决策。
核心规则:导航需匹配信息层级,push 用于层级下钻,sheet/modal 用于自包含子任务,tab 为同级顶层,split view 用于宽屏主从,全屏用于沉浸模式;返回必须明显可预期,返回时保留并恢复状态。响应始终小于 100ms,触摸即时视觉反馈,可能成功的操作使用乐观 UI,仅超过 1 秒才用 spinner,内容形状等待用骨架屏,绝不用 spinner 阻塞输入。需设计所有状态而非仅正常路径,空状态要给出前进路径,错误状态要可恢复,禁用状态要说明原因。目标需可达且可感知:至少 44pt,主要操作位于拇指区,可见焦点,完整键盘可操作,每个手势都有可见回退。滚动是输入,需有意识决定:与 scrollY 绑定的连续滚动进度动效适合旗舰/营销/产品/引导界面,但必须彻底执行或完全跳过;在列表、仪表盘、表单、设置、文档等工具界面会拖慢任务并干扰肌肉记忆,应保持朴素快速。绝对禁止 scroll-jack:不得 preventDefault wheel/touchmove,不得用 overflow:hidden 伪造滚动,不得页面级垂直吸附;可对读取值做 lerp 平滑,但不得夺取滚动条位置控制权,必须保留可用的原生滚动条与键盘滚动。指针反应动效(倾斜、磁吸、聚光)仅限 (pointer:fine) 桌面端,触摸用户不应有损失。所有滚动驱动变换需置于 prefers-reduced-motion 之下。
参考文件:references/navigation-models.md 用于导航决策、返回行为、深链接与状态恢复;references/state-and-feedback-logic.md 用于各状态行为、下拉刷新、分页与校验时机;references/perceived-performance-and-input.md 用于延迟阈值、即时反馈、预取、焦点键盘输入、命中目标与滚动决策。
常见错误:模态滥用(该 push 却用 sheet)、返回不可预期、返回丢失状态;一切用 spinner、阻塞输入、无乐观 UI、感知性能卡顿;只做正常路径,缺少空/错误/禁用设计;仅手势无回退、主要操作不可达、无可见焦点环。
限制:资料未提供安装命令、平台支持、收费或价格信息。