组件/GlassSurface 玻璃拟态

GlassSurface 玻璃拟态

折射背后内容的玻璃容器

已验证自 0.3.4

用法

基础

示例加载中...

参数调节

示例加载中...

最佳实践

  • 只在插画、图片或渐变背景需要折射感时使用;普通卡片用 TxBaseSurface 或 TxCard。
  • 覆盖滚动内容或图片时,显式设置 width、height 与 borderRadius。
  • 对照真实背景调 blur、backgroundOpacity、saturation,避免背后的文字不可读。
  • 大幅 distortionScale 或较宽的通道偏移只用于 hero 或预览表面,不用于密集表单。
  • 重要控件放进默认插槽。

API 参考

属性

属性名类型默认值说明
width表面宽度;数字按 px,字符串原样使用。
height表面高度;数字按 px,字符串原样使用。
borderRadius外层圆角(px),也用于位移图。
borderWidth位移图遮罩的边缘尺寸倍率。
brightness位移图内层遮罩的亮度百分比。
opacity位移图内层遮罩的透明度。
blur位移图遮罩的模糊半径,也是 backdrop-filter 降级路径的模糊。
displaceRGB 位移图混合后的最终模糊(feGaussianBlur.stdDeviation)。
backgroundOpacitySVG 滤镜路径上的背景透明度。
saturationSVG 滤镜路径上的饱和度。
distortionScale红、绿、蓝三张位移图的基础位移量。
redOffset叠加到 distortionScale 上的红色偏移。
greenOffset叠加到 distortionScale 上的绿色偏移。
blueOffset叠加到 distortionScale 上的蓝色偏移。
xChannel三张位移图的 X 轴取色通道。
yChannel三张位移图的 Y 轴取色通道。
mixBlendMode生成位移图时蓝色渐变的混合模式。

插槽

插槽名参数说明
default-面板内容,在 .tx-glass-surface__content 中居中,位于滤镜层之上。

概述

  • 按能力依次选择渲染路径:支持 backdrop-filter: url() 时用 SVG 位移折射;否则用 blur() 毛玻璃;仍不支持时退为半透明背景加边框。
  • Safari、Firefox、SSR 与没有 CSS.supports 的环境不走折射路径;降级路径保留尺寸、圆角与可读性,但没有 RGB 折射。
  • 位移图按实测尺寸生成,容器尺寸或光学参数变化时重算。
  • 生成的 SVG 只做装饰,不可交互,位于内容层之下。

技术实现

  • 三个 feDisplacementMap 分别位移红、绿、蓝通道后合成,形成色散折射。
  • 源码:packages/tuffex/packages/components/src/glass-surface/。
查看源码
packages/tuffex/packages/components/src/glass-surface/index.ts