Skip to content

Releases: tailwindlabs/tailwindcss

v4.0.0-beta.6

06 Dec 19:46
3d0b86c
Compare
Choose a tag to compare
v4.0.0-beta.6 Pre-release
Pre-release

Fixed

  • Ensure @import "…" reference never generates utilities (#15307)

v4.0.0-beta.5

04 Dec 15:46
85da88f
Compare
Choose a tag to compare
v4.0.0-beta.5 Pre-release
Pre-release

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

03 Dec 19:41
Compare
Choose a tag to compare

Fixed

  • Ensure the TypeScript types for PluginsConfig allow undefined values (#14668)

Changed

  • Bumped lilconfig to v3.x (#15289)

v4.0.0-beta.4

29 Nov 16:30
9736506
Compare
Choose a tag to compare
v4.0.0-beta.4 Pre-release
Pre-release

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 to backdrop-blur-sm and backdrop-blur-sm to backdrop-blur-xs (#15242)

v4.0.0-beta.3

27 Nov 17:35
Compare
Choose a tag to compare
v4.0.0-beta.3 Pre-release
Pre-release

Fixed

  • Ensure any necessary vendor prefixes are generated for iOS Safari, Firefox, and Chrome (#15166)
  • Ensure .group and .peer are prefixed when using the prefix(…) 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 use calc(…) (#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

22 Nov 16:26
bd43d63
Compare
Choose a tag to compare
v4.0.0-beta.2 Pre-release
Pre-release

Fixed

  • Use configured --letter-spacing values for custom font size utilities (#15099)
  • Ensure space-x/y-* and divide-x/y-* with variants can undo space-x/y-reverse and divide-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

21 Nov 18:34
5e4f565
Compare
Choose a tag to compare
v4.0.0-beta.1 Pre-release
Pre-release

Tailwind CSS v4.0 Beta

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

21 Nov 13:50
11dce5a
Compare
Choose a tag to compare
v4.0.0-alpha.36 Pre-release
Pre-release

Added

  • Add consistent base styles for buttons and form controls (#15036)
  • Upgrade (experimental): Convert group-[]:flex to in-[.group]:flex (#15054)
  • Upgrade (experimental): Add form reset styles to CSS files for compatibility with v3 (#15036)
  • Upgrade (experimental): Migrate ring to ring-3 (#15063)

Fixed

  • Upgrade (experimental): Ensure migrating to the in-* requires a descendant selector (#15054)

Changed

  • Use single drop shadow values instead of multiple (#15056)
  • Do not parse invalid candidates with empty arbitrary values (#15055)

v4.0.0-alpha.35

21 Nov 13:50
8b098fc
Compare
Choose a tag to compare
v4.0.0-alpha.35 Pre-release
Pre-release

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() and addComponents() 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 and transition-normal utilities for transition-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 and esm-only plugins (#15041)
  • Perform calc(…) on just values for negative -rotate-* utilities, not on the rotateX/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 resolving tailwindcss/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

14 Nov 17:52
953ecd2
Compare
Choose a tag to compare
v4.0.0-alpha.34 Pre-release
Pre-release

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, or shadow (#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)