更新记录

1.2.4(2026-09-01)

  • 修复uniapp x 兼容问题
  • Demo 图片迁移到插件 static 目录并使用模块绝对路径,保证 Android 打包后可访问。

V1.2.0(2026-08-03)

新增

  • 色调能力:tintdark / light / clear)、tintColorintensitysoft / 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'
})

注意事项

  1. 玻璃需要背后有图片、渐变或复杂背景,纯色底效果弱。
  2. H5 光学最强;App-vue 取决于 WebView 的 backdrop-filter
  3. nvue / uni-app x App 为拟态降级,参数会映射到透明度、边框、高光与缩放,不会出现 H5 级折射。
  4. 列表、Tab、导航栏请优先 quality=1,避免多实例 SVG 滤镜拖慢页面。
  5. 导航栏窄屏建议 items ≤ 5;thumb 会按实测宽度定位。
  6. edgePreset 只调边框/高光权重,不会覆盖你传入的 opacity / tint

问题反馈

插件市场:https://ext.dcloud.net.cn/plugin?id=27813

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。