前端组件库 ——WeUI 知识点大全(三)

简介: 教程来源 http://htnus.cn WeUI全面支持iOS 13+暗色模式,基于CSS自定义属性实现主题动态切换,提供系统跟随、手动控制及小程序适配方案,并支持品牌色定制与性能优化。

四、暗色模式适配

随着 iOS 13 引入暗色模式,微信也全面支持了暗色主题。WeUI 提供了完善的暗色模式适配方案。

4.1 暗色模式原理
WeUI 使用 CSS 自定义属性(CSS Variables)来实现动态主题切换。明色主题和暗色主题分别定义了一套颜色变量:

/* 明色主题变量 */
:root,
page {
    --weui-BRAND: #07C160;
    --weui-RED: #FA5151;
    --weui-BG-0: #EDEDED;
    --weui-BG-1: #F7F7F7;
    --weui-BG-2: #FFFFFF;
    --weui-FG-0: rgba(0, 0, 0, .9);
    --weui-FG-1: rgba(0, 0, 0, .5);
    --weui-FG-2: rgba(0, 0, 0, .3);
}

/* 暗色主题变量 */
[data-weui-theme='dark'] {
    --weui-BRAND: #07C160;
    --weui-RED: #FA5151;
    --weui-BG-0: #111111;
    --weui-BG-1: #1E1E1E;
    --weui-BG-2: #191919;
    --weui-FG-0: rgba(255, 255, 255, .8);
    --weui-FG-1: rgba(255, 255, 255, .5);
    --weui-FG-2: rgba(255, 255, 255, .3);
}

4.2 启用暗色模式
方式一:跟随系统

在页面根元素上不设置特定的 data-weui-theme 属性,WeUI 会自动检测系统主题设置。

方式二:手动控制

通过 JavaScript 动态设置主题:

// 切换为暗色主题
document.documentElement.setAttribute('data-weui-theme', 'dark');

// 切换为明色主题
document.documentElement.setAttribute('data-weui-theme', 'light');

// 跟随系统
document.documentElement.removeAttribute('data-weui-theme');

// 切换函数
function toggleTheme() {
    const isDark = document.documentElement.getAttribute('data-weui-theme') === 'dark';
    if (isDark) {
        document.documentElement.setAttribute('data-weui-theme', 'light');
    } else {
        document.documentElement.setAttribute('data-weui-theme', 'dark');
    }
}

方式三:在小程序中启用

// app.json
{
    "darkmode": true,
    "themeLocation": "theme.json"
}

4.3 自定义暗色主题
如果需要定制暗色主题的品牌色,可以覆盖相应的 CSS 变量:

/* 自定义主题 */
:root {
    --weui-BRAND: #0052D9;  /* 品牌色 */
}

[data-weui-theme='dark'] {
    --weui-BRAND: #4582E6;  /* 暗色模式下的品牌色 */
    --weui-BG-0: #000000;
    --weui-BG-1: #1A1A1A;
    --weui-BG-2: #242424;
}

五、性能优化与最佳实践

5.1 按需引入
WeUI 全量引入的 CSS 文件可能超过 100KB,对于小程序或移动端 Web 应用,按需引入可以显著减小包体积。

按需引入的关键原则:

只引入实际使用的组件样式:不要全量导入 weui.css,而是只导入需要的组件样式

注意组件依赖:某些组件(如对话框)可能依赖按钮、遮罩等子组件样式,需要一并引入

使用构建工具优化:利用 Webpack 等工具的 Tree Shaking 功能自动移除未使用的 CSS

CSS 按需引入示例:

/* 只引入按钮和对话框组件 */
@import 'weui/packages/weui-button/weui-button.css';
@import 'weui/packages/weui-dialog/weui-dialog.css';

5.2 小程序扩展库优化
在小程序中使用 useExtendedLib 方式引入 WeUI 是最优方案:

{
    "useExtendedLib": {
        "weui": true
    }
}

image.png
5.3 CSS 动画性能优化
WeUI 的动画效果(如 Toast 淡入淡出、Dialog 弹出)使用了 CSS3 过渡和变换,这些属性可以利用 GPU 加速:

/* 使用 transform 代替 left/top 实现动画 */
.weui-dialog {
    transform: translateY(-50%) scale(0.9);
    transition: transform 0.3s ease;
}

.weui-dialog.weui-dialog_show {
    transform: translateY(-50%) scale(1);
}

5.4 图片资源优化
WeUI 中的图标建议使用以下方式优化:

使用字体图标:WeUI 内置了图标字体,避免图片请求

图标合并:多个图标合并为雪碧图,减少 HTTP 请求

懒加载:对于非首屏图片,使用懒加载技术

使用 SVG:对于需要高清显示的图标,使用 SVG 格式

5.5 移动端触摸优化

/* 增大触摸区域 */
.weui-btn {
    min-height: 44px;  /* 移动端最小触摸区域 */
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* 禁用点击高亮 */
* {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

/* 滚动优化 */
.weui-scroll-view {
    -webkit-overflow-scrolling: touch;
}

来源:
http://unbgv.cn

相关文章
|
10天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23445 10
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
14天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
4761 15
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
15天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
5720 13
|
1月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
24902 65
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
3天前
|
前端开发 API 内存技术
对比claude code等编程cli工具与deepseek v4的适配情况
DeepSeek V4发布后,多家编程工具因未适配其强制要求的`reasoning_content`字段而报错。本文对比Claude Code、GitHub Copilot、Langcli、OpenCode及DeepSeek-TUI等主流工具的兼容性:Claude Code需按官方方式配置;Langcli表现最佳,开箱即用且无报错;Copilot与OpenCode暂未修复问题;DeepSeek-TUI尚处早期阶段。
771 2
对比claude code等编程cli工具与deepseek v4的适配情况