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

简介: 教程来源 http://lemci.cn WeUI 基于 CSS 自定义属性构建完整主题变量系统,涵盖颜色、字体、间距、圆角、阴影、动画等维度,支持明/暗双模式自动切换,命名规范统一(--weui-{category}-{name}),无需修改源码即可高效定制品牌风格。

六、CSS 变量系统详解

6.1 CSS 变量体系概述
WeUI 使用 CSS 自定义属性实现了完整的主题变量体系,覆盖了颜色、字体、间距、圆角、阴影等所有视觉维度。这套变量体系让开发者可以在不修改 WeUI 源码的情况下,轻松定制应用的主题风格。

变量命名规范:--weui-{category}-{name}

category:变量类别(如 COLOR、BG、FG、BORDER 等)

name:变量名称(如 BRAND、RED、GREEN 等)

6.2 完整的颜色变量
WeUI 的颜色变量分为品牌色、功能色、中性色三大类:

:root {
    /* ========== 品牌色 ========== */
    --weui-BRAND: #07C160;           /* 品牌主色(微信绿) */
    --weui-BRAND-LIGHT: #E6F9EF;     /* 品牌色浅色背景 */
    --weui-BRAND-DARK: #06AD56;      /* 品牌色深色(悬停状态)*/
    --weui-BRAND-DISABLED: rgba(7, 193, 96, 0.5);  /* 禁用状态品牌色 */

    /* ========== 功能色 ========== */
    --weui-RED: #FA5151;             /* 错误/危险色 */
    --weui-ORANGE: #FA9D3B;          /* 橙色(警告) */
    --weui-YELLOW: #FFC300;          /* 黄色(提示) */
    --weui-GREEN: #91D300;           /* 绿色(成功) */
    --weui-LIGHTGREEN: #95EC69;      /* 浅绿色 */
    --weui-BLUE: #10AEFF;            /* 蓝色(信息) */
    --weui-LIGHTBLUE: #1482EE;       /* 浅蓝色 */
    --weui-PURPLE: #818DFF;          /* 紫色 */
    --weui-WHITE: #FFFFFF;           /* 白色 */
    --weui-BLACK: #000000;           /* 黑色 */

    /* ========== 背景色 ========== */
    --weui-BG-0: #EDEDED;            /* 主背景色(页面底色) */
    --weui-BG-1: #F7F7F7;            /* 次级背景色 */
    --weui-BG-2: #FFFFFF;            /* 卡片/模块背景色 */
    --weui-BG-3: #F7F7F7;            /* 输入框背景色 */
    --weui-BG-4: #4C4C4C;            /* 蒙层背景色 */
    --weui-BG-5: #FFFFFF;            /* 弹窗背景色 */

    /* ========== 前景色/文字色 ========== */
    --weui-FG-0: rgba(0, 0, 0, 0.9);      /* 主要文字色 */
    --weui-FG-1: rgba(0, 0, 0, 0.5);      /* 次要文字色 */
    --weui-FG-2: rgba(0, 0, 0, 0.3);      /* 辅助/占位文字色 */
    --weui-FG-3: rgba(0, 0, 0, 0.1);      /* 分割线颜色 */
    --weui-FG-4: rgba(0, 0, 0, 0.15);     /* 更浅的分割线 */
    --weui-FG-5: rgba(0, 0, 0, 0.05);     /* 极浅背景 */

    /* ========== 链接色 ========== */
    --weui-LINK: #576B95;            /* 链接文字颜色 */
    --weui-LINK-ACTIVE: #354163;     /* 链接激活颜色 */

    /* ========== 标签背景色 ========== */
    --weui-TAG-BACKGROUND-BLACK: rgba(0, 0, 0, 0.05);
    --weui-TAG-BACKGROUND-GREEN: rgba(7, 193, 96, 0.1);
    --weui-TAG-BACKGROUND-RED: rgba(250, 81, 81, 0.1);
    --weui-TAG-BACKGROUND-ORANGE: rgba(250, 157, 59, 0.1);
    --weui-TAG-BACKGROUND-BLUE: rgba(16, 174, 255, 0.1);
    --weui-TAG-BACKGROUND-PURPLE: rgba(129, 141, 255, 0.1);
}

6.3 暗色模式变量
WeUI 在暗色模式下会自动切换这些变量:

[data-weui-theme='dark'] {
    /* 暗色模式下的背景色 */
    --weui-BG-0: #111111;
    --weui-BG-1: #1E1E1E;
    --weui-BG-2: #191919;
    --weui-BG-3: #404040;
    --weui-BG-4: #4C4C4C;
    --weui-BG-5: #2C2C2C;

    /* 暗色模式下的文字色 */
    --weui-FG-0: rgba(255, 255, 255, 0.8);
    --weui-FG-1: rgba(255, 255, 255, 0.5);
    --weui-FG-2: rgba(255, 255, 255, 0.3);
    --weui-FG-3: rgba(255, 255, 255, 0.1);
    --weui-FG-4: rgba(255, 255, 255, 0.15);
    --weui-FG-5: rgba(255, 255, 255, 0.05);

    /* 暗色模式下的链接色 */
    --weui-LINK: #7D90A9;
}

6.4 字体与排版变量

:root {
    /* 字体家族 */
    --weui-FONT-FAMILY: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, 
                        "Helvetica Neue", Arial, sans-serif;

    /* 字体大小 */
    --weui-FONT-SIZE-0: 10px;     /* 极小字号 */
    --weui-FONT-SIZE-1: 12px;     /* 辅助字号 */
    --weui-FONT-SIZE-2: 14px;     /* 正文字号(默认) */
    --weui-FONT-SIZE-3: 16px;     /* 小标题字号 */
    --weui-FONT-SIZE-4: 18px;     /* 中标题字号 */
    --weui-FONT-SIZE-5: 20px;     /* 大标题字号 */
    --weui-FONT-SIZE-6: 24px;     /* 超大标题字号 */
    --weui-FONT-SIZE-7: 28px;     /* 特大标题字号 */
    --weui-FONT-SIZE-8: 34px;     /* 超大标题字号:用于欢迎页 */
    --weui-FONT-SIZE-9: 40px;     /* 最大标题字号:用于空状态页 */

    /* 行高 */
    --weui-LINE-HEIGHT-0: 1.2;    /* 紧凑行高 */
    --weui-LINE-HEIGHT-1: 1.4;    /* 正常行高(默认) */
    --weui-LINE-HEIGHT-2: 1.6;    /* 宽松行高 */
}

6.5 间距与尺寸变量

:root {
    /* 基础间距单位(基于 8px 网格系统) */
    --weui-SPACING-0: 0px;        /* 0 */
    --weui-SPACING-1: 4px;        /* 0.25rem */
    --weui-SPACING-2: 8px;        /* 0.5rem */
    --weui-SPACING-3: 12px;       /* 0.75rem */
    --weui-SPACING-4: 16px;       /* 1rem */
    --weui-SPACING-5: 20px;       /* 1.25rem */
    --weui-SPACING-6: 24px;       /* 1.5rem */
    --weui-SPACING-7: 32px;       /* 2rem */
    --weui-SPACING-8: 40px;       /* 2.5rem */
    --weui-SPACING-9: 48px;       /* 3rem */
    --weui-SPACING-10: 56px;      /* 3.5rem */
    --weui-SPACING-11: 64px;      /* 4rem */

    /* 组件高度 */
    --weui-HEIGHT-BUTTON: 44px;          /* 按钮高度(最小触摸区域) */
    --weui-HEIGHT-INPUT: 44px;           /* 输入框高度 */
    --weui-HEIGHT-NAVBAR: 60px;          /* 顶部导航栏高度 */
    --weui-HEIGHT-TABBAR: 50px;          /* 底部 TabBar 高度 */
    --weui-HEIGHT-CELL: 56px;            /* 列表项高度 */

    /* 宽度 */
    --weui-WIDTH-ICON: 24px;             /* 图标宽度 */
    --weui-WIDTH-ICON-LARGE: 32px;       /* 大图标宽度 */
}

6.6 圆角与阴影变量

:root {
    /* 圆角 */
    --weui-BORDER-RADIUS-0: 0px;         /* 无圆角 */
    --weui-BORDER-RADIUS-1: 4px;         /* 小圆角(按钮等) */
    --weui-BORDER-RADIUS-2: 8px;         /* 中圆角(卡片等) */
    --weui-BORDER-RADIUS-3: 12px;        /* 大圆角(对话框等) */
    --weui-BORDER-RADIUS-4: 16px;        /* 超大圆角 */
    --weui-BORDER-RADIUS-5: 20px;        /* 极大圆角 */
    --weui-BORDER-RADIUS-CIRCLE: 50%;    /* 圆形 */

    /* 阴影 */
    --weui-BOX-SHADOW-0: none;                                 /* 无阴影 */
    --weui-BOX-SHADOW-1: 0 1px 4px rgba(0, 0, 0, 0.05);       /* 轻微阴影 */
    --weui-BOX-SHADOW-2: 0 2px 8px rgba(0, 0, 0, 0.08);       /* 中等阴影 */
    --weui-BOX-SHADOW-3: 0 4px 16px rgba(0, 0, 0, 0.1);       /* 较强阴影 */
    --weui-BOX-SHADOW-4: 0 8px 24px rgba(0, 0, 0, 0.12);      /* 强阴影 */
    --weui-BOX-SHADOW-5: 0 12px 32px rgba(0, 0, 0, 0.15);     /* 最强阴影 */
}

6.7 动画与过渡变量

:root {
    /* 过渡时长 */
    --weui-TRANSITION-DURATION-0: 0ms;          /* 无过渡 */
    --weui-TRANSITION-DURATION-1: 150ms;        /* 快速( hover/focus 反馈) */
    --weui-TRANSITION-DURATION-2: 300ms;        /* 中速(面板展开/收起) */
    --weui-TRANSITION-DURATION-3: 450ms;        /* 慢速(页面切换) */
    --weui-TRANSITION-DURATION-4: 600ms;        /* 特慢(复杂动画) */

    /* 过渡缓动函数 */
    --weui-EASING-EASE: cubic-bezier(0.25, 0.1, 0.25, 1);           /* 标准缓动 */
    --weui-EASING-EASE-IN: cubic-bezier(0.42, 0, 1, 1);              /* 加速缓动 */
    --weui-EASING-EASE-OUT: cubic-bezier(0, 0, 0.58, 1);             /* 减速缓动 */
    --weui-EASING-EASE-IN-OUT: cubic-bezier(0.42, 0, 0.58, 1);       /* 先加速后减速 */
    --weui-EASING-SPRING: cubic-bezier(0.18, 0.89, 0.32, 1.28);      /* 弹簧效果 */
}

6.8 自定义主题完整示例
通过覆盖 CSS 变量,你可以快速创建品牌主题:

/* custom-theme.css */
:root {
    /* 品牌色定制(改为紫色主题) */
    --weui-BRAND: #7C3AED;
    --weui-BRAND-LIGHT: #EDE9FE;
    --weui-BRAND-DARK: #6D28D9;
    --weui-LINK: #7C3AED;
    --weui-LINK-ACTIVE: #5B21B6;

    /* 功能色微调 */
    --weui-BLUE: #3B82F6;
    --weui-GREEN: #10B981;
    --weui-RED: #EF4444;
    --weui-ORANGE: #F97316;

    /* 圆角增大(更现代的风格) */
    --weui-BORDER-RADIUS-1: 8px;
    --weui-BORDER-RADIUS-2: 12px;
    --weui-BORDER-RADIUS-3: 16px;
    --weui-BORDER-RADIUS-4: 20px;

    /* 阴影加强 */
    --weui-BOX-SHADOW-2: 0 4px 12px rgba(0, 0, 0, 0.1);
    --weui-BOX-SHADOW-3: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* 暗色主题定制 */
[data-weui-theme='dark'] {
    --weui-BRAND: #8B5CF6;
    --weui-BRAND-LIGHT: #2D1B4E;
    --weui-BRAND-DARK: #6D28D9;
    --weui-LINK: #8B5CF6;

    /* 暗色模式下的背景色微调 */
    --weui-BG-0: #0F0F1A;
    --weui-BG-1: #1A1A2E;
    --weui-BG-2: #16213E;
}

来源:
http://xcfsr.cn

相关文章
|
6月前
|
运维 监控 关系型数据库
主从复制监控三板斧:PMM + pt-heartbeat + 自带命令,让故障无处遁形
本文聚焦MySQL主从复制的**实战监控与故障排查**:详解PMM(可视化)、pt-heartbeat(命令行延迟检测)及原生命令`SHOW SLAVE STATUS`三大工具用法,并附防火墙、binlog格式、read_only等高频避坑指南,助力运维稳如泰山!
|
6月前
|
人工智能 自然语言处理 语音技术
盘点 7 款文本转语音工具:从免费朗读到可控情绪合成
参考社区里关于免费文本转语音工具的盘点思路,整理 Edge TTS、TTSMaker、Luvvoice、FlowSpeech、Fish Audio、ChatTTS、EmotiVoice 7 类 TTS 工具的适用场景,并从脚本验证、创作者旁白、情绪控制、开源实验和素材管理角度给出选型建议。
|
7月前
|
存储 人工智能 安全
意图共鸣科技:AI记忆链的盲存——你的记忆,只有你能打开
你和AI的对话,平台真能“看不见”吗?意图共鸣科技推出“盲存”技术:数据本地加密后上传,密钥仅用户持有,云端仅存密文。平台变“数据保管员”,无法访问明文,隐私由架构保障而非承诺。用户完全掌控记忆——可查、可导、可删,跨设备同步同样安全。
545 16
|
7月前
|
存储 运维 监控
互成软件终端智能告警体系(SIEM)设计与实施:从多源采集到多渠道通知的闭环方案
互成软件终端智能告警体系,覆盖违规外联、设备使用、安全风险、硬件/软件/配置/磁盘/性能等八大风险维度;支持动态模板通知、邮件短信双通道触达、多级关联聚合与降噪,并兼顾合规隐私。实现从事件检测到闭环处置的全链路安全运营。(239字)
|
7月前
|
人工智能 移动开发 小程序
2026年在线教育系统发展趋势:多端融合与源码化部署成主流
2026年在线教育行业正在从流量竞争转向系统能力竞争,多端融合、在线教育系统源码部署、AI能力嵌入与私域运营整合成为核心趋势。本文从教育培训系统开发视角,解析Web端、APP、小程序一体化架构,以及私有化部署为何成为主流选择,为机构搭建网校平台和选择在线教育系统提供趋势参考。
|
6月前
|
弹性计算 数据库 数据安全/隐私保护
SaaS系统技术实践,架构设计及应用场景
本文深入解析SaaS系统的技术实践(多租户隔离、微服务、自动化运维、安全合规)、分层架构设计(基础设施至前端五层)及典型应用场景(CRM、HRM、电商、政务、教育等),兼顾理论深度与落地可行性,助力构建高可用、可扩展、低成本的云原生SaaS系统。(239字)
847 7
|
6月前
|
人工智能 弹性计算 双11
2026年阿里云最新优惠券领取与使用攻略:企业补贴优惠券、学生无门槛优惠券、百炼先用后返券
2026年阿里云优惠券体系覆盖企业、学生、AI开发者三大核心场景。企业用户可申请迁云补贴和出海扶持(最高10万元),需通过官网活动页或商务经理办理;高校学生完成认证即可领取300元无门槛券,有效期1年,适用于全量公共云产品;百炼大模型用户参与按量达标返券,满20返20、满100返100、满200返200,有效降低AI开发成本。此外还有AI焕新季满减礼包、618/双11阶梯满减等不定期推出的优惠券。善用阿里云优惠券,结合身份精准领券,可实现上云与AI创新成本最优。
|
6月前
|
安全 程序员 API
初级程序员必备的十大技能之规范编码与团队协作(二)
教程来源 http://oplhc.cn/ 本指南系统梳理代码审查(Code Review)核心实践:涵盖PR规范、多维检查清单(功能/质量/性能/安全/测试/文档)、建设性评论技巧、健康协作心态,以及README、代码注释、CHANGELOG等文档编写标准,助力团队高效交付高质量、可维护、安全的代码。
|
6月前
|
存储 缓存 安全
企业如何搭建安全内部通讯平台
企业日常协作中,文件乱传、组织裸奔、离职账号残留等安全盲区隐患重重。真正安全的内部IM需具备私有化部署、端到端加密、组织隔离、全生命周期账号管控四大能力,让数据自主可控、权限边界清晰、审计可溯可管。
|
6月前
|
弹性计算 运维 云计算
阿里云服务器ECS是什么?一张图看懂ECS组成、使用场景、优势及功能详细介绍
阿里云ECS(弹性计算服务)是高性能、高可靠的IaaS云服务器,免采购硬件,即开即用、弹性伸缩。类比“租房”,阿里云代运维机房,用户按需租用、随时释放,降本增效。助力企业快速部署与业务扩展。云服务器ECS官网链接:https://t.aliyun.com/U/AZBUsA
388 3