在线切换主题颜色无效_HeyUI组件库 | 如何实现在线切换主题
目前支持在线切换主题的组件库
如果有更多的,请在下方留言,我会后期补充。
ant-design
目前ant-design支持的切换主题颜色是在页面最下方。
是的,如果你不仔细,你是不知道系统有这个功能的,而ant-design是使用js直接编译的。
然后这里要吐槽一个点,随便切换什么颜色都很卡,因为没有确认按钮,所以随便调一个小颜色,也会去重新渲染,值得改进....
ant-design使用的less,和HeyUI是一致的,并且也提供全局less变量定义功能,和Hey-Cli的globalVars也是差不多的功能。
至于具体实现,我在后面细说。
Element
其实饿了么的切换主题色的功能是很明显的,就在主页上方位置。
切换颜色的交互我要狠狠的夸赞一番,有确认按钮,切换顺畅,一比较立竿见影。
然后饿了么使用的是scss,其实都差不多的,因为主要功能大致都是差不多的。
HeyUI
HeyUI组件库是在11月刚刚把切换主题的功能上线的。
当然,系统中配置主题,我们一直是支持的,只是一直没有尝试实现官网切换主题的功能。
基于官网上次的改版,有人建议把下面四个颜色块当做切换主题色的入口,我觉得挺好,于是抽空来实现了一下。
戳我去官网试试
实现方案
首先,ant-design是js渲染的,element是需要后端服务的,考虑到我想要的效果,我觉得改成固定4个主题方案,这样就可以免了后端的服务以及前端渲染的卡顿。
关于HeyUI切换主题的方案有两套,由于需要直接转换成css,所以选择第二套方案:替换var.less中的变量定义。
具体参考文档:更换主题
@import (less) "~heyui/themes/var.less";
//重新定义主题
@primary-color: #FDA729;
@red-color: #D64244;
@green-color: #3cb357;
@yellow-color: #EAC12C;
@blue-color: #77A2DC;
@import (less) "~heyui/themes/common.less";//使用这种方式引用,可以在自己的less文件中使用var.less定义的变量。
@import (less) "自己的less文件";
开发步骤
1、提取系统的less文件
官网系统之前只有一套主题,所以官网系统只有一个独立的doc.less文件。
现在要生成4套主题,所以系统的样式需要独立出来。
- doc.less
- index.less
- var.less
index.less作为系统默认的主题,doc.less是系统中定义的样式。
2、定义四套主题
如下所示,在doc中新建themes文件夹,保存四套主题。
主题的大致内容就是定义样式变量,引用系统中的less文件。
以yellow中的index.less为例:
@import (less) "../../../themes/var.less";// Color
@primary-color : #b6cf4d;
@link-color : @primary-color;
@blue-color : #356ba8; //info
@green-color : #378c2b; //success
@yellow-color : #aa9f30; //warn
@red-color : #8c2b3a; //error@input-height: 32px;@import (less) "../../../themes/common.less";
@import (less) "../../css/doc.less";
3、生成四套主题css文件
由于四套主题都是需要异步加载的,所以需要先编译成css文件。
这一点和ant-design以及element不一样,他们都是使用后端实时生成css文件,但是大致的逻辑是一致的。
新建命令文件gencss.sh,并且执行:
lessc ./doc/themes/yellow/index.less>./doc/themes/yellow/index.css -x -rp=https://cdn.jsdelivr.net/npm/heyui/themes/fonts/
lessc ./doc/themes/red/index.less>./doc/themes/red/index.css -x -rp=https://cdn.jsdelivr.net/npm/heyui/themes/fonts/
lessc ./doc/themes/pink/index.less>./doc/themes/pink/index.css -x -rp=https://cdn.jsdelivr.net/npm/heyui/themes/fonts/
lessc ./doc/themes/lavender/index.less>./doc/themes/lavender/index.css -x -rp=https://cdn.jsdelivr.net/npm/heyui/themes/fonts/
4、Js调用切换css调用
在首页的方法中添加css的调用方法。
dynamicLoadCss(type) {let old = document.getElementById('loadcss');var head = document.getElementsByTagName('head')[0];var link = document.createElement('link');link.type='text/css';link.rel = 'stylesheet';link.href = `/themes/${type}/index.css`;link.id = 'loadcss';head.appendChild(link);// delete old linkif(old) {head.removeChild(old);}
}
至此,在线切换主题色的开发就完成了。
HeyUI
其实在10月份,HeyUI也完成走马灯与穿梭框的开发。
如果感兴趣,也可以去看看:
- Carousel 走马灯
- Transfer 穿梭框
或许你还对HeyUI不熟悉,欢迎去我们的github参观:
https://github.com/heyui/heyui
当然,star的行为也是极其鼓励的 。
下周,我们将计划开发HeyUI的Admin系统,尽请期待。
在线切换主题颜色无效_HeyUI组件库 | 如何实现在线切换主题相关推荐
- HeyUI组件库 | 如何实现在线切换主题
目前支持在线切换主题的组件库 如果有更多的,请在下方留言,我会后期补充. ant-design 目前ant-design支持的切换主题颜色是在页面最下方. 是的,如果你不仔细,你是不知道系统有这个功能 ...
- 蚂蚁Ant Design组件库的免费在线资源
Ant Design(蚂蚁组件)是蚂蚁集团体验技术部经过大量项目实践和总结,逐步打磨出的一个设计系统,内含带有 React 的 UI 库.它是为企业级产品设计而创建的.Ant Design 提供了高质 ...
- 深入解析为什么要用前端组件库,如何用好前端组件库
先简单自我介绍一下吧,我用的框架是angular,基于angular框架,移动端组件库用的是ionic,桌面端组件库用的是ng-zorro-antd. 我用这两个组件库大概一年半左右,下面谈一下我对组 ...
- 滴滴开源 Vue 组件库— cube-ui
cube-ui 是滴滴去年底开源的一款基于 Vue.js 2.0 的移动端组件库,主要核心目标是做到体验极致.灵活性强.易扩展以及提供良好的周边生态-后编译. 自 17 年 11 月开源至今已有 5 ...
- 修改Kali Linux 2020.1主题颜色
修改Kali Linux 2020.1主题颜色 Kali Linux 2020.1安装后,默认主题颜色为Kali-Dark.用户使用的图形界面工具,界面颜色也都是黑乎乎,很多人都不喜欢.这里将分别介绍 ...
- react ui框架_顶级React组件库推荐
作者丨Max Rozen 译者丨王强 策划丨小智 转发链接:https://mp.weixin.qq.com/s/-vRr8Qd8DCNiza09eZjmbQ 本文最初发布于 maxrozen.com ...
- 可配置组件库Fusion Design 了解一下
前不久那篇爆?的文章 阿里重磅开源中后台UI解决方案 Fusion,相信大家很多人都看过.不少同学使用过 Fusion Design. Fusion Design 整个体系还是比较庞大的.接下来笔者从 ...
- 6个常用的React组件库
Ant Design 项目链接:Ant Design 包大小(来自 BundlePhobia):缩小后 1.2mB,缩小 +gzip 压缩后 349.2kB,通过摇树减少体积. 优点: AntDesi ...
- 前端如何修改组件库源码来封装符合自己需求的组件?
点击上方 前端Q,关注公众号 回复加群,加入前端Q技术交流群 前端开发的同学们或许会遇到这样的问题:产品中需要实现某项功能,常用的 elementui.antd 等组件库中确实有差不多功能的组件.但实 ...
- 从零开始搭建一个私有前端组件库
前言 本文的代码部分基于vue2 + ts ,最终的文件目录如下 一.让vue能够正确use组件 1.1 准备工作 首先用cli,根据自己的需求创建一个项目,然后根据自己习惯或团队的规范可以做一些项目 ...
最新文章
- ADAS车辆在行人安全方面得分很低
- 农大计算机学院姜新华,计算机学院红帽学院揭牌仪式
- 使用群集保障SQL Server 2005的高可用性(2)
- 实际开发什么场景用到线程池_线程池的具体业务场景分析
- 泛型中的模糊继承,解析T的意义
- nginx配置https以及出现的各种问题
- HCIE-RS面试--STP选举原理,状态机和接口角色
- httpclient请求配置dns绑定host
- mysql出现死锁场景_mysql死锁场景分析
- [codility]Equi-leader
- vba随机抽取人名不重复_excel如何实现随机抽取且不重复
- React Native踩坑新建的RN0.64项目无法在xcode 12.5上打开
- c语言仿宋gb2312字体,【仿宋gb2312字体下载】仿宋gb2312字体官方下载 免费版-七喜软件园...
- html 下拉框 value值,HTML Select value用法及代码示例
- 运营必备九大互联网思维
- Win10系统如何打开Guest账户?
- Linux 块设备层中的Multi-queue分析
- 刨根问底-ReentrantLock
- UE4Material_材质属性(1)
- 大学计算机网络复习题
热门文章
- 原创 | 职场风云 (二)试验田
- java值传递人体自_请大家帮帮我这个初学者
- 【指纹识别】基于matlab GUI指纹预处理+特征点提取【含Matlab源码 1693期】
- 【图像隐写】基于matlab FFT数字水印嵌入【含Matlab源码 1670期】
- 【语音识别】基于matlab GUI HMM 1~9数字语音识别(带面板)【含Matlab源码 1393期】
- 【图像边缘检测】基于matlab蚁群聚类图像边缘检测【含Matlab源码 728期】
- 【图像去噪】基于matlab非局部均值(NLM)滤波图像去噪【含Matlab源码 420期】
- java小数正负数据类型_Java - day001 - 8种基本数据类型
- 合振动的初相位推导_如何理解单自由度系统振动
- 大一计算机理论总结,大一计算机理论基础总结论文.doc