Releases: tailwindlabs/tailwindcss
Releases · tailwindlabs/tailwindcss
v4.0.0-beta.6
Fixed
- Ensure
@import "…" reference
never generates utilities (#15307)
v4.0.0-beta.5
Added
- Parallelize parsing of individual source files (#15270)
- Add new
@import "…" reference
option for importing Tailwind CSS configuration details into another CSS entry point without duplicating CSS (#15228) - Improve performance of
@tailwindcss/postcss
by translating between internal data structures and PostCSS nodes directly without additional parsing or stringification (#15297)
Fixed
- Ensure absolute URLs inside imported CSS files are not rebased when using
@tailwindcss/vite
(#15275) - Fix issues with dev servers using Svelte 5 with
@tailwindcss/vite
(#15274) - Support installing
@tailwindcss/vite
in Vite 6 projects (#15274) - Fix resolution of imported CSS files in SSR builds with
@tailwindcss/vite
(#15279) - Ensure other plugins can run after
@tailwindcss/postcss
(#15273) - Rebase URLs inside imported CSS files when using Vite with the
@tailwindcss/postcss
extension (#15273) - Fix missing font family suggestions in IntelliSense (#15288)
- Fix missing
@container
suggestion in IntelliSense (#15288)
v3.4.16
v4.0.0-beta.4
Fixed
- Don't scan source files for utilities unless
@tailwind utilities
is present in the CSS in@tailwindcss/postcss
and@tailwindcss/vite
(#15226) - Skip reserializing CSS files that don't use Tailwind features in
@tailwindcss/postcss
and@tailwindcss/vite
(#15226) - Upgrade (experimental): Do not migrate the
overflow-clip
utility (#15244) - Upgrade (experimental): Rename
backdrop-blur
tobackdrop-blur-sm
andbackdrop-blur-sm
tobackdrop-blur-xs
(#15242)
v4.0.0-beta.3
Fixed
- Ensure any necessary vendor prefixes are generated for iOS Safari, Firefox, and Chrome (#15166)
- Ensure
.group
and.peer
are prefixed when using theprefix(…)
option (#15174) - Ensure 3D transforms render correctly in Safari (#15179)
- Ensure
--spacing-*
variables take precedence over--container-*
variables (#15180) - Fix scanning classes delimited by tab characters (#15169)
- Ensure opacity modifiers and semi-transparent gradients render correctly by default in Safari (#15201)
- Fix element size thrashing when transitioning gradients on elements with a defined font-size in Safari (#15216)
- Ensure
translate-*
utilities work with arbitrary values that usecalc(…)
(#15215) - Ensure gradient stop position utilities work with arbitrary values that use
calc(…)
(#15215) - Ensure Node addons are packaged correctly with Windows ARM builds (#15171)
- Ensure the Vite plugin resolves CSS and JS files according to the configured resolver conditions ([#15173])(#15173)
- Upgrade (experimental): Migrate prefixes for
.group
and.peer
classes (#15208)
Changed
- Interpolate gradients using OKLAB instead of OKLCH by default (#15201)
- Error when
layer(…)
in@import
is not first in the list of functions/conditions (#15109) - Use unitless line-height values for font-size variables in default theme (#15216)
- Don't register custom properties with explicit types unless those custom properties need to be animateable (#15215)
v4.0.0-beta.2
Fixed
- Use configured
--letter-spacing
values for custom font size utilities (#15099) - Ensure
space-x/y-*
anddivide-x/y-*
with variants can undospace-x/y-reverse
anddivide-x/y-reverse
(#15094) - Don't print minified code when the build fails in the CLI (#15106)
- Generate the correct CSS for the
break-keep
utility (#15108) - Detect single word utilities that include numbers (e.g.
h1
) when scanning files (#15110) - Upgrade (experimental): Always add
layer(…)
as the first param to@import
(#15102)
Changed
- Revert the new base styles for buttons and form controls (#15100)
v4.0.0-beta.1
About eight months ago we open-sourced our progress on Tailwind CSS v4.0. Hundreds of hours of fixing bugs, soul-crushing backward compatibility work, and troubleshooting Windows CI failures later, I'm excited to finally tag the first public beta release.
As I talked about when we published the first alpha, Tailwind CSS v4.0 is an all-new engine built for performance, and designed for the modern web.
- Built for performance — full builds in the new engine are up to 5x faster, and incremental builds are over 100x faster — and measured in microseconds.
- Unified toolchain — built-in import handling, vendor prefixing, and syntax transforms, with no additional tooling required.
- CSS-first configuration — a reimagined developer experience where you customize and extend the framework directly in CSS instead of a JavaScript configuration file.
- Designed for the modern web — built on native cascade layers, wide-gamut colors, and including first-class support for modern CSS features like container queries,
@starting-style
, popovers, and more.
There's so much more to say, but everything you need to get started is in the new beta documentation we published today:
Get started with Tailwind CSS v4.0 Beta 1 →
Start building and help us bullet-proof this thing for the stable release early in the new year.
v4.0.0-alpha.36
Added
- Add consistent base styles for buttons and form controls (#15036)
- Upgrade (experimental): Convert
group-[]:flex
toin-[.group]:flex
(#15054) - Upgrade (experimental): Add form reset styles to CSS files for compatibility with v3 (#15036)
- Upgrade (experimental): Migrate
ring
toring-3
(#15063)
Fixed
- Upgrade (experimental): Ensure migrating to the
in-*
requires a descendant selector (#15054)
Changed
v4.0.0-alpha.35
Added
- Reintroduce
max-w-screen-*
utilities that read from the--breakpoint
namespace as deprecated utilities (#15013) - Support using CSS variables as arbitrary values without
var(…)
by using parentheses instead of square brackets (e.g.bg-(--my-color)
) (#15020) - Add new
in-*
variant (#15025) - Bundle
@tailwindcss/forms
,@tailwindcss/typography
, and@tailwindcss/aspect-ratio
with the standalone CLI (#15028) - Allow
addUtilities()
andaddComponents()
to work with child combinators and other complex selectors (#15029) - Support colors that use
<alpha-value>
in JS configs and plugins (#15033) - Add new
transition-discrete
andtransition-normal
utilities fortransition-behavior
(#15051) - Upgrade (experimental): Migrate
[&>*]
to the*
variant (#15022) - Upgrade (experimental): Migrate
[&_*]
to the**
variant (#15022) - Upgrade (experimental): Warn when trying to migrating a project that is not on Tailwind CSS v3 (#15015)
- Upgrade (experimental): Migrate colors that use
<alpha-value>
in JS configs (#15033)
Fixed
- Ensure
flex
is suggested (#15014) - Improve module resolution for
cjs
-only andesm
-only plugins (#15041) - Perform
calc(…)
on just values for negative-rotate-*
utilities, not on therotateX/Y/Z(…)
functions themselves (#15044) - Upgrade (experimental): Resolve imports when specifying a CSS entry point on the command-line (#15010)
- Upgrade (experimental): Resolve nearest Tailwind config file when CSS file does not contain
@config
(#15001) - Upgrade (experimental): Improve output when CSS imports can not be found (#15038)
- Upgrade (experimental): Ignore analyzing imports with external URLs (e.g.:
@import "https://fonts.google.com"
) (#15040) - Upgrade (experimental): Ignore analyzing imports with
url(…)
(e.g.:@import url("https://fonts.google.com")
) (#15040) - Upgrade (experimental): Use
resolveJsId
when resolvingtailwindcss/package.json
(#15041) - Upgrade (experimental): Ensure children of Tailwind root file are not considered Tailwind root files (#15048)
Changed
- Bring back support for color opacity modifiers to read from
--opacity-*
theme values (#14278)
v4.0.0-alpha.34
Added
- Support opacity values in increments of
0.25
by default (#14980) - Support specifying the color interpolation method for gradients via modifier (#14984)
- Reintroduce
container
component as a utility (#14993, #14999) - Upgrade (experimental): Migrate
container
component configuration to CSS (#14999)
Fixed
- Ensure that CSS inside Svelte
<style>
blocks always run the expected Svelte processors when using the Vite extension (#14981) - Upgrade (experimental): Ensure it's safe to migrate
blur
,rounded
, orshadow
(#14979) - Upgrade (experimental): Do not rename classes using custom defined theme values (#14976)
- Upgrade (experimental): Ensure
@config
is injected in nearest common ancestor stylesheet (#14989) - Upgrade (experimental): Add missing
layer(…)
to imports above Tailwind directives (#14982)