目前支持在线切换主题的组件库

如果有更多的,请在下方留言,我会后期补充。

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组件库 | 如何实现在线切换主题相关推荐

  1. HeyUI组件库 | 如何实现在线切换主题

    目前支持在线切换主题的组件库 如果有更多的,请在下方留言,我会后期补充. ant-design 目前ant-design支持的切换主题颜色是在页面最下方. 是的,如果你不仔细,你是不知道系统有这个功能 ...

  2. 蚂蚁Ant Design组件库的免费在线资源

    Ant Design(蚂蚁组件)是蚂蚁集团体验技术部经过大量项目实践和总结,逐步打磨出的一个设计系统,内含带有 React 的 UI 库.它是为企业级产品设计而创建的.Ant Design 提供了高质 ...

  3. 深入解析为什么要用前端组件库,如何用好前端组件库

    先简单自我介绍一下吧,我用的框架是angular,基于angular框架,移动端组件库用的是ionic,桌面端组件库用的是ng-zorro-antd. 我用这两个组件库大概一年半左右,下面谈一下我对组 ...

  4. 滴滴开源 Vue 组件库— cube-ui

    cube-ui 是滴滴去年底开源的一款基于 Vue.js 2.0 的移动端组件库,主要核心目标是做到体验极致.灵活性强.易扩展以及提供良好的周边生态-后编译. 自 17 年 11 月开源至今已有 5 ...

  5. 修改Kali Linux 2020.1主题颜色

    修改Kali Linux 2020.1主题颜色 Kali Linux 2020.1安装后,默认主题颜色为Kali-Dark.用户使用的图形界面工具,界面颜色也都是黑乎乎,很多人都不喜欢.这里将分别介绍 ...

  6. react ui框架_顶级React组件库推荐

    作者丨Max Rozen 译者丨王强 策划丨小智 转发链接:https://mp.weixin.qq.com/s/-vRr8Qd8DCNiza09eZjmbQ 本文最初发布于 maxrozen.com ...

  7. 可配置组件库Fusion Design 了解一下

    前不久那篇爆?的文章 阿里重磅开源中后台UI解决方案 Fusion,相信大家很多人都看过.不少同学使用过 Fusion Design. Fusion Design 整个体系还是比较庞大的.接下来笔者从 ...

  8. 6个常用的React组件库

    Ant Design 项目链接:Ant Design 包大小(来自 BundlePhobia):缩小后 1.2mB,缩小 +gzip 压缩后 349.2kB,通过摇树减少体积. 优点: AntDesi ...

  9. 前端如何修改组件库源码来封装符合自己需求的组件?

    点击上方 前端Q,关注公众号 回复加群,加入前端Q技术交流群 前端开发的同学们或许会遇到这样的问题:产品中需要实现某项功能,常用的 elementui.antd 等组件库中确实有差不多功能的组件.但实 ...

  10. 从零开始搭建一个私有前端组件库

    前言 本文的代码部分基于vue2 + ts ,最终的文件目录如下 一.让vue能够正确use组件 1.1 准备工作 首先用cli,根据自己的需求创建一个项目,然后根据自己习惯或团队的规范可以做一些项目 ...

最新文章

  1. ADAS车辆在行人安全方面得分很低
  2. 农大计算机学院姜新华,计算机学院红帽学院揭牌仪式
  3. 使用群集保障SQL Server 2005的高可用性(2)
  4. 实际开发什么场景用到线程池_线程池的具体业务场景分析
  5. 泛型中的模糊继承,解析T的意义
  6. nginx配置https以及出现的各种问题
  7. HCIE-RS面试--STP选举原理,状态机和接口角色
  8. httpclient请求配置dns绑定host
  9. mysql出现死锁场景_mysql死锁场景分析
  10. [codility]Equi-leader
  11. vba随机抽取人名不重复_excel如何实现随机抽取且不重复
  12. React Native踩坑新建的RN0.64项目无法在xcode 12.5上打开
  13. c语言仿宋gb2312字体,【仿宋gb2312字体下载】仿宋gb2312字体官方下载 免费版-七喜软件园...
  14. html 下拉框 value值,HTML Select value用法及代码示例
  15. 运营必备九大互联网思维
  16. Win10系统如何打开Guest账户?
  17. Linux 块设备层中的Multi-queue分析
  18. 刨根问底-ReentrantLock
  19. UE4Material_材质属性(1)
  20. 大学计算机网络复习题

热门文章

  1. 原创 | 职场风云 (二)试验田
  2. java值传递人体自_请大家帮帮我这个初学者
  3. 【指纹识别】基于matlab GUI指纹预处理+特征点提取【含Matlab源码 1693期】
  4. 【图像隐写】基于matlab FFT数字水印嵌入【含Matlab源码 1670期】
  5. 【语音识别】基于matlab GUI HMM 1~9数字语音识别(带面板)【含Matlab源码 1393期】
  6. 【图像边缘检测】基于matlab蚁群聚类图像边缘检测【含Matlab源码 728期】
  7. 【图像去噪】基于matlab非局部均值(NLM)滤波图像去噪【含Matlab源码 420期】
  8. java小数正负数据类型_Java - day001 - 8种基本数据类型
  9. 合振动的初相位推导_如何理解单自由度系统振动
  10. 大一计算机理论总结,大一计算机理论基础总结论文.doc