不符合 Tailwind 自定义颜色

Posted

技术标签:

【中文标题】不符合 Tailwind 自定义颜色【英文标题】:Tailwind Custom Colors Not Complied 【发布时间】:2021-05-25 13:06:19 【问题描述】:

npm start (craco start) 上,一切工作正常,颜色正在编译中。

当运行npm run build (craco build) 时,每个配置只编译一种颜色dallas 来自theme.textColorvista-white 来自theme.gradientColorStops

我试过了:

重新排序theme.textColor 属性。 正在删除node_modulesnpm i。 删除build 并重建。
// craco.config.js
module.exports = 
  style: 
    postcss: 
      plugins: [require('tailwindcss'), require('autoprefixer')],
    ,
  ,
;
// tailwind.config.js
module.exports = 
  purge: ['./src/**/*.js,jsx,ts,tsx', './public/index.html'],
  darkMode: false, // or 'media' or 'class'
  theme: 
    extend: ,
    textColor: (theme) => (
      ...theme('colors'),
      dallas: '#664A2D',
      'blue-charcoal': '#24292E',
      denim: '#0D66C2',
      'spring-green': '#05E776',
      flamingo: '#E65A4D',
    ),
    gradientColorStops: (theme) => (
      ...theme('colors'),
      'vista-white': '#E1DFDC',
    ),
  ,
  variants: 
    extend: ,
  ,
  plugins: [],
;

【问题讨论】:

听起来您的样式正在被清除。您是否真的在标记中使用它们? 是的,@George。 IntelliSense 也在 VSCode 中展示了它们。您可以在这里查看网站(例如我的linkedin图标上的hover:denim):aboqasem.dev 源代码:github.com/aboqasem/aboqasem.dev/blob/main/src/pages/… Purge 将无法识别您对此类的使用。见tailwindcss.com/docs/…。具体来说,“不要使用字符串连接来创建类名”。清除在任何方面都不是“智能”的,它通过将您的实用程序与整个模板中的类(或任何字符串,真的..)进行匹配来工作。 非常感谢@George!你推荐使用safelist: ['bg-red-500', 'px-4'], 选项吗?或者将我的IContact.color 重构为text-denim 而不是denim(我认为这不会有效?)? 哦,我想是的:regex101.com/r/9XRVMP/1 【参考方案1】:

您应该将 textColor 更改为颜色。

module.exports = 
  theme: 
    colors: 
      // Configure your color palette here
    
  

【讨论】:

【参考方案2】:

要在 Tailwind 中自定义文本颜色,您需要像这样配置 tailwind.config.js

module.exports = 
  theme: 
    textColor: 
      'primary': '#3490dc',
      'secondary': '#ffed4a',
      'danger': '#e3342f',
    
  

您可以参考 Tailwind docs 了解更多信息。

【讨论】:

【参考方案3】:

感谢@George指出问题:

Purge 将无法识别您对此类的使用。见https://tailwindcss.com/docs/optimizing-for-production#writing-purgeable-html。具体来说,“不要使用字符串连接来创建类名”。清除在任何方面都不是“智能”的,它通过将您的实用程序与整个模板中的类(或任何字符串,真的..)进行匹配来工作。

一种可能的解决方案是将要清除的类添加到purge.safelist

// tailwind.config.js
module.exports = 
  // Added safelist
  purge: 
    content: ['./src/**/*.js,jsx,ts,tsx', './public/index.html'],
    options: 
      safelist: ['hover:text-blue-charcoal', 'hover:text-denim', 'hover:text-spring-green', 'hover:text-flamingo'],
    ,
  ,
  darkMode: false, // or 'media' or 'class'
  theme: 
    extend: ,
    textColor: (theme) => (
      ...theme('colors'),
      dallas: '#664A2D',
      'blue-charcoal': '#24292E',
      denim: '#0D66C2',
      'spring-green': '#05E776',
      flamingo: '#E65A4D',
    ),
    gradientColorStops: (theme) => (
      ...theme('colors'),
      'vista-white': '#E1DFDC',
    ),
  ,
  variants: 
    extend: ,
  ,
  plugins: [],
;

【讨论】:

【参考方案4】:

如果您使用 Tailwind 3,您可以:

module.exports = 
 theme: 
extend: 
  colors: 
    'regal-blue': '#243c5a',
    ,
   
  
 

如果没有使用,只需添加“扩展”,所有颜色将被重置 这使您不必使用安全列表

【讨论】:

以上是关于不符合 Tailwind 自定义颜色的主要内容,如果未能解决你的问题,请参考以下文章

Tailwind 自定义颜色在 Angular 生产构建中不起作用

自定义 Tailwind CSS 时引用默认颜色

Tailwind 自定义表单:如何添加自己的颜色(十六进制值)

NextJS - 无法在 Tailwind CSS 中使用自定义颜色

Tailwind Css 自定义颜色在构建时消失(React JS)

Tailwind CSS 自定义颜色应用于文本而不是 ReactJS 中的背景