更新记录
1.0.0(2025-12-05) 下载此版本
第一次版本上传
如果对你有帮助,给点小心心
更多的兼容 我会后面慢慢测试, 第一次上传模板型插件不知道是不是这样上传
平台兼容性
uni-app(3.6.15)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | √ | - | - | - | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| √ | - | - | - | - | - | - | - | - | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | √ | √ |
双主题切换方案
只在微信小程序/vue3版本测试了, 但是这个项目主要是颜色输出, 应该是比较兼容的
开始使用
1. 在 uni.scss 引入主题
// uni.scss
@import "@/uni_modules/yy-theme/common/theme.scss";
2. 在 App.vue 引入初始化主题
// App.vue
<script>
// 这里需要引入
import themeManager from '@/uni_modules/yy-theme/common/theme-manager.js'
export default {
onLaunch() {
// 这里需要初始化
themeManager.initTheme()
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
3. 在 你的.vue文件种的 结构布局
// 页面上使用
<template>
<!-- 每个页面都需要定义 class="page-root" :class="rootClass" 虽然有些样式给到了根元素但是不定义page-root就没有主题切换动画了 -->
<view class="page-root" :class="rootClass">
<!-- 你的其他代码 -->
</view>
</template>
<script>
// 每个页面都需要引用
import themeManager from '@/uni_modules/yy-theme/common/theme-manager.js'
export default {
data() {
return {
isSwitching: false
}
},
computed: {
// 每个页面都定义
theme() {
return themeManager.state.theme
},
// 每个页面都定义
rootClass() {
return themeManager.getRootClass()
}
},
onLoad() {},
watch: {
theme(val) {
try {
uni.setStorageSync('WMA_THEME', val)
} catch (e) {}
}
},
methods: {
onThemeChange(e) {
const target = e.detail.value ? 'dark' : 'light'
themeManager.switchThemeWithAnimation(target)
},
onPrimaryClick() {},
}
}
</script>
4. 在 theme.scss 中有几个变量
修改这几个 颜色 整体主题都会变
这个函数 (
build-theme-vars()) 会生成对应的主题的颜色变量
build-theme-vars()的参数描述只讲第一个参数,其他都是下面的变量
$ns 这是 变量名的前缀,在 页面用的 时候 var(--你定义的前缀-[实际想用的颜色])
关于 [实际想用的颜色] 如果在
theme-calc.scss定义的不够 可以自己加
// 青春女主 主题色
$wma-primary: #ffb7c3;
$wma-success: #5ac8b0;
$wma-warning: #ffb86b;
$wma-danger: #ff6a88;
$wma-info: #7f9cff;
// 这里是页面的基础颜色
$wma-page-bg-light: #fff7fb; // 页面背景:很浅的粉白
$wma-card-bg-light: #ffffff; // 卡片保持纯白,内容更清晰
$wma-page-bg-dark: #120c16; // 整体背景:深紫红黑,偏女生感
$wma-card-bg-dark: #1e1524; // 卡片稍微比页面亮一点
5. 再讲一个函数 surface-by()
// surface-by()
// 在 theme-calc.scss 的 131行, 后期更新版本可能不在这一行,但是在这一个页面
// 其目的是为了给你想用其他颜色,但是又不是常用,或是后期又想加的时候
// 反正是一个可以跟随 主题的 生成 样式的那么一个函数示例
// 我这个函数就是 输入2个颜色, 生成一个卡片样式的 类似 class 的一个函数

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 225
赞赏 1
下载 11767626
赞赏 1818
赞赏
京公网安备:11010802035340号