照片的边缘并不均匀:亮部可能融进背景,暗部又形成过重的轮廓。头像重叠后,还多了照片之间的交界。
我先处理单张图片的收口,再决定群组宽度、分隔与入口。外圈和内缘各有工作,不能靠加粗同一条线同时解决。
本文由原篇重编并扩充。样例数值代表当时条件,并非所有界面的固定规格;系列背景与工具入口见 总论。
图片与交界
把一道淡轮廓覆在图片里
图片靠近外缘的内容,可能一边接近白色,另一边又很深。放进面板时,亮部容易与底色融在一起,暗部则自己形成一条强边。我喜欢用一道内缩轮廓(inset outline)把这些不同分量的边缘稍微收住。
这里把 1 px、10% 不透明度的纯黑轮廓叠在图片内侧,尺寸、裁切与圆角都不变。轮廓会与原本的像素叠合,亮部的变化比较容易看见;它交代的是图片的收口,外面仍可另外安排容器。

换到暗色容器,试样改用相同宽度与透明度的纯白轮廓,让靠边暗部有很薄的交界。两张图里使用相同的原创图像,方便把注意力留在边缘。

图片本身用 R12,周围 8 px 的底由 R20 容器包住。内缩轮廓画在已经裁好的图片里,不占额外空间;外部容器的间距则照原来的排版计算。这种处理比较适合有完整矩形边界的照片、截图和图像。透明标志与不规则插画,可以让原有轮廓保留呼吸空间。
头像与入口
头像重叠,先看省下多少空间
多位参与者放在一起,可以排开,也可以局部重叠。头像群组(avatar group)交代有哪些人,头像堆叠(avatar stack)则用重叠缩短整组占用的宽度。我会在紧密的信息行里使用堆叠;需要逐一辨认每张脸时,分开排列与姓名可以留更多空间。
这组用三张原创虚构人像比较:圆形框体都是 32 px,左侧相邻间距 6 px,右侧重叠 8 px。照片、裁切、图片内缘与 2 px 外侧分隔圈全部固定,两组也从展示区域里的相同位置开始,垂直中心一致。

三颗的布局宽度因此从 108 px 缩到 80 px。外侧分隔圈不占布局空间,但会在左右两端各多画 2 px,所以绘制范围分别是 112 px 与 84 px。这些数字限于本图的三颗等尺寸圆形与无实体边框配置,放进容器时仍要留意外圈是否被裁掉。
暗色版本沿用相同排列,只让边缘配合所在表面。这是用来拆解排列的概念对照;最后工作区本来就使用堆叠,仍维持 22 px 头像与 5 px 重叠,没有为了示范把整列撑大。

外侧分隔与图片内缘,各做一件事
重叠之后,两张照片容易在交界处黏成一块。外侧的分隔圈(separation ring)用所在表面的不透明颜色,遮开交叠的位置,留出可辨认的空隙。它不负责垫高头像;我会让这圈空隙融回承载面,交叠处仍看得出各自的圆弧。
这也是分隔圈需要跟着状态改变的原因。白色卡片、已选中的数据行与暗色表面,底色各不相同;固定白圈放到暗面,就会多出一圈不属于背景的亮边。碰到透明或图案背景,单一颜色无法还原下面的内容,需要真正的遮罩挖空,或改成不重叠排列。这组操作试样在图案底选择排开。
照片内侧则沿用前面的内缩轮廓,用图片内缘线(image inner stroke)修整照片本身。下方两组固定同样的堆叠与外圈,亮色只比较有无 1 px、10% 纯黑内缘。细线覆在已裁好的照片上方,没有缩小图片,也没有把外圈加粗。

暗色的内缘对照改用 1 px、8% 白色。这里用圆形容器上的装饰层覆到照片前方;直接把内阴影放在不透明图片背后,未必能看到同样的效果。我喜欢让这条线只在靠近边缘时被察觉,中央的脸和裁切维持原样。

人数多时,留下可用的入口
可见头像和真实人数也要分开安排。这组原型预留四个位置,七人时显示三颗加 +4,四人时就是四颗;照片加载失败,缩写或默认图形仍占相同尺寸。数字与图片都不应让圆形忽然变大。
需要查看完整名单时,我会让整组头像开启参与者清单,让姓名在有空间的地方读清楚。重叠的小圆形若各自扩成点击范围,容易盖住彼此;清单里再安排分开的操作行,键盘开启、关闭与焦点返回也比较明确。可以在操作试样切换表面、排列、人数与图片失败状态,分别观察外圈和内缘的工作。
图片内缘负责收口,外圈负责分隔,溢出入口负责让人找得到完整名单。把这三件事分开检查,才能在群组变长或背景改变时,保留辨识与操作所需的空间。
