R

React Handbook

Clean • Professional

React Tailwind CSS

2 minute

Tailwind CSS in React

Tailwind CSS is a utility-first CSS framework that allows developers to build responsive, modern, and highly customizable user interfaces quickly. Unlike traditional CSS, Tailwind focuses on small, reusable utility classes, enabling rapid development without writing custom styles from scratch.

Integrating Tailwind with React makes your apps fast, maintainable, and scalable, while keeping your styling close to your components.

Why Use Tailwind CSS with React?

learn code with durgesh images

  • Rapid UI Development: Predefined utility classes reduce the need for custom CSS.
  • Responsive Design: Built-in responsive variants (sm, md, lg, xl) make it mobile-friendly.
  • Customizable: Tailwind’s configuration file lets you define colors, spacing, and themes.
  • No Naming Conflicts: Eliminates global CSS issues by using utility classes.
  • Integration with JSX: Tailwind classes are directly added to className in React components.

Installing Tailwind CSS in a React Project

If using Create React App:

npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
  • tailwind.config.js – for customizing Tailwind’s theme
  • postcss.config.js – for processing Tailwind styles

Configure Tailwind

Add paths to your React components in tailwind.config.js:

module.exports = {
  content: [
    "./src/**/*.{js,jsx,ts,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
};

Add Tailwind Directives

In src/index.css (or App.css):

@tailwind base;
@tailwind components;
@tailwind utilities;

Using Tailwind in React Components

Tailwind works directly with the className attribute.

Example:

export default function App() {
  return (
    <div className="flex flex-col items-center justify-center min-h-screen bg-gray-100">
      <h1 className="text-4xl font-bold text-blue-600 mb-4">Welcome to Tailwind CSS</h1>
      <button className="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
        Click Me
      </button>
    </div>
  );
}
  • flex flex-col items-center justify-center → Flexbox layout utilities
  • min-h-screen → Minimum height of full screen
  • bg-gray-100 → Light gray background
  • hover:bg-blue-700 → Hover effect on button

Responsive Design Example:

<div className="p-4 sm:p-6 md:p-8 lg:p-10 bg-white shadow-md rounded">
  <h2 className="text-lg sm:text-xl md:text-2xl font-semibold">Responsive Card</h2>
  <p className="text-gray-700">This card adjusts its padding and font size based on screen size.</p>
</div>

Conditional Styling with Tailwind & React

React state can dynamically change classes:

import { useState } from "react";

export default function ToggleButton() {
  const [active, setActive] = useState(false);

  return (
    <buttonclassName={`py-2 px-4 rounded font-bold ${
        active ? "bg-green-500 text-white" : "bg-gray-300 text-black"
      }`}
      onClick={() => setActive(!active)}
    >
      {active ? "Active" : "Inactive"}
    </button>
  );
}

Advantages of Tailwind CSS in React

FeatureBenefit
Utility-FirstQuickly build UI without writing custom CSS
ResponsiveMobile-first design built-in
CustomizableExtend colors, spacing, typography in config
Fast PrototypingRapid development with ready-to-use classes
Scoped StylingWorks directly in JSX, no global CSS conflicts


Article 0 of 0