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
- Create a branch and make sure tests pass.
- Confirm Node.js 20 or later.
- Run the upgrade tool and read the diff.
- Verify your build tool integration.
- Check borders, rings, shadows, and placeholders.
- Replace deprecated utilities and variable syntax.
- Test in your target browsers.
- 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/
