Tailwind CSS

Tailwind CSS

Open Source

Rapidly build modern websites without ever leaving your HTML.

Frontend Frameworks
CSS Frameworks

Published 29 May 2026 · Last updated 30 September 2026

Scores

Popularity4/5

The most popular CSS utility framework; widespread in modern web project scaffolding.

Learning Curve2/5

Utility classes are searchable and composable; the mental model clicks within a few days.

Flexibility4/5

Utility classes compose freely; extend with custom plugins and design tokens.

Performance3/5

Output CSS is minimal after purging unused classes; zero runtime overhead.

Portability3/5

Utility-class mental model requires unlearning when switching to other CSS systems.

About Tailwind CSS

Tailwind CSS is a utility-first CSS framework created by Adam Wathan and released in 2017. Rather than providing pre-built components (like Bootstrap or Material UI), Tailwind gives you a comprehensive set of low-level utility classes — flex, pt-4, text-gray-900, rounded-lg, hover:bg-blue-500 — that you compose directly in HTML to build any design without leaving your markup.

The utility-first philosophy means each class does one thing: p-4 adds 4 units of padding, text-xl sets the font size, bg-white sets the background. Building a UI is a matter of combining these classes rather than writing CSS. Proponents argue this eliminates the need for naming conventions (BEM, OOCSS), reduces style conflicts, and dramatically speeds up iteration.

The JIT (Just-In-Time) engine — the default since Tailwind v3 and rebuilt from scratch in v4 — scans your source files and generates only the CSS classes you actually use. A large project with thousands of utility classes in source still ships a production stylesheet of a few kilobytes. Arbitrary values (text-[#1a1a1a], w-[137px]) extend the system without adding CSS bloat.

Tailwind v4 rewrote the engine in Rust, delivering dramatically faster build and rebuild times. It also moved configuration from tailwind.config.js to a CSS-first @theme directive, eliminating the JavaScript config file for most use cases.

Design system scales are built in: an opinionated, harmonious set of spacing values, a curated color palette with shades from 50–950, type scale, shadow levels, border radii, and z-index values. Teams adopt a consistent visual language automatically; arbitrary one-off values are possible but the defaults discourage them.

Responsive design is handled with responsive prefixes (sm:, md:, lg:, xl:, 2xl:) that scope classes to breakpoints. Dark mode support is built in via dark: prefix. State variants (hover:, focus:, active:, group-hover:, peer-focus:) handle interactive states without custom CSS.

Key Features

  • Utility-first: compose designs from atomic classes directly in HTML markup
  • JIT engine (Rust-powered in v4): generates only used classes — tiny production bundles
  • Arbitrary value support: text-[#1a1a1a], w-[137px] for one-off values without custom CSS
  • Built-in design scales: opinionated spacing, color palette, typography, and shadow tokens
  • Responsive prefixes (sm:, md:, lg:) and dark mode (dark:) variants built in
  • State variants: hover:, focus:, group-hover:, peer-focus: for interactive styling without JS
  • CSS-first configuration in v4 via @theme directive — no JavaScript config file required

Pros

  • Eliminates the need for naming conventions and custom CSS for most UI work
  • JIT production output is tiny, typically under 10KB for real projects
  • Built-in design tokens enforce consistent spacing, colors, and typography across a team
  • Responsive and dark mode variants built in with no setup
  • Massive ecosystem: Headless UI, Tailwind Plus, and hundreds of third-party component libraries
  • v4's Rust engine delivers near-instant rebuilds even on large projects

Cons

  • HTML becomes verbose: long utility class strings make markup hard to scan and review
  • Utility class names require memorisation — less readable to developers unfamiliar with the framework
  • Perceived violation of separation of concerns — mixing presentation with structure in HTML
  • v4 migration from v3 introduced significant breaking changes (config format, class renames)
  • Custom design systems that deviate far from Tailwind's defaults require significant theme overriding

Tailwind CSS Pricing

Open Source

Tech Stacks with Tailwind CSS

MERN Stack

Project

MongoDB, Express, React, Node.js: the classic JavaScript full-stack. A well-trodden path with massive community support and job-market demand.

Frontend

Programming

Databases

Hosting

Authentication

Auth:
Deploy on:
CI/CD add-on:
Containerization add-on:
Observability add-on:
Email add-on:
Payments add-on:
Styling add-on:
Analytics add-on:

Supabase + Next.js

Project

The fastest way to launch a modern web app. Next.js handles the frontend and API routes; Supabase provides Postgres, auth, realtime, and storage out of the box.

Frontend

Programming

Databases

Hosting

Authentication

Auth:
Deploy on:
CI/CD add-on:
Containerization add-on:
Observability add-on:
Email add-on:
Payments add-on:
Styling add-on:
Analytics add-on:

Python Web (FastAPI + React)

Project

A clean separation of concerns: React on the frontend, FastAPI serving a typed REST API, and PostgreSQL for persistent storage (MySQL, MariaDB, and serverless Postgres hosts are also available). Docker keeps environments consistent.

Database:
Deploy on:
Authentication add-on:
CI/CD add-on:
Containerization add-on:
Observability add-on:
Email add-on:
Payments add-on:
Styling add-on:
Analytics add-on:

Tools Related to Tailwind CSS

Works well with Tailwind CSS(5)

Tailwind is the default CSS framework in new Next.js projects — create-next-app includes it as an option and the official examples use it.

Tailwind CSS pairs well with SvelteKit via Vite's PostCSS pipeline; the official SvelteKit documentation includes a dedicated Tailwind CSS setup guide.

Tailwind integrates into Astro via the official @astrojs/tailwind package, offered as a default option when scaffolding a new Astro project.

Tailwind CSS styles every official Laravel starter kit, whether the frontend is Blade with Livewire or React, Svelte, or Vue through Inertia, with Vite handling the build.

Tailwind CSS is applied directly in HTML class attributes — it was designed for plain HTML templates and works without any JavaScript framework.

Integrates with Tailwind CSS(1)

Tailwind CSS pairs with Rails via the official tailwindcss-rails gem, applying utility classes directly in Rails views.

Vendor

Tailwind Labs

Tailwind Labs

Website →

Tags

Open SourceWeb DevelopmentDeclarative

Details

License
MIT
Maintained
Yes
Primary language
TypeScript
Domain
Frontend
GitHub stars
97.6k
Stars updated
2026-09-23