F3.06.1elevation shadow设计研究

阴影表达元素的层叠关系

别名: 投射阴影 · z-depth · 层叠高度

概念解释

对话框盖在列表上,列表里的卡片又盖在页面底上。人怎么知道谁在上面?浅色界面里,靠的往往不是更粗的描边,而是投下的影子在说高度:影子越散、越往外,对象离底越远,z 方向的层叠(z-depth / elevation)就被读出来。去掉这些影子,三个面在同一张纸上,点击目标会从「浮着的那一层」变成「哪一块看起来都能点」。阴影在这里是层叠的图示,不是把卡片画得更精致。

机制

视觉系统把附着在对象边缘、向某一侧铺开的变暗解释成遮挡光之后的本影和半影。半影宽度编码距离:贴着底的对象几乎没有半影,抬起的对象半影变宽、变淡。这是绘画性深度线索,和透视、遮挡一起工作。界面里没有真的灯,只要在对象下方或外侧画出符合这套物理的变暗,知觉就会恢复「这块比那块高」。描边和填充对比也能分开区域,但它们说的是「这是不同的块」,不说「这块压在那块上」。层叠关系一旦要表达模态挡住了底层、或浮动按钮压过列表,缺了高度线索,遮挡只能靠对象重叠的那一条边来猜。

怎么研究

同一层叠结构做有影 / 无影 / 用描边代替影 三种稿,问「哪一块可以拖、哪一块是挡住内容的」。自变量是高度线索类型,因变量是层叠判断正确率、以及误把底层控件当成可点的次数。也可以测主观高度排序:给若干卡片,只改影子扩散,看排序是否随扩散单调上升。若无影条件下层叠正确率掉到接近猜测,阴影就是在承担 z 轴,而不是装饰。

边界

对象已经大幅重叠(抽屉盖住 80% 的列表)时,遮挡本身足够,影子是重复编码。完全平的信息图、打印稿没有「可交互的层」,再画高度会造成「能掀开」的错误预期。深色底上变暗几乎没余地,这套机制会失效,要换通道,不能靠把影子加深到发黑斑。运动中的对象如果影子不跟着走,高度阅读会在位移时崩溃。

怎么落地

  • 给产品里真正存在的层写高度:页面底、可滚动内容、浮动操作、模态。每层用不同扩散的影子,不要所有卡片共用一档「漂亮的软影」。
  • 不表达层叠的装饰块不要加投影,避免被读成可拖、可点、可关掉的一层。
  • 模态必须在底层上投下比卡片更强的高度差(通常还要加一层变暗的幕),否则它会被看成一张大卡片而不是挡住交互的层。
  • 验证:用样式开关关掉所有投影,只留原有描边与填充。请人标出「现在还分得清谁压着谁」。凡是标不出的那一对,就是阴影在独力表达层叠的地方,不能删;凡是仍分得清的,影子是重复的,可减。

延伸

  • 同组F3.06.2 高度层级需要一致的光源假设 · F3.06.3 深色背景下阴影几乎不可见
  • 相邻F2.08.2 卡片边框与阴影消耗大量空间 · F5.08 深色模式下的层级 · F7.07 动效表达空间关系
  • 站内检索elevation · z-depth · drop shadow · pictorial depth

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/F3.06.1