更新记录
1.2.4(2026-09-01)
- 修复uniapp x 兼容问题
- Demo 图片迁移到插件
static 目录并使用模块绝对路径,保证 Android 打包后可访问。
V1.2.0(2026-08-03)
新增
- 色调能力:
tint(dark / light / clear)、tintColor、intensity(soft / medium / strong)。
- 光学参数:
refractiveIndex / glassThickness / bezelWidth / specularOpacity / specularSaturation / specularAngle / quality。
- Q 弹交互:
scalable / scaleMultiplier / scaleDuration / easingType="spring",并支持 springStiffness / springDamping。
- 导航栏组件:
lf-glass-navbar(Vue)、lf-glass-navbar-x(uni-app x)、lf-glass-navbar.nvue;支持图片 icon。
- 平台适配:
- H5 / App-vue:
lf-glass.vue(完整光学 + 弹簧)
- nvue:
lf-glass.nvue(拟态降级,同 API)
- uni-app x:
lf-glass-x.uvue(渐进增强)
- 事件:
ready / error。
修复
- 修复
edgePreset 写死背景色导致 opacity 失效的问题;edgePreset 只调整边框与高光权重。
- 修复导航栏均分场景下 thumb 定位偏移;改为测量真实 item 宽度定位。
优化
- tint / 边光 / 阴影改为 CSS 变量驱动,观感更接近透明液态玻璃。
- App 端同步尝试
backdrop-filter / -webkit-backdrop-filter。
quality 性能档:1 关折射与 specular,2 默认,3 高品质;导航栏默认 quality=1。
- 导航栏 thumb 改为轻量高光层,避免嵌套第二套完整玻璃。
- 弹簧参数可由
scaleDuration 自动推导。
- H5 优先 ResizeObserver 更新滤镜尺寸。
- Demo 增加本地渐变兜底,避免外网图失败时空白。
兼容说明
- 全平台保持统一 props / 事件口径。
- 光学折射与 SVG 滤镜以 H5 最完整;App-vue 保留 backdrop-filter + 高光层;nvue / uni-app x App 为稳定拟态降级,不保证与 H5 像素级一致。
V1.0.1(2026-04-28)
- Vue3
script setup 改为 Options API,兼容 uni-app Vue2 / Vue3 项目。
- 新增对 App-Vue Android / iOS / 鸿蒙端的降级兼容支持。
- H5 端保留背景模糊、SVG 折射、色散和高光增强效果。
- App 端自动降级为深色玻璃底、左右高光、边框、阴影和按压反馈效果。
- 优化小标签场景显示效果,增强左右白色高光和边缘轮廓。
- 优化深色玻璃底透明度、背景压暗、阴影和面高光效果,使视觉更接近液态玻璃质感。
- 优化 App 端文字垂直居中兼容方式,推荐使用
text 标签并设置固定 line-height。
- 新增支持 slot 内容。
查看更多
平台兼容性
uni-app(5.07)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| - |
√ |
√ |
√ |
√ |
√ |
√ |
- |
- |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| - |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-app x(5.07)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| √ |
√ |
√ |
- |
- |
- |
LF Glass 液态玻璃
插件地址:https://ext.dcloud.net.cn/plugin?id=27813
翎赋 lf-glass:透明液态玻璃组件 + 玻璃导航栏。
统一 API,按平台渐进增强:H5 最完整,App-vue 次之,uni-app x / nvue 稳定拟态降级。
当前版本:1.2.2
组件选择
| 场景 |
uni-app Vue |
uni-app x |
nvue |
| 玻璃容器 |
lf-glass |
lf-glass-x |
lf-glass(同目录 .nvue 自动适配) |
| 玻璃导航栏 |
lf-glass-navbar |
lf-glass-navbar-x |
lf-glass-navbar(同目录 .nvue) |
平台兼容
图例:√ 已验证;u 未充分验证;- 本版不支持。视觉按端渐进增强,不是像素级同渲染。
| 运行时 / 端 |
状态 |
说明 |
| Vue3 |
√ |
|
| Vue2 |
- |
本版不支持 |
| H5 |
√ |
backdrop-filter + SVG 折射色散 + 弹簧 |
| Android App-vue |
√ |
视 WebView 的 backdrop-filter |
| iOS App-vue |
u |
同套 Vue,本仓库未单独真机回归 |
| nvue |
√ |
拟态降级(半透明 + 边光 + 缩放),无 SVG 滤镜 |
| uni-app x App / Web |
√ |
lf-glass-x 拟态 / 模糊渐进增强 |
| uni-app x 鸿蒙 / 微信 |
- |
未适配 |
| 小程序 |
- |
本版不支持(无完整 SVG filter) |
| 鸿蒙 App |
- |
未适配 |
特性
- 色调:
tint / tintColor / intensity
- 光学:折射率、厚度、bezel、高光角度/饱和度、色散
- Q 弹:弹簧缩放(
easingType="spring"),可由 scaleDuration 推导手感
- 性能档:
quality 1/2/3,列表场景建议 1
- 导航栏:轻量 thumb + 真实宽度定位,支持文字/图片 icon
- 事件:
ready / error / click
- 无第三方依赖
安装
将插件放入:
uni_modules/lf-glass
开启 easycom / uni_modules 自动扫描后可直接使用组件标签。也可手动引入:
import LfGlass from '@/uni_modules/lf-glass/components/lf-glass/lf-glass.vue'
import LfGlassNavbar from '@/uni_modules/lf-glass/components/lf-glass-navbar/lf-glass-navbar.vue'
快速上手
<lf-glass
size="card"
tint="clear"
intensity="medium"
:radius="24"
:quality="2"
:refractive-index="1.35"
:glass-thickness="160"
:bezel-width="20"
:specular-angle="60"
:scale-multiplier="1.12"
:scale-duration="380"
easing-type="spring"
>
<view>液态玻璃</view>
</lf-glass>
导航栏
<lf-glass-navbar
v-model="current"
:items="items"
:height="60"
:quality="1"
tint="dark"
/>
const current = ref(0)
const items = [
{ id: 'home', label: '首页' },
{ id: 'list', label: '发现', icon: '/static/tab/list.png' },
{ id: 'mine', label: '我的', icon: '我' }
]
icon 支持:
- 图片:
http(s)://、/ 本地路径、data:image、常见图片后缀
- 其他字符串:按文本图标渲染
uni-app x
<lf-glass-x tint="dark" intensity="medium" :radius="20" :quality="1">
<text>Glass X</text>
</lf-glass-x>
lf-glass Props
基础
| 属性 |
类型 |
默认 |
说明 |
| size |
String |
tag |
tag / card / panel |
| tint |
String |
dark |
dark / light / clear |
| tintColor |
String |
'' |
自定义底色(#hex / rgb / rgba) |
| intensity |
String |
medium |
soft / medium / strong;未传 blur/opacity 时生效 |
| radius |
Number |
12 |
圆角,单位 rpx |
| blur |
Number |
— |
显式模糊,优先于 intensity |
| opacity |
Number |
— |
显式透明度,优先于 intensity |
| blurEnable |
Boolean |
true |
是否启用背景模糊 |
| saturation |
Number |
150 |
背景饱和度 |
| edgePreset |
String |
auto |
auto / light / dark(只调边光,不覆盖 opacity) |
| backgroundColor |
String |
'' |
直接指定背景 |
| width / height |
Number / String |
— |
可选尺寸 |
| lClass |
String |
'' |
根节点额外 class |
光学
| 属性 |
类型 |
默认 |
说明 |
| distortion |
Boolean |
true |
H5 SVG 折射开关(仍受 quality 约束) |
| refractiveIndex |
Number |
1.3 |
折射率 |
| glassThickness |
Number |
120 |
玻璃厚度感 |
| bezelWidth |
Number |
18 |
内沿 bezel |
| specularOpacity |
Number |
0.85 |
高光强度 |
| specularSaturation |
Number |
16 |
高光饱和 |
| specularAngle |
Number |
60 |
高光角度 |
| quality |
Number |
2 |
性能档:1 兼容省电 / 2 默认 / 3 高品质 |
| displacementScale |
Number |
7 |
基础位移 |
| aberrationIntensity |
Number |
0.7 |
色散 |
| baseFrequency |
Number |
0.009 |
SVG 噪声频率(H5) |
| numOctaves |
Number |
2 |
SVG 噪声层数(H5) |
| seed |
Number |
8 |
SVG 噪声种子(H5) |
quality 说明:
| 值 |
行为 |
建议场景 |
1 |
关闭 SVG 折射与 specular |
导航栏、列表、弱设备 |
2 |
默认光学 |
普通卡片 |
3 |
更高位移与高光 |
H5 焦点展示 |
Q 弹
| 属性 |
类型 |
默认 |
说明 |
| pressable |
Boolean |
true |
按压反馈 |
| scalable |
Boolean |
true |
允许缩放 |
| scaleMultiplier |
Number |
1.08 |
抬起过冲倍率 |
| scaleDuration |
Number |
420 |
动画时长;spring 时用于推导刚度/阻尼 |
| springStiffness |
Number |
— |
可选,覆盖推导刚度 |
| springDamping |
Number |
— |
可选,覆盖推导阻尼 |
| easingType |
String |
spring |
spring / ease |
| activeScale |
Number |
0.97 |
按下缩放 |
| disabled |
Boolean |
false |
禁用 |
lf-glass-navbar Props
| 属性 |
类型 |
默认 |
说明 |
| modelValue |
Number |
0 |
当前索引(v-model) |
| items |
Array |
[] |
{ id, label, icon? } |
| height |
Number |
64 |
高度,单位 px |
| itemWidth |
Number |
0 |
项宽;0 为均分 |
| thumbHeight |
Number |
52 |
高亮块高度 |
| alwaysShowGlass |
Boolean |
true |
是否始终显示 thumb |
| quality |
Number |
1 |
外壳玻璃性能档,默认省电 |
| tint / tintColor / intensity / radius |
— |
— |
透传外壳玻璃参数 |
| blur / opacity / edgePreset / distortion |
— |
— |
透传外壳玻璃参数 |
| refractiveIndex / glassThickness / bezelWidth |
— |
— |
透传光学参数 |
| specularOpacity / specularAngle |
— |
— |
透传高光参数 |
| iconSize |
Number / String |
20 |
图标大小 |
| iconColor / iconColorActive |
String |
— |
文字图标颜色 |
| fontSize |
Number / String |
12 |
文字大小 |
| textColor / textColorActive |
String |
— |
文字颜色 |
| gap |
Number / String |
4 |
图标与文字间距 |
| disabled |
Boolean |
false |
禁用 |
| lClass |
String |
'' |
根节点额外 class |
Events
| 事件 |
组件 |
说明 |
| click |
lf-glass |
点击玻璃 |
| ready |
lf-glass |
初始化完成,返回 { platform, quality, distortion, blurEnable } |
| error |
lf-glass |
滤镜/尺寸测量异常 |
| update:modelValue |
lf-glass-navbar |
选中变化(v-model) |
| change |
lf-glass-navbar |
选中变化 |
| input |
lf-glass-navbar |
Vue2 兼容选中变化 |
Demo
在 pages.json 顶层 pages 添加:
{
"path": "uni_modules/lf-glass/pages/demo/demo",
"style": {
"navigationBarTitleText": "LF Glass",
"navigationBarBackgroundColor": "#0b1218",
"navigationBarTextStyle": "white"
}
}
跳转:
uni.navigateTo({
url: '/uni_modules/lf-glass/pages/demo/demo'
})
注意事项
- 玻璃需要背后有图片、渐变或复杂背景,纯色底效果弱。
- H5 光学最强;App-vue 取决于 WebView 的
backdrop-filter。
- nvue / uni-app x App 为拟态降级,参数会映射到透明度、边框、高光与缩放,不会出现 H5 级折射。
- 列表、Tab、导航栏请优先
quality=1,避免多实例 SVG 滤镜拖慢页面。
- 导航栏窄屏建议
items ≤ 5;thumb 会按实测宽度定位。
edgePreset 只调边框/高光权重,不会覆盖你传入的 opacity / tint。
问题反馈
插件市场:https://ext.dcloud.net.cn/plugin?id=27813