Tailwind CSS v4 in 2026: What Is New Since 4.0 and How to Migrate

Tailwind CSS v4 changed how the framework is configured and built, and the line has kept growing since its release on January 22, 2025. The headline changes are CSS-first configuration with an @theme block, a much faster build engine, and a one-line import in place of the old directives. The current version is in the 4.3 series, and in September 2026 Tailwind Labs announced it was joining Shopify. This guide covers what v4 introduced, what arrived in 4.1 through 4.3, and how to migrate a v3 project with the official upgrade tool.

What Tailwind v4.0 Changed

Speed

The Tailwind blog’s v4.0 announcement reports its own benchmarks, measured as medians against its Catalyst project. A full build dropped from 378 milliseconds to 100 milliseconds (3.78 times faster). An incremental build that added new CSS dropped from 44 milliseconds to 5 milliseconds (8.8 times). An incremental build with no new CSS dropped from 35 milliseconds to 192 microseconds, which is 182 times faster. These are the framework’s own numbers on one project, so your results will vary.

CSS-First Configuration

Instead of a JavaScript config file, v4 lets you define your design tokens in CSS using an @theme block, for example setting a breakpoint variable named 3xl to 1920px. You load Tailwind with a single import line, @import “tailwindcss”, which replaces the old @tailwind base, components, and utilities directives.

Other v4.0 Features

The announcement describes automatic content detection that respects .gitignore, built-in handling of @import, Lightning CSS for prefixing and syntax transforms, a wider oklch color palette, container queries, 3D transforms, @starting-style support, and a not-* variant.

Browser Support: Check Before You Upgrade

The upgrade guide states that v4 targets Safari 16.4 and later, Chrome 111 and later, and Firefox 128 and later. It relies on modern CSS features, including @property and color-mix(). If you must support older browsers, the guide says to stay on v3.4. Later versions added fallbacks for some older browsers, such as Safari 15, according to the v4.1 announcement, but the officially documented requirement for v4.0 is the one above.

What Arrived in 4.1, 4.2, and 4.3

Version 4.1 (April 3, 2025)

Tailwind’s announcement lists text-shadow utilities, mask utilities, fallbacks for older browsers, a wrap-anywhere utility, pointer-fine and pointer-coarse variants, and @source not and @source inline.

Version 4.2 (February 18, 2026)

Per Tailwind’s later blog post and the GitHub releases page, this version added mauve, olive, mist, and taupe color palettes, an official @tailwindcss/webpack package, and logical-property utilities. It also added font-features utilities and deprecated start-* and end-* in favor of other names. The webpack loader build was reported 2.17 times faster, falling from 932 to 429 milliseconds on the tailwindcss.com docs.

Version 4.3 (May 8, 2026)

This release added scrollbar utilities, an @container-size feature, zoom and tab utilities, and stacked or compound @variant support. The releases page then lists 4.3.1 on June 12, 4.3.2 on June 29, and 4.3.3 on July 16, though the page did not show a year for the last entry.

Tailwind Labs Joins Shopify

On September 9, 2026, Tailwind’s blog announced that Tailwind Labs is joining Shopify. It says “Everything will always be MIT-licensed” and reports more than 110 million installs per week. New sign-ups for the paid Tailwind Plus and ui.sh products have closed, while existing customers keep access. CMSWire described the deal as an acquisition. The price was undisclosed. For developers, the practical point is that the open-source framework’s license is unchanged.

How to Migrate From v3

Step 1: Start on a Branch

The upgrade guide recommends running the upgrade on a new branch and reviewing the diff. The upgrade tool needs Node.js 20 or later.

Step 2: Run the Upgrade Tool

Run the command npx @tailwindcss/upgrade. It updates dependencies, migrates your configuration, and rewrites template files where it can.

Step 3: Choose Your Build Integration

The guide lists three paths. For Vite, import tailwindcss from “@tailwindcss/vite” and add it to the plugins array. The v4 announcement says it performs better than the PostCSS route. For PostCSS, use the @tailwindcss/postcss package. For the command line, use @tailwindcss/cli, for example with npx @tailwindcss/cli -i input.css -o output.css. Version 4.2 added a webpack package.

Step 4: Replace the Directives

Swap the three @tailwind directives for @import “tailwindcss” in your CSS.

Step 5: Review the Changes by Hand

The tool cannot fix everything. Go through the renamed and removed utilities below and test your pages.

Renamed and Removed Utilities

The upgrade guide lists several renames. The shadow, drop-shadow, blur, backdrop-blur, and rounded utilities shift one step: shadow-sm becomes shadow-xs, and plain shadow becomes shadow-sm. The outline-none utility becomes outline-hidden, and ring becomes ring-3 to keep the old width.

Removed utilities include the opacity helpers such as bg-opacity-, which are replaced by the slash syntax, for example bg-black/50. The flex-shrink- and flex-grow-* utilities become shrink-* and grow-*. The overflow-ellipsis utility becomes text-ellipsis, and the decoration-slice and decoration-clone utilities become box-decoration-slice and box-decoration-clone.

Default Changes That Can Break Your Design

The default border and divide color is now currentColor instead of gray-200. The default ring width changed from 3 pixels to 1 pixel, and its color from blue-500 to currentColor. Placeholder text uses the text color at 50 percent opacity. Buttons now use the default cursor. Hover styles apply only when the device supports hover. These changes are easy to miss, so scan your UI for borders, rings, and placeholders after upgrading.

Syntax Changes

The important modifier now goes at the end, for example flex! and the old position is deprecated. If you use a prefix, the syntax becomes tw:flex. The shorthand for CSS variables changes from bg-[–brand-color] to bg-(–brand-color). Variants stack from left to right. Arbitrary grid values that used commas now need underscores.

Configuration Changes

The tailwind.config.js file is no longer detected automatically. To keep using one, load it with @config “../../tailwind.config.js”. The corePlugins, safelist, and separator options are not supported. Use @source inline() in place of safelist, and @utility in place of @layer utilities. Sass, Less, and Stylus are not supported as preprocessors with v4.

Should You Upgrade?

Upgrade if your browser support matches the requirements, your build uses Vite, PostCSS, the CLI, or webpack, and you can spend time reviewing the visual diff. Stay on v3.4 if you must support browsers older than Safari 16.4, Chrome 111, or Firefox 128, or if you rely on Sass-based styling. New projects should start on v4.

A Migration Checklist

  1. Create a branch and make sure tests pass.
  2. Confirm Node.js 20 or later.
  3. Run the upgrade tool and read the diff.
  4. Verify your build tool integration.
  5. Check borders, rings, shadows, and placeholders.
  6. Replace deprecated utilities and variable syntax.
  7. Test in your target browsers.
  8. Merge when visual checks pass.

Practical Migration Tips

Migrate in a small project first. If your codebase is large, run the upgrade tool on a branch, build, and review the visual diff page by page, paying special attention to borders, rings, and shadows, since their defaults changed. Search your templates for the renamed utilities listed above, especially shadow-sm, rounded, and outline-none, because the tool may not catch every dynamic class name. If you generate class names from strings, such as combining a prefix and a color name, static scanning cannot see them, so write full class names in your source.

Using the @theme Block

The new @theme block is where your design tokens live. Instead of extending a JavaScript object, you declare variables such as a custom breakpoint, and Tailwind generates the utilities. The upgrade guide’s example defines a 3xl breakpoint at 1920 pixels. Because the tokens are plain CSS variables, you can use them in your own CSS too. If you keep an old config file during the transition, load it with the @config directive and move values across gradually.

A Word on the Shopify News

The announcement that Tailwind Labs is joining Shopify raised questions for developers who depend on the framework. The facts in Tailwind’s own post are narrow: the license stays MIT, new Tailwind Plus and ui.sh sign-ups are closed, and existing customers keep access. The post and CMSWire do not disclose a price. Beyond that, any claim about future roadmap or governance is speculation. If you are choosing a CSS approach, weigh the framework on its present merits and the open license, as of October 17, 2026.

Performance in Context

The benchmark numbers are impressive, but keep their scope in mind. They were measured by the Tailwind team against its own Catalyst project, with median results, and describe build time, not page speed in the browser. A faster build helps developer feedback loops and continuous integration time. It does not by itself make your site load faster. The CSS your site ships depends on the utilities you use, not on how quickly they were generated.

When to Wait

If your project uses Sass, Less, or Stylus, v4 does not support those preprocessors, so plan the move carefully. If your design system relies on safelist, corePlugins, or separator options, you will need to rework them with @source inline() and @utility. If your audience includes older browsers, stay on v3.4 as the upgrade guide advises. There is no prize for upgrading early, and v3.4 remains a reasonable choice for stable projects until you have time to test.

Frequently Hit Problems After Upgrading

Three issues come up most often when reading the upgrade guide closely. First, a project that relied on the default gray border color now sees borders in the current text color, so add an explicit color class where you need the old look. Second, rings look thinner because the default width dropped from 3 pixels to 1 pixel, so use ring-3 where you want the old width. Third, hover effects behave differently on touch devices because they now apply only when the device supports hover. Each is a deliberate change listed in the guide, not a bug. Fixing them usually takes a search for the affected classes and a quick visual check on a phone.

Using the Official Tooling Well

The upgrade tool is designed to do the mechanical work, but it works best on a clean working tree with passing tests. Commit first, run it, and read the diff before accepting it. The guide recommends doing this on a new branch. If the tool leaves a file untouched, search for the cause before editing by hand, since a pattern it could not parse may exist elsewhere. Keep the original configuration file until the migration is verified, in case you need to compare values.

Frequently Asked Questions

What is the current Tailwind version?

The 4.3 series. As of October 17, 2026, version 4.3.0 shipped on May 8, 2026, and the releases page lists 4.3.3 as the latest.

Is Tailwind still free and open source?

Yes. Tailwind’s blog says everything will always be MIT-licensed.

How do I upgrade from v3?

Run npx @tailwindcss/upgrade on a new branch with Node.js 20 or later, then review the changes.

Do I still need tailwind.config.js?

Not by default. You can define tokens in CSS with @theme, or load the old file with @config.

Which browsers does v4 support?

Safari 16.4+, Chrome 111+, and Firefox 128+, according to the upgrade guide.

References and Sources

Tailwind CSS Blog, “Tailwind CSS v4.0”: https://tailwindcss.com/blog/tailwindcss-v4

Tailwind CSS Docs, “Upgrade guide”: https://tailwindcss.com/docs/upgrade-guide

Tailwind CSS Blog, “Tailwind CSS v4.1”: https://tailwindcss.com/blog/tailwindcss-v4-1

Tailwind CSS Blog, “Tailwind CSS v4.3”: https://tailwindcss.com/blog/tailwindcss-v4-3

GitHub, “tailwindlabs/tailwindcss releases”: https://github.com/tailwindlabs/tailwindcss/releases

Tailwind CSS Blog, “Tailwind is joining Shopify”: https://tailwindcss.com/blog/tailwind-is-joining-shopify

CMSWire, “Shopify Acquires Tailwind Labs to Secure CSS Framework”: https://www.cmswire.com/digital-experience/shopify-acquires-tailwind-labs-to-secure-css-framework/

About The Author

Written By

I write about AI, Web3, Crypto, Fintech, and the technologies shaping the digital economy. Connect with me on LinkedIn: https://www.linkedin.com/in/kenneth-onyebuchi-3b4634228

More From Author

Leave a Reply

You May Also Like

Best Free Cloud Database Hosting for PostgreSQL and MongoDB in 2026

Best Free Cloud Database Hosting for PostgreSQL and MongoDB in 2026

The best free cloud database depends on what you need it to survive. For MongoDB,…

Docker Containerization Simplified: A Beginner Developer Guide for 2026

Docker Containerization Simplified: A Beginner Developer Guide for 2026

Docker packages an application and everything it needs into a container, so it runs the…

How to Deploy Web Applications for Free on Vercel, Render, and Cloudflare in 2026

How to Deploy Web Applications for Free on Vercel, Render, and Cloudflare in 2026

You can deploy a web app for free on Vercel, Render, and Cloudflare, but each…