/tailwindcss-alpha

Automatic alpha variants for your Tailwind CSS colors

Primary LanguageJavaScript

tailwindcss-alpha

Automatic alpha variants for your Tailwind CSS colors

Why?

If you’re like me your Tailwind CSS color configuration often ends up looking something like this:

module.exports = {
  // ...
  backgroundColors: {
    red: '#f00',
    'red-10': 'rgba(255, 0, 0, 0.1)',
    'red-20': 'rgba(255, 0, 0, 0.2)',
    'red-50': 'rgba(255, 0, 0, 0.5)',
    'red-80': 'rgba(255, 0, 0, 0.8)'
    // ...
  }
  // ...
}

tailwindcss-alpha automatically generates alpha variations for each of your background, text, and border colors.

Install

npm install --save-dev tailwindcss-alpha
// tailwind.js
module.exports = {
  // ...
  plugins: [
    require('tailwindcss-alpha')({
      modules: {
        backgroundColors: true
      },
      alpha: {
        '10': 0.1,
        '30': 0.3
      }
    })
  ]
  // ...
}

Options

modules (optional)

Default: { backgroundColors: true, textColors: false, borderColors: false }

Here is where you define which Tailwind modules you would like to generate alpha variants for, and which state variants (responsive, hover, etc.) to generate for each. This option behaves in the same way as the modules property in the main Tailwind configuration, with one difference: a value of true means "inherit from the main Tailwind modules configuration."

alpha (optional)

This is an object containing the alpha values for your new color utilities. If this is not specified in the plugin options the alpha property in your main Tailwind configuration will be used. If there is no alpha property then the opacity property is used.

The keys of this object appear at the end of the utility class names. For example if you have a background color with a key of red and an alpha with a key of 25 then a bg-red-25 class would be generated.

Example

module.exports = {
  // ...
  backgroundColors: {
    red: '#f00'
  },
  // ...
  plugins: [
    require('tailwindcss-alpha')({
      modules: {
        backgroundColors: []
      },
      alpha: {
        '25': 0.25,
        '50': 0.5,
        '75': 0.75
      }
    })
  ]
  // ...
}

The configuration above yields the following utilities:

.bg-red-25 {
  background-color: rgba(255, 0, 0, 0.25);
}

.bg-red-50 {
  background-color: rgba(255, 0, 0, 0.5);
}

.bg-red-75 {
  background-color: rgba(255, 0, 0, 0.75);
}