Open In App

How to Access Tailwind Colors from JavaScript ?

Tailwind CSS is a “Utility first CSS framework”. The feature that makes Tailwind has a variety of classes and provides a huge set of predefined colors that can be used in our stylesheets without the need to define them manually. These predefined colors are categorized into different color palettes which allows easy access to these colors and can be applied directly to our desired elements just by writing some predefined conventions without the need to define them manually. These colors can be referenced from CSS as well as JavaScript. In this article, we will see how to access the Tailwind colors from JavaScript. For this, we will install & create a basic Tailwind project, along with configuring the required files.

Create a new project: 

To get started, we will follow the below step:



mkdir file-name
cd file-name
npm init -y

Installing Tailwind CSS: 

npm install -D tailwindcss
npx tailwindcss init




/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./public/**/*.{html,js}"],
  theme: {
    extend: {},
  },
  plugins: [],
}

@tailwind base;
@tailwind components;
@tailwind utilities;
npx tailwindcss -i public/tailwind.css -o public/styles.css --watch

It will create an output css file styles.css in the public folder. Now we can start using Tailwind in our HTML and JavaScript files.

Project Structure:

 

Example 1: In this example, we add a tailwind using the CDN. Upon clicking the “Change Color” button, the background color of the main div will change from red to green.






<!DOCTYPE html>
<html>
  
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, 
                   initial-scale=1.0">
    <script src=
      </script>
    <script src="script.js"></script>
    <title>
        Access Tailwind Colors from JS with GFG
    </title>
</head>
  
<body>
    <div id="main" 
         class="bg-red-500 text-white p-4">
        Hello and Welcome to GeeksforGeeks!
    </div>
    <button id="colorChange" 
            onclick="changeColor()">
        Change Color
    </button>
</body>
  
</html>




function changeColor() {
  
    // Accessing the div
    const element =
        document.getElementById('main');
  
    // Remove the current color class
    element.classList.remove('bg-red-500');
  
    // Add a new color class
    element.classList.add('bg-green-500');
}

Output:

Example 2: Using the Tailwind CLI and configuring files for adding Tailwind in the project and accessing Tailwind Colors from JavaScript.

/** @type {import('tailwindcss').Config} */
module.exports = {
    content: ["./src/**/*.{html,js}"],
    theme: {
        extend: {
            colors: {
                primary: '#ff0000',
                secondary: '#00ff00',
                tertiary: '#0000ff'
            }
        },
    },
    plugins: [],
}
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
npx tailwindcss -i ./src/styles.css -o ./dist/output.css --watch
<link href="/dist/output.css" rel="stylesheet">




<!DOCTYPE html>
<html>
  
<head>
    <meta charset="UTF-8">
    <meta name="viewport" 
          content="width=device-width, 
                   initial-scale=1.0">
    <link href="../dist/output.css" 
          rel="stylesheet">
</head>
  
<body>
    <h1 class="text-3xl font-bold underline 
               text-green-500">
        GeeksforGeeks!
    </h1>
    <div id="colorBox" 
         class="color-box bg-primary">
        ok
    </div>
  
    <script>
        const colorBox =
              document.getElementById('colorBox');
  
        // Change the background color of the 
        // color box on click
        colorBox.addEventListener('click', function () {
            
            // Get the current color class
            const currentColor = colorBox.classList[1];
            
            // Get the next color class
            const nextColor = getNextColor(currentColor);
            colorBox.classList.remove(currentColor);
            colorBox.classList.add(nextColor);
        });
  
        // Get the next color class based on
        // the current color class
        function getNextColor(currentColor) {
            switch (currentColor) {
                case 'bg-primary':
                    return 'bg-secondary';
                case 'bg-secondary':
                    return 'bg-tertiary';
                case 'bg-tertiary':
                    return 'bg-primary';
                default:
                    return 'bg-primary';
            }
        }
    </script>
</body>
  
</html>




@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
  
.color-box {
    width: 40px;
    height: 30px;
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
}

Output:


Article Tags :