定制皮肤
场景描述
满足业务和品牌上多样化的视觉需求,包括但不限于全局样式(主色、圆角、边框)和指定组件的视觉定制
实现思路
antd 的样式使用了 Less 作为开发语言,并定义了一系列全局/组件的样式变量,可以根据需求进行相应调整。所有样式变量可以在 这里 找到。
实现步骤
下面以修改全局主色、按钮组件的样式为例说明
1 写less文件
定义一个名为antd-theme.less的文件,文件可以包括两部分内容:变量和样式定义,如下所示。
//公共变量
@primary-color: #0081cc;
@primary-5: #00AAFF;
@primary-color-hover:#00AAFF;
@primary-color-active:#00AAFF;
@border-radius-base: 2px;
@border-color-base: rgba(0, 0, 0, 0.15);
@disabled-bg: rgba(0, 0, 0, 0.04);
@background-color-base:rgba(0, 0, 0, 0.04);
@disabled-color: rgba(0, 0, 0, 0.25);
@text-color: rgba(0, 0, 0, 0.85);
@item-hover-bg: rgba(0, 162, 255, 0.1);
@border-color-split: rgba(0, 0, 0, 0.15);
//Button
@btn-disable-border: transparent;
@btn-border-radius-base: 4px;
.ant-btn {
padding: 4px 16px;;
}
.ant-btn.ant-btn-icon-only{
padding: 2.4px 0;
}
.ant-btn-sm{
padding: 0 7px;
}
.ant-btn:hover {
color: #00AAFF;
border-color: #00AAFF;
}
.ant-btn.ant-btn-primary:hover {
color: #ffffff;
border-color: #00AAFF;
background: #00AAFF;
}
.ant-btn.ant-btn-link:hover {
color: #00AAFF;
border-color: transparent;
}
.ant-btn.ant-btn-primary.ant-btn-dangerous:hover {
color: #fff;
border-color: #ff7875;
background: #ff7875;
}
.ant-btn.ant-btn-dangerous:hover {
color: #ff7875;
border-color: #ff7875;
background: #fff;
}
2 生成css文件
在资源管理器中打开本地ide的\newdao-ide-windows\tools\uix-web\scripts\antd目录,将antd-theme.less文件复制到这个目录下,执行目录中的theme.bat,在当前目录下生成antd-theme.css文件,内容如下图所示。
- 通过import引用css时,需要使用:global{}包围,如下图所示
- 通过require引用css时,不需要使用:global{}包围,如上图所示
3 引用css文件
在js中引用css文件,使样式生效。
- 使用本地ide,将antd-theme.css文件复制到UI2/pcx目录下
- 使用云ide,将antd-theme.css文件上传到UI2/pcx目录下
在云ide中上传文件的做法是,切换到企业桌面端,点击文件右侧的上传图标,打开上传文件对话框,拖动文件完成上传
上传后,可看到上传的文件
打开UI2/pcx/app.js(即文件目录下的app.js),在app.js文件中添加下面的代码引用antd-theme.css文件。注意使用的是import的方式引用,css文件需要使用:global{}包围。
import './pcx/antd.theme.css';
使样式生效,需要在我的开发中,重启应用
4 预览查看效果
添加一个页面,放3个按钮,分别设置为主按钮,默认按钮和链接按钮。
预览查看效果,按钮的主色已经改变。
5 应用于门户
上面介绍的方法是单独访问应用时,皮肤生效的做法。如果要在从门户运行时生效,需要下面的做法。
定制企业门户,打开企业门户的ide,按照3的做法引用css文件。
发布门户应用。从门户运行效果如下图所示。