Published on

How to Add New Colors to Tailwind CSS Without Removing Defaults

Authors
  • Name
    Ripal & Zalak
    Twitter

How to Add New Colors to Tailwind CSS Without Removing Defaults

Tailwind CSS allows developers to extend its default color palette with custom colors without overriding existing ones. This guide will walk you through different methods to achieve this efficiently.

The easiest way to add custom colors without losing Tailwind’s defaults is by extending the colors configuration inside tailwind.config.js.

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        'custom-yellow': '#EDAE0A',
        'custom-blue': '#007BFF',
      },
    },
  },
}

Why this works: The extend property ensures that Tailwind's default colors remain intact while adding new ones.

Solution 2: Using Object Spread Operator (Advanced Method)

If you want more flexibility, you can use the spread operator to merge your custom colors with Tailwind’s default colors.

// tailwind.config.js
const { colors: defaultColors } = require('tailwindcss/defaultTheme')

const colors = {
  ...defaultColors,
  'custom-yellow': '#EDAE0A',
  'custom-blue': '#007BFF',
}

module.exports = {
  theme: {
    colors: colors,
  },
}

This approach directly modifies the colors object while retaining Tailwind’s default colors.

Solution 3: Using Tailwind’s Built-in Color Palette

You can also use Tailwind’s extended color palette by importing it and adding new colors.

// tailwind.config.js
const colors = require('tailwindcss/colors')

module.exports = {
  theme: {
    extend: {
      colors: {
        customYellow: colors.amber,
        customBlue: colors.sky,
      },
    },
  },
}

Applying Custom Colors in Tailwind

Once configured, you can use your custom colors in your HTML or JSX files:

<div class="bg-custom-yellow p-4 text-white">This is a custom yellow background.</div>
<p class="text-custom-blue">This text is using the custom blue color.</p>

FAQs

1. Why are my custom colors not reflecting in Tailwind CSS?

If your custom colors are not appearing:

  • Restart your development server (npm run dev or yarn dev).
  • Ensure you are using extend inside the theme property.
  • Verify that you don’t have an empty colors: {} object that overrides the defaults.

2. How do I remove Tailwind’s default colors?

If you want to replace Tailwind’s color scheme completely, define a new colors object without spreading the default colors.

module.exports = {
  theme: {
    colors: {
      primary: '#1E40AF',
      secondary: '#9333EA',
    },
  },
}

3. Does Tailwind CSS support CSS variables for colors?

Yes! You can use CSS variables within Tailwind for dynamic theming.

module.exports = {
  theme: {
    extend: {
      colors: {
        primary: 'var(--primary-color)',
      },
    },
  },
}