chrome77 和 ios13 开始支持黑暗模式;
想要的效果:

  • 想要在项目中,某些组件或页面使用暗黑模式风格
  • 让所有的支持 theme 切换的组件(比如 Layout)默认从全局配置里面设置,
  • 局部优先级高于全局;

实际开发中:

  • 局部 dark暗黑模式,antd 暂时不支持。
  • 这样会导致 antd打包会非常大,而且黑色主题是需要开发者适配,这个工作量还是蛮大的

antd 4x dark theme

https://github.com/ant-design/ant-design-dark-theme
https://ant.design/docs/react/customize-theme-cn#%E5%AE%98%E6%96%B9%E4%B8%BB%E9%A2%98-%F0%9F%8C%88
image.png

webpack.config.js 配置 darkTheme

在 webpack.config.js 使用 less-loader 按需引入

  1. const { getThemeVariables } = require('antd/dist/theme');
  2. // webpack.config.js
  3. module.exports = {
  4. rules: [{
  5. test: /\.less$/,
  6. use: [{
  7. loader: 'style-loader',
  8. }, {
  9. loader: 'css-loader', // translates CSS into CommonJS
  10. }, {
  11. loader: 'less-loader', // compiles Less to CSS
  12. + options: {
  13. + lessOptions: { // 如果使用less-loader@5,请移除 lessOptions 这一级直接配置选项。
  14. + modifyVars: getThemeVariables({
  15. + dark: true, // 开启暗黑模式
  16. + compact: true, // 开启紧凑模式
  17. + }),
  18. + javascriptEnabled: true,
  19. + },
  20. + },
  21. }],
  22. }],
  23. };