1实现原理 · 为什么它能做到
可信玻璃由四个成分合成(frost / translucency / edge of glass / depth),缺一就读成普通半透明盒子
Glass is never one property. Every panel needs all four, or it reads as a plain translucent box:
利用 backdrop-filter 的作用域语义:它只模糊元素背后的内容,所以必须压在真实杂物或渐变背景上,纯色底等于没效果
**`backdrop-filter` only blurs content that sits behind the element.** Over a flat background color it does nothing visible — glass needs a busy backdrop (image, gradient, video) to frost.
细节工艺:亮边用 masked ::before 做单向受光(而非一条平 border),并用 feTurbulence 噪点 ::after 消除重模糊下的色带
Draw a masked 1px ring with a lit corner via `::before`, and dither away gradient **banding**
液态玻璃(2026 演进口径)用 SVG 滤镜做折射:动 feTurbulence 驱动 feDisplacementMap,叠在 backdrop-filter 霜面之上
<feDisplacementMap in="SourceGraphic" in2="n" scale="22" xChannelSelector="R" yChannelSelector="G"/>
可访问性与性能是硬约束:prefers-reduced-transparency 退成实心面板、prefers-reduced-motion 停折射、无 backdrop-filter 走 @supports 兜底,且文字对比要 ≥4.5:1
**Contrast over busy backgrounds**: translucent panels over photos can drop text below WCAG.
2核心能力
3外部依赖
| Kind | Dependency / Endpoint |
|---|---|
| api | CSS backdrop-filter(Safari 需 -webkit- 前缀)与 prefers-reduced-transparency |
| api | SVG 滤镜原语 feTurbulence / feDisplacementMap(含 SMIL animate 驱动 baseFrequency) |
| network | 无第三方库、无 CDN 依赖(纯 CSS 加内联 SVG;references 的噪点是 data: URI 内联,非网络请求) |
| cli | npx / Playwright(宿主侧截图工具;SKILL.md 在 verify 段示范) |
| cli | scripts/seek-shot.sh + scripts/contact-sheet.sh + ffmpeg(仓库根打包助手,被 Packaged helper 段点名) |
4管控建议与判定依据
- 本地工作目录: 文件读写与工件输出: 本 skill 目录零写盘;交付物 1 个自包含 .html(背景图加玻璃面板加内联 SVG 滤镜),由 agent 写出
5第二遍独立确认
- [ok] backdrop-filter 只能模糊身后内容这一关键前提是否自洽 — SKILL.md 核心段与 references 第 1 节都写明该语义,并据此推出演示必须压在真实杂物背景上;验收第 1 条与之对齐(glass overlaps a real busy backdrop, not a flat color)。
- [unlocatable] prefers-reduced-transparency 的可验证性(正文把它列为必过项) — SKILL.md 要求加载 reduced-transparency 并确认实心兜底可读,但给的建议含糊(Playwright --color-scheme-style flags, or a ?reduced=1 query)——Playwright 并无该媒体特性的专用开关,?reduced=1 需自行在页面实现。全文未给可用的确定性取证命令,故该验收项在源码内不可定位为可行步骤(对比 accessible-animation 用的是真实存在的 --reduced-motion=reduce)。
- [ok] 液态玻璃滤镜的性能告诫是否与实现一致 — 正文说明 filter(不是 backdrop-filter)作用于元素自身像素,需叠在霜面之上;references 第 5 节同样表述,并给 baseFrequency/scale/dur 的调参表与只用一块 hero 的限制,前后一致。
- [discrepancy] Packaged helper 的路径基准 — SKILL.md 写 scripts/seek-shot.sh anim.html 0 1.5 3,但 scripts/ 在仓库根而非本 skill 目录,单装形态下相对路径不成立。
6结论
282f840f1bf8a217…