themeColor.js 1.0 KB

123456789101112131415161718192021222324252627
  1. const client = require('webpack-theme-color-replacer/client')
  2. export default {
  3. primaryColor: '#1890ff',
  4. getAntdSerials (color) {
  5. // 淡化(即less的tint)
  6. var lightens = new Array(9).fill().map((t, i) => {
  7. return client.varyColor.lighten(color, i / 10)
  8. })
  9. // 此处为了简化,采用了darken。实际按color.less需求可以引入tinycolor, colorPalette变换得到颜色值
  10. var darkens = new Array(6).fill().map((t, i) => {
  11. return client.varyColor.darken(color, i / 10)
  12. })
  13. return lightens.concat(darkens)
  14. },
  15. changeColor (newColor) {
  16. var lastColor = this.lastColor || this.primaryColor
  17. var options = {
  18. cssUrl: '/css/theme-colors.css',
  19. oldColors: this.getAntdSerials(lastColor), // current colors array. The same as `matchColors`
  20. newColors: this.getAntdSerials(newColor) // new colors array, one-to-one corresponde with `oldColors`
  21. }
  22. var promise = client.changer.changeColor(options, Promise)
  23. this.lastColor = lastColor
  24. return promise
  25. }
  26. }