自定义主题

使用 Ant Design 可以 自定义主题,使用 less 样式表并覆盖自带的样式变量即可。在您自己的代码中,也可以使用这些变量。

如需自定义主题,则需要对生成的 app 做一些修改。

less 中,您需要启用废弃的 inline JavaScript,因为 Antd 重度依赖这个功能。查看 废弃的原因
  • 安装需要的依赖。注意,我们使用 react-app-rewired 来修改 webpack 的配置,这样就不需要 eject

    npm i react-app-rewired less less-loader customize-cra babel-plugin-import --save-dev
  • 在 App 根目录创建 config-overrides.js 文件,内容如下:

    const {addLessLoader, override, fixBabelImports} = require("customize-cra");
    const path = require('path');
    module.exports = override(
      fixBabelImports('import', {
          libraryName: 'antd',
          libraryDirectory: 'es',
          style: true,
      }),
      addLessLoader({
        javascriptEnabled: true,
        modifyVars: {
          'overrideTheme': `true; @import "${path.resolve(__dirname, './src/theme.less')}";`,
        },
      }),
    );

然后在 src/theme.less 内添加自己想覆盖的内容:

@primary-color: #1DA57A;

在您的代码中也可以使用 Antd 的变量:

@import "~antd/es/style/themes/default";
body {
  background: @list-header-background;
}

参阅:

  • Ant Design 网页上详细的 文档

CSS 方法论

生成的客户端代码和 CUBA React UI 都遵循 RSCSS 方法论。另外,我们也从 SMACSS 方法论 借鉴基本规则。