Material Design 3 的动效系统详解
M3 的动效(Motion)系统是用户界面中一个至关重要的组成部分,它将静态的设计元素转化为一个生动、响应迅速且富有表现力的体验。M3 的动效不再仅仅是装饰,而是以用户为中心,通过物理世界中的运动原理来增强可用性和理解性。
1. 动效的原理与作用
动效在 M3 中扮演着多重角色,其核心原理是模拟物理世界中的运动和交互,从而让用户界面感觉更自然、更可预测。
提供反馈 (Feedback): 这是动效最基本也是最重要的作用。当用户与界面元素(如按钮、开关)交互时,动效会立即提供视觉反馈,让用户知道他们的操作已被识别。
原理: 通过快速、清晰的视觉变化(如颜色、大小、位置的瞬时改变),模拟物理世界中物体受到作用后的反应。
维持上下文 (Contextual Continuity): 动效有助于在不同界面状态或视图之间平滑过渡,让用户始终了解他们在应用中的位置和信息流。
原理: 当一个组件展开或关闭,或一个页面转换到另一个页面时,动效可以展示元素如何从一个状态转换到另一个状态,而不是凭空出现或消失。这就像物理世界中,一个抽屉被拉开或关上,而不是突然出现或消失。
引导注意力 (Guiding Attention): 动效可以巧妙地引导用户的视线,突出重要的信息或下一个可操作的元素。
原理: 利用运动、缩放或透明度的变化来吸引用户的目光,就像在物理世界中,移动的物体比静止的物体更能吸引注意力。
传达层级与空间关系 (Hierarchy & Spatial Relationships): 动效可以帮助用户理解界面元素的层级关系以及它们在虚拟空间中的相对位置。
原理: 通过元素进入或退出屏幕的方向、速度和形变,暗示它们是从哪里来、要到哪里去,以及它们与屏幕其他部分的关系。
增强情感与个性 (Emotion & Personality): 动效可以为应用注入活力和个性,让用户体验更愉快、更具吸引力。
原理: 通过选择不同的缓动曲线(easing curves)和动画时长,可以传达出不同的情感,例如快速的、有弹性的动效可能感觉活泼,而缓慢、平滑的动效可能感觉优雅。
2. M3 动效的关键要素
M3 的动效系统主要由以下几个核心要素构成:
缓动曲线 (Easing Curves): 缓动曲线定义了动画中元素速度的变化。M3 推荐使用更符合物理规律的缓动曲线,而不是线性的匀速运动,这让动效感觉更自然、更“活”。
标准缓动 (Standard Easing): 用于大多数 UI 元素的入场和出场动效,模拟物体从静止开始加速,然后减速到静止的过程。
加速缓动 (Accelerate Easing): 用于元素快速离开屏幕的动效,模拟物体加速到完全离开。
减速缓动 (Decelerate Easing): 用于元素缓慢进入屏幕的动效,模拟物体从快速运动减速到静止。
重点缓动 (Emphasized Easing): M3 新增的缓动曲线,通常会包含一个轻微的“超越”或“回弹”效果,让动效更具表现力,感觉更生动。
持续时间 (Duration): 动画的时长。合适的时长对于动效的感知质量至关重要。过短可能让用户觉得动画太快,来不及理解;过长则可能让用户觉得界面迟钝。M3 推荐的持续时间通常在 150ms 到 400ms 之间,具体取决于动画的复杂度和目的。
转换模式 (Transition Patterns): M3 定义了几种常见的转换模式,用于处理不同组件或页面之间的过渡:
Shared Axis (共享轴): 用于在同一坐标轴上相互关联的元素之间的转换,例如前进/后退导航。
Container Transform (容器变换): 用于一个容器(如卡片)平滑地转换成另一个大容器(如详情页)。这是 M3 中非常强大且视觉流畅的转换。
Fade Through (淡入淡出): 用于没有明确空间或层级关系的元素之间的转换,例如在不同标签页之间切换。
Fade (淡入淡出): 最简单的淡入淡出,用于单个元素的显示或隐藏。
例子
我们通过一个电子邮件应用的界面来展示 M3 动效的应用。
1. 邮件列表到邮件详情页的转换
传统方式 (无动效): 用户点击邮件列表中的一项,邮件详情页突然出现,感觉生硬。
M2 方式 (简单动效): 邮件详情页从底部或右侧滑入,列表页淡出。
M3 方式 (容器变换 - Container Transform):
原理: 当用户点击邮件列表中的邮件卡片时,这个邮件卡片会平滑地放大并变形,成为整个邮件详情页的背景。同时,卡片中的文本和图片会相应地移动和淡入淡出,最终填充详情页的内容。
效果: 这种动效给人一种邮件卡片“展开”为整个页面的感觉,极大地增强了上下文的连续性,用户能清晰地理解到他们是从哪个邮件进入了详情,视觉上非常流畅和自然。
2. 浮动操作按钮 (FAB) 的展开
场景: 在收件箱页面,用户点击屏幕右下角的圆形“撰写邮件”FAB。
M3 动效:
点击反馈: FAB 会有一个轻微的按下和弹起的视觉反馈(使用强调缓动),确认用户点击。
展开动效: FAB 可以平滑地放大并变为一个矩形的“新邮件”对话框或全屏撰写界面。或者,它也可以弹出一系列小圆形子操作按钮(如“撰写新邮件”、“草稿”等),这些子按钮会依次从 FAB 中心扩散并伴随弹性效果。
效果: 这种动效不仅美观,还明确地指示了 FAB 的功能,并平滑地过渡到下一步操作,让用户觉得界面非常灵敏。
3. 删除邮件操作
场景: 用户在邮件列表中左滑或长按选中一封邮件,然后点击“删除”按钮。
M3 动效:
邮件移除: 被删除的邮件项会平滑地向侧边滑出屏幕,同时高度逐渐缩小直至消失。
列表重排: 下方的邮件项会向上平滑移动,填充被移除邮件留下的空白区域,而不是瞬间跳跃。
效果: 这种动效模拟了物理世界中物体被移开后,其他物体自动补位的过程,减少了用户的认知负担,让界面更新看起来非常自然。
4. 底部导航栏切换标签
场景: 用户点击底部导航栏的不同标签(如“收件箱”切换到“已发送”)。
M3 动效 (淡入淡出 - Fade Through):
页面转换: 当前页面内容会快速淡出,然后新页面的内容会快速淡入,整个过程非常流畅。
效果: 这种动效适用于没有明确空间关联的页面切换,避免了生硬的跳跃,保持了界面的整体连贯性。
