双峰高光:让 iPhone 用户晕眩的物理
Apple Liquid Glass 最反直觉的视觉特征:玻璃边缘的高光不在单一方向,而是 *左上 + 右下* 同时亮。这条对角线被 iPhone 用户大面积投诉"晕眩"、"icons look crooked"。但它不是 bug——它是 Apple 故意采用的"分层玻璃"光学模型。
一个被很多人投诉为 bug 的特性
iOS 26 发布后,AppleInsider、Android Authority、MacRumors 在两周内先后报道同一件事:很多用户看 Home Screen 上的 app icon 时感到晕眩、说图标"看起来在歪斜"。
Android Authority 的标题是 "Liquid Glass optical illusion is giving iOS users vertigo"。MacRumors 的标题是 "Liquid Glass Design Makes App Icons Look Crooked"。
这不是渲染 bug。这是 Apple 设计选择的副作用。
单光源,双高光
普通设计语言里,玻璃/凸面元素的高光来自一个虚拟光源,所以高光在一个方向。比如 Aqua 时代 Mac 的按钮——光从左上来,所以高光在左上、阴影在右下,方向一致。
Liquid Glass 不是这样。它的虚拟光源在 -45° / -139°(左上方向,Icon Composer 里有这两个 dev preset),但高光出现在左上和右下两个对角位置。
Since icons are made from glass layers, the light can pass through and affect the opposite edge—so the bottom right corner will also be illuminated alongside the top left.
— AppleInsider, 2025-09-17
意思是:Apple 把 Liquid Glass 当成一块有厚度、有分层的真实玻璃来渲染。光从左上射入玻璃顶面,穿过分层后从对角的底面 / 右下面射出。所以同一束光产生两个 rim: - 315° (左上) — entry rim:光进入玻璃,bezel 弯曲,亮 - 135° (右下) — exit rim:光从分层底部射出,bezel 弯曲,也亮 - 45° (右上) / 225° (左下):垂直于光轴,暗谷
为什么这让人晕眩
人眼对深度的判读依赖单方向高光。当一个圆形物体左上亮、右下暗时,大脑解读为"凸的、灯在左上";左上暗、右下亮时,大脑解读为"凹的、灯在左上"。这个机制非常稳定,所有 photoreal 渲染、所有按钮拟物都依赖它。
Apple 选了两个对角同时亮——这破坏了大脑的深度算法,因为没有任何"单一光源 + 不透光物体"能产生这种 pattern。大脑要么把它解读为"两个光源"(不对,因为没有阴影方向匹配),要么解读为"扭曲的几何"——后者就是用户报告的"icons look crooked"。
这与一种古老的视错觉同构:Café Wall Illusion(咖啡馆墙错觉)—— 当亮暗块在错误的轴线上对称时,人眼会感觉本来平行的线在倾斜。Liquid Glass 把这种错觉嵌进了每一块磁贴的边缘里。
这是 bug 还是 feature
按 Apple 的解释:feature。它要的就是"这是一种从未存在过的、有内部结构的玻璃"。如果用真物理(单方向高光、阴影方向匹配),就和 macOS Aqua 没有本质区别——那个 Apple 在 2014 年就放弃了。
iOS 26.1 在 Settings → Display & Brightness 引入了 Liquid Glass 的 Clear / Tinted 外观选择(Tinted 更不透明、对比度更高)。Reduce Transparency 是长期存在的 Accessibility 选项,不是 26.x 新增——但开启后会进一步强化 Tinted 的可读性。这是对争议的妥协,但没有改双高光——双高光还在,只是没那么刺眼。说明 Apple 在内部把这个 pattern 当核心识别,不愿意让步。
Web 上怎么复刻这个
我写这个 Playground 时绕了几圈才理解:
1. 第一版:四段 inset box-shadow(上/下/左/右),均匀分布——平均主义,错。 2. 第二版:单向 conic-gradient(315° 亮 → 135° 暗)——单光源单方向,普通玻璃逻辑,对应 Aqua / Vista Aero 时代的拟物,错。 3. 第三版:双峰 conic-gradient(315° 和 135° 都是 alpha 1.0,45° 和 225° 是暗谷)——对了。
这套规律应用到所有 glass 面板:playground 玻璃元素、inspector、scene 卡片、entry-card。CSS 实现:
.glass-edge::before {
content: '';
position: absolute; inset: 0;
padding: 1.5px;
background: conic-gradient(from 0deg,
rgba(255,255,255,0.50) 0deg, /* top */
rgba(255,255,255,0.18) 45deg, /* UR — 暗谷 */
rgba(255,255,255,0.30) 90deg,
rgba(255,255,255,0.95) 135deg, /* BR — exit rim 亮峰 */
rgba(255,255,255,0.50) 180deg,
rgba(255,255,255,0.18) 225deg, /* BL — 暗谷 */
rgba(255,255,255,0.30) 270deg,
rgba(255,255,255,1.00) 315deg, /* UL — entry rim 亮峰 */
rgba(255,255,255,0.50) 360deg);
-webkit-mask:
linear-gradient(#000 0 0) content-box,
linear-gradient(#000 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
}
mask-composite: exclude 把中间镂空,只留 1.5px 的 ring。conic-gradient 在 ring 上沿圆周做亮度的连续函数,两个亮峰相距 180°——和 Apple 的 entry/exit rim 几何完全对应。
一个旁证
反过来想:如果我把双峰改回单峰(只在 315° 亮、135° 黑),玻璃看起来是什么感觉?答案:像 macOS Aqua 时代的塑料按钮——非常 2008 年的视觉。
这恰好说明双高光不是炫技,而是和过去切割的标记。Apple 选择了一种打破物理直觉的视觉,因为他们要的是"这是新东西",而不是"这是更精致的旧东西"。