Tailwind CSS v4.0 Beta 1
What Tailwind Is and How It’s Used
- Seen as “a new form of CSS for the component age,” not a full design system but a tool to build one.
- Core idea: reuse via template/JS components rather than custom CSS classes;
@applyis for small, simple cases. - Many use Tailwind in a hybrid way: utilities for unique sections (headers/footers), plus semantic component classes (e.g., buttons) or libs like DaisyUI on top.
- Others prefer scoped CSS (Svelte, CSS modules, styled components) and only drop to Tailwind or custom CSS for specific needs (e.g., animations).
Utility Classes vs Traditional / Native CSS
- Fans argue utility classes:
- Make iteration much faster since style is co-located with markup.
- Avoid cascade/specificity bugs and “spooky action at a distance.”
- Encourage consistent design via a shared scale for spacing, colors, etc.
- Critics say:
- It’s “utility classes taken too far,” better suited to componentized UIs than “real HTML.”
- Native CSS with custom properties, clamp(), modern layout, and Stylelint can now solve most problems cleanly, without extra tooling.
- Tailwind introduces dependency and upgrade churn compared to “future-proof” vanilla CSS.
Responsive Design, Dark Mode, and Layout
- Supporters like breakpoint prefixes (
lg:) and state variants (hover:,dark:) as far more ergonomic than raw media queries and manual dark-mode theming. - Others note modern CSS (clamp, flexible grids) greatly reduces media query needs and that swapping theme files with design tokens can handle dark mode elegantly.
Performance and Build Pipeline
- Some question the focus on further speedups when Tailwind builds are already fast.
- Others strongly value shaving tens of milliseconds to enable near-instant feedback, hot reload on every keystroke, and complex pipelines where many tools must all be fast.
- Rust-based LightningCSS is noted as both a simplification (single binary) and a performance win.
- Debate on real-world cost: some say Tailwind output can be smaller than hand-written CSS; others (including someone working on browser CSS perf) emphasize that parsing large bundles many times is the real cost.
Color System: Move to OKLCH and P3
- OKLCH is recognized as part of a broader trend toward perceptual color spaces.
- Proponents: numbers map better to perceived lightness/chroma, easier programmatic manipulation, and support for wide-gamut (P3) colors.
- Critics: great for interpolation and some visualization, but poor for directly specifying colors; legal value ranges are narrow near gamut edges, making manual work hard. Often, plain sRGB hex is argued to be more practical.
- Tools for exploring OKLCH and support in modern browsers are mentioned.
Tooling, Installation, and Webdev Complexity
- Some are put off that “Getting Started” begins with Vite and npm for something that “just helps with CSS.”
- Responses:
- Tailwind is a build-time CSS generator; a build step lets you ship only used utilities (e.g., ~10 KB vs the full multi‑MB framework).
- A standalone CLI binary exists for projects that don’t use Node.
- Vite is widely used; integrating with existing bundlers is convenient but optional.
- Broader ranting and pushback about JS ecosystem churn, dependency rot, and whether modern frontend stacks are overcomplicated vs genuinely enabling powerful workflows.
Other v4 Notes
- Container queries support is welcomed; some argue the
containproperty is equally or more important for correctness and performance. Acontainutility has been added. - CSS‑first configuration and shared design tokens are praised for making Tailwind easier to mix with regular CSS, especially in component architectures and markdown-driven sites.
- Many report Tailwind remains “fun” and productive even after years; others warn that the pleasant experience can erode once broader JS tooling and upgrades enter the picture.