Tailwind CSS
Open SourceRapidly build modern websites without ever leaving your HTML.
Scores
About
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 (released January 2025) 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 UI, 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
Pricing
Open SourcePossible Stacks
Browser Extension Starter
ProjectA beginner-friendly stack for building cross-browser extensions. WXT handles the Manifest V3 boilerplate and cross-browser packaging; React and TypeScript provide a familiar component model; Supabase adds cloud storage and auth if the extension needs a backend.
HTMX + Django
ProjectA server-driven web stack where Django renders HTML templates and HTMX adds dynamic interactions without writing JavaScript. Ideal for teams that want fast iteration on CRUD-heavy apps and dashboards with minimal frontend complexity.
HTMX + FastAPI
ProjectA lightweight, fast Python stack. FastAPI serves HTML fragment endpoints, HTMX swaps them into the DOM, and Tailwind handles styling. Great for modern server-driven apps with async Python backends.
Related Tools
Works well with (7)
Learning Resources
No resources yet — check back soon.