🎉🎉 Vue3 组件库 Varlet v3.0.0 发布了!支持 Material Design 3

写在前面

经过了社区贡献者们的三个多月的努力,Varlet 的 3.0 版本终于发布了! 🎉🎉🎉,这次的版本升级主要围绕的是设计系统升级和组件视觉和交互优化。我们重构了几千个 css 变量,最终的最终,终于同时支持了 Material Design 2 和 Material Design 3 两种设计系统。同时对组件库整体做了一次重构和细节优化,又又又撇去了一些技术债务。

文档地址: varlet.gitee.io/varlet-ui/#...

github: github.com/varletjs/va...

新增 Material Design 3 支持

Varlet 3.0 以前,我们以 Material Design 2 作为默认的设计系统,并且提供了暗黑模式的主题包。3.0 之后我们依然以 md2 为默认 ^_^,提供了对 Material Design 3 的支持。(md3 真的很出色,作者个人真的超爱)。

新增更多通用 css 变量,更易定制

为了使组件样式定制更加容易,并且支持 Material Design 33.x 版本对组件库的样式变量进行了一次大重构,新增了一些基础样式变量,每个组件都动了刀子。

text 复制代码
 `--color-on-primary`                
 `--color-on-info`                   
 `--color-on-success`                
 `--color-on-warning`                
 `--color-on-danger`                 
 `--color-primary-container`         
 `--color-info-container`            
 `--color-success-container`         
 `--color-warning-container`         
 `--color-danger-container`          
 `--color-on-primary-container`      
 `--color-on-info-container`         
 `--color-on-success-container`      
 `--color-on-warning-container`      
 `--color-on-danger-container`       
 `--color-outline`                   
 `--color-surface-container`        
 `--color-surface-container-low`     
 `--color-surface-container-high`    
 `--color-surface-container-highest` 
 `--color-inverse-surface`           
 `--color-on-surface-variant`

unplugin-vue-components resolver 独立为 @varlet/import-resolver

由于 unplugin-vue-components 内置的组件库 resolver 过于的多了,维护压力不小,antfu 推荐自行维护 resolver。趁这次 3.0 更新顺便也就独立了,按需引入方式有如下变化,原本 unplugin-vue-components 的 varlet resolver 也依然可以继续使用,但是建议迁移到 @varlet/import-resolver

js 复制代码
import vue from '@vitejs/plugin-vue' 
import components from 'unplugin-vue-components/vite' 
import autoImport from 'unplugin-auto-import/vite' 
import { VarletImportResolver } from '@varlet/import-resolver' 
import { defineConfig } from 'vite' 

export default defineConfig({ 
  plugins: [ 
    vue(), 
    components({ resolvers: [VarletImportResolver()] }), 
    autoImport({ resolvers: [VarletImportResolver({ autoImport: true })] }) 
  ] 
})

支持运行时转换主题包尺寸单位

为了满足移动端的适配需要,我们支持了运行时转换主题包 css 单位的能力。默认采用 375px -> 100vmin 的转换规则

js 复制代码
import { Themes } from '@varlet/ui' 

const viewportTheme = Themes.toViewport(Themes.md3Dark)

也可以对规则进行修改,比如。。。

js 复制代码
import { Themes } from '@varlet/ui' 

const viewportTheme = Themes.toViewport(Themes.md3Dark, { 
  // 默认值为 375 
  viewportWidth: 750, 
  // 默认值为 'vmin' 
  viewportUnit: 'vw', 
  // 默认值为 6 
  unitPrecision: 4, 
})

功能移除

  • DatePicker 组件移除了对 headerColor 属性的兼容
  • TimePicker 组件移除了对 headerColor 属性的兼容
  • ImagePreview 组件移除了对 current 属性的兼容
  • Chip 组件移除了对 closable 属性的兼容
  • Progress 组件移除了对 ripple 属性的兼容
  • IndexBar 组件移除了对 cssMode 属性的兼容
  • LoadingBar 组件移除了对 mergeConfig 方法的兼容

2.x 版本状态

随着 3.x 的发布,varlet 2.x 原则上也将进入只修 bug 不再提供新特性的状态。2.x 的文档迁移至 varlet.gitee.io/varlet-ui/v...

最后的最后

开源不易,尤其是在如今这个浮躁的时代。作者已经开发 varlet ui 三年了,恍惚间竟然是发的第三个大版本了,十分感慨时间过的如此之快,我们一起继续努力。同时非常感谢社区对我们的帮助和支持。以及下面这些无私奉献的 contributor 们。

相关推荐
甜兒.24 分钟前
鸿蒙小技巧
前端·华为·typescript·harmonyos
她似晚风般温柔7893 小时前
Uniapp + Vue3 + Vite +Uview + Pinia 分商家实现购物车功能(最新附源码保姆级)
开发语言·javascript·uni-app
Jiaberrr4 小时前
前端实战:使用JS和Canvas实现运算图形验证码(uniapp、微信小程序同样可用)
前端·javascript·vue.js·微信小程序·uni-app
everyStudy4 小时前
JS中判断字符串中是否包含指定字符
开发语言·前端·javascript
城南云小白4 小时前
web基础+http协议+httpd详细配置
前端·网络协议·http
前端小趴菜、4 小时前
Web Worker 简单使用
前端
web_learning_3214 小时前
信息收集常用指令
前端·搜索引擎
Ylucius4 小时前
动态语言? 静态语言? ------区别何在?java,js,c,c++,python分给是静态or动态语言?
java·c语言·javascript·c++·python·学习
tabzzz4 小时前
Webpack 概念速通:从入门到掌握构建工具的精髓
前端·webpack
LvManBa5 小时前
Vue学习记录之六(组件实战及BEM框架了解)
vue.js·学习·rust