Skip to main content

Intro Tailwind CSS

What is Tailwind CSS?

Tailwind CSS is a utility-first CSS framework that provides low-level classes to build fully custom user interfaces without writing custom CSS.

Instead of writing traditional CSS like this:

.button {
background-color: blue;
color: white;
padding: 0.5rem 1rem;
border-radius: 0.375rem;
}

You use utility classes in your HTML/JSX like this:

<button class="bg-blue-500 text-white py-2 px-4 rounded">Click me</button>

Tailwind gives you building blocks rather than predefined components.


When to Use Tailwind CSS

  • Modern web applications that require rapid UI development.
  • Design systems where consistency and scalability matter.
  • Projects using React, Vue, Angular, Svelte, Astro, or plain HTML.
  • When you want to avoid context switching between CSS and HTML/JSX.
  • For developers who prefer a design-by-composition approach.

Why Use Tailwind CSS?

1. Speed of Development

You don’t need to write custom CSS. You apply styles directly as class names.

2. No Naming Hassles

No need to worry about naming classes like .card-title or .button-primary.

3. Consistency

Tailwind enforces consistent spacing, typography, colors, etc., using a predefined theme.

4. Customization

Easily extend or override the default theme in tailwind.config.js.

5. Responsive Design Made Simple

Use responsive prefixes (sm:, md:, lg:, etc.) to adapt layouts.

<div class="text-center md:text-left">Responsive text</div>

How to Use Tailwind CSS

1. Install Tailwind

For a React project using Vite:

npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p

2. Configure tailwind.config.js

// tailwind.config.js
module.exports = {
content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
theme: {
extend: {},
},
plugins: [],
}

3. Add Tailwind Directives to your CSS

/* src/index.css */
@tailwind base;
@tailwind components;
@tailwind utilities;

4. Use Classes in JSX/HTML

<div className="bg-gray-100 text-lg font-semibold p-4 rounded shadow">
Hello Tailwind
</div>

Where Tailwind CSS Should Be Used

  • SaaS dashboards
  • Blogs and marketing sites
  • E-commerce UIs
  • Component libraries
  • Prototyping and MVPs
  • Anywhere speed, design consistency, and developer ergonomics are important

Common Mistakes to Avoid

1. Using Tailwind without Purging Unused Styles

Tailwind generates a huge CSS file by default. Always use the content array in tailwind.config.js to purge unused classes:

content: ['./src/**/*.{js,jsx,ts,tsx,html}']

2. Overusing Utility Classes

Don’t cram dozens of classes into one element. Break into components or use the @apply directive in CSS.

/* Reusable utility composition */
.btn-primary {
@apply bg-blue-500 text-white px-4 py-2 rounded;
}

3. Ignoring Design Principles

Tailwind doesn’t enforce good design. You still need to understand layout, spacing, and accessibility.

4. Wrong content Path

If Tailwind isn’t working, check the content paths. If Tailwind doesn’t know where your files are, it won’t generate styles.

5. Mixing Tailwind and Traditional CSS Indiscriminately

Try not to mix too much custom CSS unless necessary. Tailwind works best when used consistently.


Summary

FeatureTailwind CSS
Style MethodUtility-first
PerformanceFast with proper purging
CustomizationEasily extendable
Best Use CasesUIs, prototypes, design systems
Learning CurveSteep at first, fast afterward