前端组件库 ——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

相关文章
|
1月前
|
人工智能 Shell API
Claude Code 企业落地观察:近两天更新暴露的 MCP、代理、权限和模型网关问题
Claude Code 在 2026 年 5 月 8 日至 5 月 9 日连续更新,修复了 MCP OAuth、VS Code、Plan mode、代理链路和 Windows/WSL 体验问题。对企业团队来说,重点不是安装,而是治理。
351 1
社区供稿 | 一张照片跳舞的AnimateAnyone社区开发者复刻版,开源!
日前,兵马俑跳科目三、奶牛猫跳洗澡舞等趣味和魔性的短视频在社交媒体上出圈,背后“一张照片来跳舞”的技术来自阿里通义实验室在可控动画生成领域的一项研究工作——AnimateAnyone。
|
1天前
|
人工智能 数据可视化 测试技术
【阿里云官方】可视化操作搭建OpenClaw免编程教程
阿里云官方推出的OpenClaw智能助理平台,基于通义千问大模型深度定制,覆盖超级助理、内容创作、股票分析、一人团队、开发助手、海外运营六大场景,支持零代码快速部署,助力开发者高效成长。
|
1天前
|
人工智能
从AI工具到AI智能体,行业正在发生什么变化?
近两年AI迅猛发展,正从“问答工具”升级为具备自动规划、工具调用与多步执行能力的“AI智能体”。它赋能个体,催生OPC(一人公司)与OPD(一人部门),放大个人生产力。行业焦点转向“交付能力”——连接AI、流程、商业目标并创造真实价值。人才培育也正从学知识转向造结果。(239字)
|
2月前
|
存储 数据采集 分布式计算
数据仓库是什么?数据仓库和大数据平台、数据湖、数据中台、湖仓一体有什么区别?
本文厘清数据仓库、大数据平台、数据湖、数据中台、湖仓一体五大核心概念的本质区别与适用场景,破除术语混淆误区。从架构定位、数据类型、建模方式、技术演进到典型优劣,逐一剖析,助你精准选型、科学设计、自信汇报。
|
23天前
|
程序员 开发工具 git
初级程序员必备的十大技能之规范编码与团队协作(三)
教程来源 http://qcycj.cn/ 本节系统阐述高效团队协作核心实践:从精准提问、高效会议、知识共享到冲突化解,并配套自动化工具链(Prettier/ESLint/Husky/Commitlint/GitHub Actions),全面提升研发协同质量与工程规范性。
|
2月前
|
人工智能 JSON 决策智能
AI Agent 深潜:六大核心模块的设计本质与 Java 实现
AI Agent不是大模型API的简单封装,而是具备自主决策、闭环执行与迭代优化能力的完整智能系统。其核心由六大协同模块构成:规划(任务调度中枢)、记忆(经验沉淀载体)、工具使用(外部交互触手)、行动(落地执行手脚)、反思(自我迭代大脑)和多智能体协作(团队协同体系),共同支撑复杂任务的端到端可靠执行。
388 4
|
2月前
|
消息中间件 负载均衡 API
【微服务】微服务通信模式:同步(REST/gRPC)、异步(消息队列)
本文系统梳理微服务通信全体系:涵盖同步(REST/gRPC)与异步(消息队列)两大范式,深入解析原理、选型对比、治理实践及演进趋势,助你构建高可靠、松耦合、可观测的分布式通信架构。
|
2月前
|
数据采集 自然语言处理 安全
《ClawHub深度实测:10个能让你电脑自己打工的神级技能》
本文纠正了将QClaw等同于普通聊天机器人的普遍误区,指出其核心价值在于可无限拓展的技能生态系统。作者耗时三个月全面实测ClawHub上两百余个热门技能,经过至少两周日常使用验证,最终筛选出10个真正能改变工作方式的实用技能,覆盖安全防护、信息获取、文件管理、办公自动化、开发协作、个人理财与知识管理等全场景。文章结合真实使用体验,详细介绍了每个技能的核心功能与实际效果,没有华而不实的噱头,旨在帮助读者从繁琐的重复劳动中解放出来,大幅提升工作与生活效率。
316 2
|
2月前
|
人工智能 运维 监控
告别自研踩坑:Java 技术栈 AI 转型的务实路径
本文剖析Java企业AI落地的四大痛点:自研不稳定、存量系统改造难、生态割裂、模型管理混乱,并提出“不换栈、不重构、低风险、控成本”转型原则。介绍JBoltAI框架如何通过标准化架构、SpringBoot原生集成、统一AI网关和工程化支撑,助力Java团队高效、稳健实现AI规模化落地。(239字)
127 5