按钮被按下、项目被选中和键盘停在某处,是三种不同的状态。如果都用同一圈亮框表示,用户就得靠猜测区分。

我希望反馈能说明发生了什么,也能在上一个动作尚未完成时承接下一次操作。以下先区分操作范围和状态,再处理过渡与前后辨认。

本文由原篇重编并扩充。样例数值代表当时条件,并非所有界面的固定规格;系列背景与工具入口见 总论。

操作与状态

按下时,内容不跟着跳

持续的选中状态与短暂的按压状态(pressed state)有不同工作。选中指出当前位置,按压回应当下的动作。图中按下时把外侧深度换成淡内影,白色略降到 #F5F5F5;ring、图标、文字和整个组件的尺寸都不变。

同一个 Library 按钮放大二点五倍比较 Rest 与 Pressed,外形和内容对齐,只改变填色及内外阴影。
收起外影,换入内影。反馈发生在表面,内容维持原位。

小图标保留容易操作的范围

可见图标的大小,和点击范围(hit area)可以分开安排。图中的关闭符号维持 16 × 16 px,按钮范围则是 44 × 44 px,让手指与指针都有足够的落点。辅助框只在图解里显示。

关闭按钮放大四倍,辅助框标注中央十六乘十六像素图标,以及周围四十四乘四十四像素的点击范围。
图形大小与操作范围分开安排;44 px 是这组试样的取值。

44 px 是这个试样的选择。放进密集工具栏时,还要一起检查相邻操作的距离与点击范围,避免互相重叠。图标可以小,周围仍要有合理的操作空间。

焦点要能从安静的表面里站出来

键盘焦点(keyboard focus)指出现在操作哪个组件,分量要足以辨认。这组按钮维持同样的 ring、填色与尺寸,右侧另加 2 px 轮廓,与按钮相隔 3 px。表面的细边继续交代形状,焦点则清楚标出位置。

两个相同按钮对照一般状态与键盘焦点,右侧另有两像素轮廓,与按钮外形间隔三像素,其他表面处理相同。
焦点标出操作位置,分量与表面的细轮廓分开决定。

我喜欢低调的表面,也希望操作位置一眼可见。焦点轮廓需要连同周围的底色检查,并留意面板裁切与相邻控制器;选中、按压和焦点各有工作,可以同时成立。

同一种视觉线索,保持同一含义

选中表示持续的选择,焦点表示键盘当前的位置,错误表示需要修正的内容,它们可能同时成立。图中用填色加勾号表示选中、外侧轮廓表示焦点、明确文字表示错误;选中项目获得焦点时,两种线索都保留。

我把这套对应延续到整个界面,并检查去掉颜色后是否仍可辨认。重要信息不应仅靠红绿差别,这也是 W3C 色彩使用原则的要求。不可用状态要说明原因,不能只降低透明度让人猜测。

选中、焦点、选中加焦点、错误与不可用各有可辨认的文字或形状线索。
选中、焦点、选中加焦点、错误与不可用各有可辨认的文字或形状线索。

承接每次动作

状态切换时,让图标轻柔衔接

从保存变成已保存,图标与文字一起交代结果。这个交叉淡化(cross-fade)只改变两个图标的透明度,两者放在同一格里,按钮宽度与文字位置都保持固定。左侧直接替换,右侧用 150 ms 的 ease-out 衔接;按下任一示范按钮,两边会切到同一状态。

状态切换150 ms/透明度
直接替换
150 ms 淡化
静态对照:保存图标与完成图标分别说明操作前后的状态。

我偏好把这种小动态留给偶尔发生的状态转换。频繁切换的标签页、逐行出现的操作,需要更直接的反应;文字或图标本身也要能清楚表示当前状态。按压反馈沿用前面的表面明暗与阴影,内容留在原位。

动作还没走完,也能接住下一次操作

面板还没展开,手上就可能已经按下收起。可中断的过渡(interruptible transition)能从当下的位置转向新状态,连续操作时就比较连贯。下面两边的距离、200 ms 时长和缓动相同;左侧每次从指定起点重新播放,右侧由当下的位置接往新的终点。

中途转向200 ms/相同缓动
重新播放
已收起
展开
中途转向
已收起
展开
静态对照:关闭与展开两种状态,动态衔接发生在这两个位置之间。

可以在过程中快速切换,观察面板有没有突然换位。这组用 CSS transition 跟随状态;时间轴动画也能通过额外的播放控制处理中断,重点在实际操作能否接续。示范停用动态时仍保留状态文字与静态前后对照。

让进退场符合使用时机

首次呈现可以按标题、说明与操作分组,让阅读顺序稍微展开。退出时则降低位移与时间的分量,把注意力交给接下来的内容。我会把这种节奏留给适合停下来看的时刻,日常开关与重复操作保持直接。

减少动态偏好开启时,位移会收起,状态依然清楚。这两组互动都由操作触发,首次加载就停在初始状态,阅读时可以自行决定何时比较。

状态改变,辨认的线索留下来

文件从等待变成上传中,再变成完成时,我会保留文件名、位置和行的结构,只改变状态区域。同一个文件在三个阶段维持身份,读者可以直接比较变化,无须在另一张不同布局的成功卡片里重新寻找。

稳定不代表内容永远不能移动。排序会改变位置,删除会移除项目,这些操作应清楚说明原因和结果。仅仅是后台更新时,则尽量不要移动焦点或重排用户正在阅读的项目。

同一个 brief.pdf 在等待、上传中与完成阶段保持位置和文件名,只更新状态文字与图形。
同一个 brief.pdf 在等待、上传中与完成阶段保持位置和文件名,只更新状态文字与图形。

反馈的完成点,是用户能辨认当前状态,并安心接着操作。从按压到异步更新,都要保留身份、焦点与中断的线索;动态只是其中一种表达方式。