定制皮肤

场景描述

满足业务和品牌上多样化的视觉需求,包括但不限于全局样式(主色、圆角、边框)和指定组件的视觉定制

实现思路

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文件。

发布门户应用。从门户运行效果如下图所示。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""