Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more here.
This PR contains the following updates:
Release Notes
tailwindlabs/tailwindcss (tailwindcss)
Compare Source
Changed
- Drop warning from browser build (#18731)
- Drop exact duplicate declarations when emitting CSS (#18809)
Fixed
- Don't transition
visibility
when using transition
(#18795)
- Discard matched variants with unknown named values (#18799)
- Discard matched variants with non-string values (#18799)
- Show suggestions for known
matchVariant
values (#18798)
- Replace deprecated
clip
with clip-path
in sr-only
(#18769)
- Hide internal fields from completions in
matchUtilities
(#18820)
- Ignore
.vercel
folders by default (can be overridden by @source ...
rules) (#18855)
- Consider variants starting with
@-
to be invalid (e.g. @-2xl:flex
) (#18869)
- Do not allow custom variants to start or end with a
-
or _
(#18867, #18872)
- Upgrade: Migrate
aria
theme keys to @custom-variant
(#18815)
- Upgrade: Migrate
data
theme keys to @custom-variant
(#18816)
- Upgrade: Migrate
supports
theme keys to @custom-variant
(#18817)
Compare Source
Fixed
- Don't consider the global important state in
@apply
(#18404)
- Add missing suggestions for
flex-<number>
utilities (#18642)
- Fix trailing
)
from interfering with extraction in Clojure keywords (#18345)
- Detect classes inside Elixir charlist, word list, and string sigils (#18432)
- Track source locations through
@plugin
and @config
(#18345)
- Allow boolean values of
process.env.DEBUG
in @tailwindcss/node
(#18485)
- Ignore consecutive semicolons in the CSS parser (#18532)
- Center the dropdown icon added to an input with a paired datalist by default (#18511)
- Extract candidates in Slang templates (#18565)
- Improve error messages when encountering invalid functional utility names (#18568)
- Discard CSS AST objects with
false
or undefined
properties (#18571)
- Allow users to disable URL rebasing in
@tailwindcss/postcss
via transformAssetUrls: false
(#18321)
- Fix false-positive migrations in
addEventListener
and JavaScript variable names (#18718)
- Fix Standalone CLI showing default Bun help when run via symlink on Windows (#18723)
- Read from
--border-color-*
theme keys in divide-*
utilities for backwards compatibility (#18704)
- Don't scan
.hdr
and .exr
files for classes by default (#18734)
Compare Source
Fixed
- Add heuristic to skip candidate migrations inside
emit(...)
(#18330)
- Extract candidates with variants in Clojure/ClojureScript keywords (#18338)
- Document
--watch=always
in the CLI's usage (#18337)
- Add support for Vite 7 to
@tailwindcss/vite
(#18384)
Compare Source
Fixed
- Fix incorrectly generated CSS when using percentages in arbitrary values with calc, e.g.:
w-[calc(100%-var(--offset))]
(#18289)
Compare Source
Fixed
- Correctly parse custom properties with strings containing semicolons (#18251)
- Upgrade: Migrate arbitrary modifiers without percentage signs to bare values (e.g.
/[0.16]
→ /16
) (#18184)
- Upgrade: Migrate CSS variable shorthands where fallback value contains function call (#18184)
- Upgrade: Migrate negative arbitrary values to negative bare values (e.g.
mb-[-32rem]
→ -mb-128
) (#18212)
- Upgrade: Do not migrate
blur
in wire:model.blur
(#18216)
- Don't add spaces around CSS dashed idents when formatting math expressions (#18220)
Compare Source
Added
- Improve error messages when
@apply
fails (#18059)
Fixed
- Upgrade: Do not migrate declarations that look like candidates in
<style>
blocks (#18057, 18068)
- Upgrade: Don't error when looking for
tailwindcss
in pnpm monorepos (#18065)
- Upgrade: Don't error when updating dependencies in pnpm monorepos (#18065)
- Upgrade: Migrate deprecated
order-none
to order-0
(#18126)
- Support Leptos
class:
attributes when extracting classes (#18093)
- Fix "Cannot read properties of undefined" crash on malformed arbitrary value (#18133)
- Upgrade: Migrate
-mt-[0px]
to mt-[0px]
instead of the other way around (#18154)
- Fix Haml pre-processing crash when there is no
\n
at the end of the file (#18155)
- Ignore
.pnpm-store
folders by default (can be overridden by @source ...
rules) (#18163)
- Fix PostCSS crash when calling
toJSON()
(#18083)
Compare Source
Added
- Upgrade: Migrate bare values to named values (#18000)
- Upgrade: Added cache to improve template migration performance (#18025)
Fixed
- Allow
_
before numbers during candidate extraction (#17961)
- Prevent duplicate suggestions when using
@theme
and @utility
together (#17675)
- Ensure that media queries within
::before
and ::after
pseudo selectors create valid CSS rules in production builds (#17979)
- Ensure that the standalone CLI does not leave temporary files behind (#17981)
- Ensure
-rotate-*
utilities properly negate arbitrary values (#18014)
- Ignore custom variants using
:merge(...)
selectors in legacy JS plugins (#18020)
- Ensure classes containing
.
are properly extracted from Clojure files (#18038)
- Upgrade: Fix error when using
@import ... source(...)
(#17963)
- Upgrade: Change casing of utilities with named values to kebab-case to match updated theme variables (#18017)
- Upgrade: Don't migrate strings that match utility names in Vue attribute bindings other than
class
(#18025)
Compare Source
Added
- Upgrade: Automatically convert arbitrary values to named values when possible (e.g.
h-[1lh]
to h-lh
) (#17831, #17854)
- Upgrade: Update dependencies in parallel for improved performance (#17898)
- Add detailed logging about
@source
directives, discovered files and scanned files when using DEBUG=*
(#17906, #17952)
- Add support for generating source maps in development (#17775)
Fixed
- Ensure negative arbitrary
scale
values generate negative values (#17831)
- Fix HAML extraction with embedded Ruby (#17846)
- Don't scan files for utilities when using
@reference
(#17836)
- Fix incorrectly replacing
_
with in arbitrary modifier shorthand bg-red-500/(--my_opacity)
(#17889)
- Don't scan
.log
files for classes by default (#17906)
- Ensure that custom utilities applying other custom utilities don't swallow nested
@apply
rules (#17925)
- Download platform specific package if
optionalDependencies
are skipped (#17929)
Compare Source
Added
- Support using
@tailwindcss/upgrade
to upgrade between versions of v4.* (#17717)
- Add
h-lh
/ min-h-lh
/ max-h-lh
utilities (#17790)
- Transition
display
, visibility
, content-visibility
, overlay
, and pointer-events
when using transition
to simplify @starting-style
usage (#17812)
Fixed
- Don't scan
.geojson
or .db
files for classes by default (#17700, #17711)
- Hide default shadow suggestions when missing default shadow theme keys (#17743)
- Replace
_
with .
in theme suggestions for @utility
if surrounded by digits (#17733)
- Skip
color-mix(...)
when opacity is 100%
(#17815)
- PostCSS: Ensure that errors in imported stylesheets are recoverable (#17754)
- Upgrade: Bump all Tailwind CSS related dependencies during upgrade (#17763)
- Upgrade: Don't add
-
to variants starting with @
(#17814)
- Upgrade: Don't format stylesheets that didn't change when upgrading (#17824)
Changed
- Ignore
.hg
, .svn
, .venv
, venv
, .yarn
, .next
, .turbo
, .parcel-cache
, __pycache__
, and .svelte-kit
folders by default (can be overridden by @source ...
rules) (#17892)
@source
rules that point inside .hg
, .svn
, .venv
, venv
, .yarn
, .next
, .turbo
, .parcel-cache
, __pycache__
, and .svelte-kit
folders no longer consider your .gitignore
rules (#17892)
Compare Source
Added
- Add experimental
@tailwindcss/oxide-wasm32-wasi
target for running Tailwind in browser environments like StackBlitz (#17558)
Fixed
- Ensure
color-mix(...)
polyfills do not cause used CSS variables to be removed (#17555)
- Ensure
color-mix(...)
polyfills create fallbacks for theme variables that reference other theme variables (#17562)
- Fix brace expansion in declining ranges like
{10..0..5}
and {0..10..-5}
(#17591)
- Work around a Chrome rendering bug when using the
skew-*
utilities (#17627)
- Ensure container query variant names can contain hyphens (#17628)
- Ensure
shadow-inherit
, inset-shadow-inherit
, drop-shadow-inherit
, and text-shadow-inherit
inherit the shadow color (#17647)
- Ensure compatibility with array tuples used in
fontSize
JS theme keys (#17630)
- Ensure folders with binary file extensions in their names are scanned for utilities (#17595)
- Upgrade: Convert
fontSize
array tuple syntax to CSS theme variables (#17630)
Compare Source
Fixed
- Show warning when using unsupported bare value data type in
--value(...)
(#17464)
- PostCSS: Ensure changes to the input CSS file don't generate stale output when using Turbopack (#17554)
- Ensure classes are detected in Ruby's
%w
syntax in Slim templates (#17557)
Compare Source
Fixed
- Don't rely on the presence of
@layer base
to polyfill @property
(#17506)
- Support setting multiple inset shadows as arbitrary values (#17523)
- Fix
drop-shadow-*
utilities that are defined with multiple shadows (#17515)
- PostCSS: Fix race condition when two changes are queued concurrently (#17514)
- PostCSS: Ensure files containing
@tailwind utilities
are processed (#17514)
- Ensure the
color-mix(...)
polyfill creates fallbacks even when using colors that cannot be statically analyzed (#17513)
- Fix slow incremental builds with
@tailwindcss/vite
and @tailwindcss/postscss
(especially on Windows) (#17511)
- Vite: Fix missing CSS file in Qwik setups (#17533)
Compare Source
Fixed
- Disable padding in
@source inline(...)
brace expansion (#17491)
- Inject polyfills after
@import
and body-less @layer
(#17493)
- Ensure
@tailwindcss/cli
does not contain an import for jiti
(#17502)
Compare Source
Added
- Add
details-content
variant (#15319)
- Add
inverted-colors
variant (#11693)
- Add
noscript
variant (#11929, #17431)
- Add
items-baseline-last
and self-baseline-last
utilities (#13888, #17476)
- Add
pointer-none
, pointer-coarse
, and pointer-fine
variants (#16946)
- Add
any-pointer-none
, any-pointer-coarse
, and any-pointer-fine
variants (#16941)
- Add safe alignment utilities (#14607)
- Add
user-valid
and user-invalid
variants (#12370)
- Add
wrap-anywhere
, wrap-break-word
, and wrap-normal
utilities (#12128)
- Add
@source inline(...)
and @source not inline(...)
(#17147)
- Add
@source not "..."
(#17255)
- Add
text-shadow-*
utilities (#17389)
- Add
mask-*
utilities (#17134)
- Add
bg-{position,size}-*
utilities for arbitrary values (#17432)
- Add
shadow-*/<alpha>
, inset-shadow-*/<alpha>
, drop-shadow-*/<alpha>
, and text-shadow-*/<alpha>
utilities to control shadow opacity (#17398, #17434)
- Add
drop-shadow-<color>
utilities (#17434)
- Improve compatibility with older versions of Safari and Firefox (#17435)
Fixed
- Follow symlinks when resolving
@source
directives (#17391)
- Don't scan ignored files for classes when changing an ignored file triggers a rebuild using
@tailwindcss/cli
(#17255)
- Support negated
content
rules in legacy JavaScript configuration (#17255)
- Interpret syntax like
@("@​")md:...
as @md:...
in Razor files (#17427)
- Disallow top-level braces, top-level semicolons, and unbalanced parentheses and brackets in arbitrary values (#17361)
- Ensure the
--theme(...)
function still resolves to the CSS variables when using legacy JS plugins (#17458)
- Detect used theme variables in CSS module files (#17433, #17467)
Changed
- Ignore
node_modules
by default (can be overridden by @source ...
rules) (#17255)
@source
rules that include file extensions or point inside node_modules/
folders no longer consider your .gitignore
rules (#17255)
- Deprecate
bg-{left,right}-{top,bottom}
in favor of bg-{top,bottom}-{left,right}
utilities (#17378)
- Deprecate
object-{left,right}-{top,bottom}
in favor of object-{top,bottom}-{left,right}
utilities (#17437)
Compare Source
Fixed
- Fix an issue causing the CLI to hang when processing Ruby files (#17383)
Compare Source
Added
- Add support for literal values in
--value('...')
and --modifier('...')
(#17304)
Fixed
- Fix class extraction followed by
(
in Pug (#17320)
- Ensure
@keyframes
for theme animations are emitted if they are referenced following a comma (#17352)
- Vite: Ensure that updates to an imported CSS file are properly propagated after updating source files (#17347)
- Pre process
Slim
templates embedded in Ruby files (#17336)
- Error when input and output files resolve to the same file when using the CLI (#17311)
- Add missing suggestions when
--spacing(--value(integer, number))
is used (#17308)
- Add
::-webkit-details-marker
pseudo to marker
variant (#17362)
Compare Source
Fixed
- Fix incorrect angle in
-bg-conic-*
utilities (#17174)
- Fix
border-[12px_4px]
being interpreted as a border-color
instead of a border-width
(#17248)
- Work around a crash in Safari 16.4 and 16.5 when using the default Preflight styles (#17306)
- Pre-process
<template lang="...">
in Vue files (#17252)
- Ensure that all CSS variables used by Preflight are prefixed (#17036)
- Prevent segfault when loaded in a worker thread on Linux (#17276)
- Ensure multiple
--value(...)
or --modifier(...)
calls don't delete subsequent declarations (#17273)
- Fix class extraction followed by
(
in Slim (#17278)
- Export
PluginUtils
from tailwindcss/plugin
for compatibility with v3 (#17299)
- Remove redundant
line-height: initial
from Preflight (#15212)
- Increase Standalone hardware compatibility on macOS x64 builds (#17267)
- Ensure that the CSS file rebuilds if a new CSS variable is used from templates (#17301)
Changed
- The
--theme(...)
function now returns CSS variables from your theme variables unless used inside positions where CSS variables are invalid (e.g. inside @media
queries) (#17036)
Compare Source
Fixed
- Do not extract candidates with JS string interpolation
${
(#17142)
- Fix extraction of variants containing
.
character (#17153)
- Fix extracting candidates in Clojure/ClojureScript (#17087)
Compare Source
Fixed
- Fix Haml pre-processing (#17051)
- Ensure
.node
and .wasm
files are not scanned for utilities (#17123)
- Improve performance when scanning JSON files (#17125)
- Fix extracting candidates containing dots in Haml, Pug, and Slim pre processors (#17094, #17085, #17113)
- Don't create invalid CSS when encountering a link wrapped in square brackets (#17129)
Compare Source
Fixed
- Vite: Fix
url(...)
rebasing in transitively imported CSS files (#16965)
- PostCSS: Rebase
url(...)
s in imported CSS files (#16965)
- Ensure utilities are sorted based on their actual property order (#16995)
- Ensure strings in Pug and Slim templates are handled correctly (#17000)
- Ensure classes between
}
and {
are properly extracted (#17001)
- Fix
razor
/cshtml
pre-processing (#17027)
- Ensure extracting candidates from JS embedded in a PHP string works as expected (#17031)
Compare Source
Fixed
- Ensure classes containing
--
are extracted correctly (#16972)
- Ensure classes containing numbers followed by dash or underscore are extracted correctly (#16980)
- Ensure arbitrary container queries are extracted correctly (#16984)
- Ensure classes ending in
[
are extracted in Slim templating language (#16985)
- Ensure arbitrary variables with data types are extracted correctly (#16986)
Compare Source
Added
- Add
col-<number>
and row-<number>
utilities for grid-column
and grid-row
(#15183)
Fixed
- Ensure
not-*
does not remove :is(...)
from variants (#16825)
- Ensure
@keyframes
are correctly emitted when using a prefix (#16850)
- Don't swallow
@utility
declarations when @apply
is used in nested rules (#16940)
- Ensure
outline-hidden
behaves like outline-none
outside of forced colors mode (#16943)
- Allow
!important
on CSS variables again (#16873)
- Vite: Do not crash when encountering an
.svg
file with #
or ?
in the filename (#16957)
- Ensure utilities are properly detected within square brackets (#16306)
- Ensure utilities are properly detected using Angular's conditional class binding syntax (#16306)
- Ensure utilities starting with numbers are properly extracted from Slim templates (#16306)
- Discard arbitrary property candidates that have guaranteed-invalid property names (#16306)
Changed
- Removed
max-w-auto
and max-h-auto
utilities as they generate invalid CSS (#16917)
- Replaced the existing candidate extractor with a brand new extractor to improve maintainability, correctness, and performance (#16306)
Compare Source
Fixed
- Make JS APIs available to plugins and configs in the Standalone CLI (#15934)
- Vite: Don't crash when importing a virtual module from JavaScript that ends in
.css
(#16780)
- Fix an issue where
@reference "..."
would sometimes omit keyframe animations (#16774)
- Ensure
z-*!
utilities are properly marked as !important
(#16795)
- Read UTF-8 CSS files that start with a byte-order mark (BOM) (#16796)
- Ensure nested functions in selectors used with JavaScript plugins are not truncated (#16802)
Changed
- Emit variable fallbacks when using
@reference "..."
instead of duplicate CSS variable declarations (#16774)
Compare Source
Added
- Allow
@import
with theme(...)
options for stylesheets that contain more than just @theme
rules (#16514)
Fixed
- Don't add
!important
to CSS variable declarations when using the important modifier (#16668)
- Vite: Ignore files and directories specified in your
.gitignore
file when using automatic source detection(#16631)
- Vite: Don't rely on the module graph for detecting candidates to ensure setups with multiple Vite builds work as expected (#16631)
- Vite: Ensure Astro production builds always contain classes used in client-only components (#16631)
- Vite: Always scan raw file contents for utility classes before any other transforms have been applied to ensure utility classes are scanned without any additional escaping (#16631)
- Ensure utilities with more declarations are always sorted before utilities with fewer declarations when utilities only define CSS variables (#16715)
- Only include
translate-z-px
utilities once in compiled CSS (#16718)
Changed
- Don't include theme variables that aren't used in compiled CSS (#16211, #16676)
Compare Source
Fixed
- Export
tailwindcss/lib/util/flattenColorPalette.js
for backward compatibility (#16411)
- Fix sorting of numeric utility suggestions when they have different magnitudes (#16414)
- Show suggestions for fractions in IntelliSense (#16353)
- Don’t replace
_
in suggested theme keys (#16433)
- Ensure
--default-outline-width
can be used to change the outline-width
value of the outline
utility (#16469)
- Ensure drop shadow utilities don't inherit unexpectedly (#16471)
- Export config and plugin types from
tailwindcss/plugin
for backward compatibility (#16505)
- Ensure JavaScript plugins that emit nested rules referencing the utility name work as expected (#16539)
- Statically link Visual Studio redistributables in
@tailwindcss/oxide
Windows builds (#16602)
- Ensure that Next.js splat routes are scanned for classes (#16457)
- Pin exact version of
tailwindcss
in @tailwindcss/*
packages (#16623)
- Upgrade: Report errors when updating dependencies (#16504)
- Upgrade: Ensure a
darkMode
JS config setting with block syntax converts to use @slot
(#16507)
- Upgrade: Ensure the latest version of
tailwindcss
and @tailwindcss/postcss
are installed when upgrading (#16620)
Compare Source
Fixed
- Revert change to no longer include theme variables that aren't used in compiled CSS (#16403)
- Upgrade: Don't migrate
blur
to blur-sm
when used with Next.js <Image placeholder="blur" />
(#16405)
Compare Source
Added
- Add
@theme static
option for always including theme variables in compiled CSS (#16211)
Fixed
- Remove rogue
console.log
from @tailwindcss/vite
(#16307)
Changed
- Don't include theme variables that aren't used in compiled CSS (#16211)
Compare Source
Fixed
- Fix a crash when setting JS theme values to
null
(#16210)
- Ensure escaped underscores in CSS variables in arbitrary values are properly unescaped (#16206)
- Ensure that the
containers
JS theme key is added to the --container-*
namespace (#16169)
- Ensure theme
@keyframes
are generated even if an --animation-*
variable spans multiple lines (#16237)
- Vite: Skip parsing stylesheets with the
?commonjs-proxy
flag (#16238)
- Fix
order-first
and order-last
for Firefox (#16266)
- Fix support for older instruction sets on Linux x64 builds of the standalone CLI (#16244)
- Ensure
NODE_PATH
is respected when resolving JavaScript and CSS files (#16274)
- Ensure Node addons are packaged correctly with FreeBSD builds (#16277)
- Fix an issue where
@variant
inside a referenced stylesheet could cause a stack overflow (#16300)
Compare Source
Fixed
- Fix incorrect removal of
@import url();
(#16144)
Compare Source
Fixed
- Only generate positive
grid-cols-*
and grid-rows-*
utilities (#16020)
- Ensure escaped theme variables are handled correctly (#16064)
- Ensure we process Tailwind CSS features when only using
@reference
or @variant
(#16057)
- Refactor gradient implementation to work around prettier/prettier#17058 (#16072)
- Vite: Ensure hot-reloading works with SolidStart setups (#16052)
- Vite: Fix a crash when starting the development server in SolidStart setups (#16052)
- Vite: Don't rebase URLs that appear to be aliases (#16078)
- Vite: Transform
<style>
blocks in HTML files (#16069)
- Prevent camel-casing CSS custom properties added by JavaScript plugins (#16103)
- Do not emit
@keyframes
in @theme reference
(#16120)
- Discard invalid declarations when parsing CSS (#16093)
- Do not emit empty CSS rules and at-rules (#16121)
- Handle
@variant
when at the top-level of a stylesheet (#16129)
Compare Source
Fixed
- Fix an issue causing the CLI to hang when processing Ruby files (#17383)
Compare Source
Added
- New high-performance engine — where full builds are up to 5x faster, and incremental builds are over 100x faster — and measured in microseconds.
- Designed for the modern web — built on cutting-edge CSS features like cascade layers, registered custom properties with
@property
, and color-mix()
.
- Simplified installation — fewer dependencies, zero configuration, and just a single line of code in your CSS file.
- First-party Vite plugin — tight integration for maximum performance and minimum configuration.
- Automatic content detection — all of your template files are discovered automatically, with no configuration required.
- Built-in import support — no additional tooling necessary to bundle multiple CSS files.
- CSS-first configuration — a reimagined developer experience where you customize and extend the framework directly in CSS instead of a JavaScript configuration file.
- CSS theme variables — all of your design tokens exposed as native CSS variables so you can access them anywhere.
- Dynamic utility values and variants — stop guessing what values exist in your spacing scale, or extending your configuration for things like basic data attributes.
- Modernized P3 color palette — a redesigned, more vivid color palette that takes full advantage of modern display technology.
- Container queries — first-class APIs for styling elements based on their container size, no plugins required.
- New 3D transform utilities — transform elements in 3D space directly in your HTML.
- Expanded gradient APIs — radial and conic gradients, interpolation modes, and more.
- @starting-style support — a new variant you can use to create enter and exit transitions, without the need for JavaScript.
- not-* variant — style an element only when it doesn't match another variant, custom selector, or media or feature query.
- Even more new utilities and variants — including support for
color-scheme
, field-sizing
, complex shadows, inert
, and more.
Start using Tailwind CSS v4.0 today by installing it in a new project, or playing with it directly in the browser on Tailwind Play.
For existing projects, we've published a comprehensive upgrade guide and built an automated upgrade tool to get you on the latest version as quickly and painlessly as possible.
For a deep-dive into everything that's new, check out the announcement post.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.
Uh oh!
There was an error while loading. Please reload this page.
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more here.
This PR contains the following updates:
^3.4.17
->^4.1.13
Release Notes
tailwindlabs/tailwindcss (tailwindcss)
v4.1.13
Compare Source
Changed
Fixed
visibility
when usingtransition
(#18795)matchVariant
values (#18798)clip
withclip-path
insr-only
(#18769)matchUtilities
(#18820).vercel
folders by default (can be overridden by@source ...
rules) (#18855)@-
to be invalid (e.g.@-2xl:flex
) (#18869)-
or_
(#18867, #18872)aria
theme keys to@custom-variant
(#18815)data
theme keys to@custom-variant
(#18816)supports
theme keys to@custom-variant
(#18817)v4.1.12
Compare Source
Fixed
@apply
(#18404)flex-<number>
utilities (#18642))
from interfering with extraction in Clojure keywords (#18345)@plugin
and@config
(#18345)process.env.DEBUG
in@tailwindcss/node
(#18485)false
orundefined
properties (#18571)@tailwindcss/postcss
viatransformAssetUrls: false
(#18321)addEventListener
and JavaScript variable names (#18718)--border-color-*
theme keys individe-*
utilities for backwards compatibility (#18704).hdr
and.exr
files for classes by default (#18734)v4.1.11
Compare Source
Fixed
emit(...)
(#18330)--watch=always
in the CLI's usage (#18337)@tailwindcss/vite
(#18384)v4.1.10
Compare Source
Fixed
w-[calc(100%-var(--offset))]
(#18289)v4.1.9
Compare Source
Fixed
/[0.16]
→/16
) (#18184)mb-[-32rem]
→-mb-128
) (#18212)blur
inwire:model.blur
(#18216)v4.1.8
Compare Source
Added
@apply
fails (#18059)Fixed
<style>
blocks (#18057, 18068)tailwindcss
in pnpm monorepos (#18065)order-none
toorder-0
(#18126)class:
attributes when extracting classes (#18093)-mt-[0px]
tomt-[0px]
instead of the other way around (#18154)\n
at the end of the file (#18155).pnpm-store
folders by default (can be overridden by@source ...
rules) (#18163)toJSON()
(#18083)v4.1.7
Compare Source
Added
Fixed
_
before numbers during candidate extraction (#17961)@theme
and@utility
together (#17675)::before
and::after
pseudo selectors create valid CSS rules in production builds (#17979)-rotate-*
utilities properly negate arbitrary values (#18014):merge(...)
selectors in legacy JS plugins (#18020).
are properly extracted from Clojure files (#18038)@import ... source(...)
(#17963)class
(#18025)v4.1.6
Compare Source
Added
h-[1lh]
toh-lh
) (#17831, #17854)@source
directives, discovered files and scanned files when usingDEBUG=*
(#17906, #17952)Fixed
scale
values generate negative values (#17831)@reference
(#17836)_
with in arbitrary modifier shorthandbg-red-500/(--my_opacity)
(#17889).log
files for classes by default (#17906)@apply
rules (#17925)optionalDependencies
are skipped (#17929)v4.1.5
Compare Source
Added
@tailwindcss/upgrade
to upgrade between versions of v4.* (#17717)h-lh
/min-h-lh
/max-h-lh
utilities (#17790)display
,visibility
,content-visibility
,overlay
, andpointer-events
when usingtransition
to simplify@starting-style
usage (#17812)Fixed
.geojson
or.db
files for classes by default (#17700, #17711)_
with.
in theme suggestions for@utility
if surrounded by digits (#17733)color-mix(...)
when opacity is100%
(#17815)-
to variants starting with@
(#17814)Changed
.hg
,.svn
,.venv
,venv
,.yarn
,.next
,.turbo
,.parcel-cache
,__pycache__
, and.svelte-kit
folders by default (can be overridden by@source ...
rules) (#17892)@source
rules that point inside.hg
,.svn
,.venv
,venv
,.yarn
,.next
,.turbo
,.parcel-cache
,__pycache__
, and.svelte-kit
folders no longer consider your.gitignore
rules (#17892)v4.1.4
Compare Source
Added
@tailwindcss/oxide-wasm32-wasi
target for running Tailwind in browser environments like StackBlitz (#17558)Fixed
color-mix(...)
polyfills do not cause used CSS variables to be removed (#17555)color-mix(...)
polyfills create fallbacks for theme variables that reference other theme variables (#17562){10..0..5}
and{0..10..-5}
(#17591)skew-*
utilities (#17627)shadow-inherit
,inset-shadow-inherit
,drop-shadow-inherit
, andtext-shadow-inherit
inherit the shadow color (#17647)fontSize
JS theme keys (#17630)fontSize
array tuple syntax to CSS theme variables (#17630)v4.1.3
Compare Source
Fixed
--value(...)
(#17464)%w
syntax in Slim templates (#17557)v4.1.2
Compare Source
Fixed
@layer base
to polyfill@property
(#17506)drop-shadow-*
utilities that are defined with multiple shadows (#17515)@tailwind utilities
are processed (#17514)color-mix(...)
polyfill creates fallbacks even when using colors that cannot be statically analyzed (#17513)@tailwindcss/vite
and@tailwindcss/postscss
(especially on Windows) (#17511)v4.1.1
Compare Source
Fixed
@source inline(...)
brace expansion (#17491)@import
and body-less@layer
(#17493)@tailwindcss/cli
does not contain an import forjiti
(#17502)v4.1.0
Compare Source
Added
details-content
variant (#15319)inverted-colors
variant (#11693)noscript
variant (#11929, #17431)items-baseline-last
andself-baseline-last
utilities (#13888, #17476)pointer-none
,pointer-coarse
, andpointer-fine
variants (#16946)any-pointer-none
,any-pointer-coarse
, andany-pointer-fine
variants (#16941)user-valid
anduser-invalid
variants (#12370)wrap-anywhere
,wrap-break-word
, andwrap-normal
utilities (#12128)@source inline(...)
and@source not inline(...)
(#17147)@source not "..."
(#17255)text-shadow-*
utilities (#17389)mask-*
utilities (#17134)bg-{position,size}-*
utilities for arbitrary values (#17432)shadow-*/<alpha>
,inset-shadow-*/<alpha>
,drop-shadow-*/<alpha>
, andtext-shadow-*/<alpha>
utilities to control shadow opacity (#17398, #17434)drop-shadow-<color>
utilities (#17434)Fixed
@source
directives (#17391)@tailwindcss/cli
(#17255)content
rules in legacy JavaScript configuration (#17255)@("@​")md:...
as@md:...
in Razor files (#17427)--theme(...)
function still resolves to the CSS variables when using legacy JS plugins (#17458)Changed
node_modules
by default (can be overridden by@source ...
rules) (#17255)@source
rules that include file extensions or point insidenode_modules/
folders no longer consider your.gitignore
rules (#17255)bg-{left,right}-{top,bottom}
in favor ofbg-{top,bottom}-{left,right}
utilities (#17378)object-{left,right}-{top,bottom}
in favor ofobject-{top,bottom}-{left,right}
utilities (#17437)v4.0.17
Compare Source
Fixed
v4.0.16
Compare Source
Added
--value('...')
and--modifier('...')
(#17304)Fixed
(
in Pug (#17320)@keyframes
for theme animations are emitted if they are referenced following a comma (#17352)Slim
templates embedded in Ruby files (#17336)--spacing(--value(integer, number))
is used (#17308)::-webkit-details-marker
pseudo tomarker
variant (#17362)v4.0.15
Compare Source
Fixed
-bg-conic-*
utilities (#17174)border-[12px_4px]
being interpreted as aborder-color
instead of aborder-width
(#17248)<template lang="...">
in Vue files (#17252)--value(...)
or--modifier(...)
calls don't delete subsequent declarations (#17273)(
in Slim (#17278)PluginUtils
fromtailwindcss/plugin
for compatibility with v3 (#17299)line-height: initial
from Preflight (#15212)Changed
--theme(...)
function now returns CSS variables from your theme variables unless used inside positions where CSS variables are invalid (e.g. inside@media
queries) (#17036)v4.0.14
Compare Source
Fixed
${
(#17142).
character (#17153)v4.0.13
Compare Source
Fixed
.node
and.wasm
files are not scanned for utilities (#17123)v4.0.12
Compare Source
Fixed
url(...)
rebasing in transitively imported CSS files (#16965)url(...)
s in imported CSS files (#16965)}
and{
are properly extracted (#17001)razor
/cshtml
pre-processing (#17027)v4.0.11
Compare Source
Fixed
--
are extracted correctly (#16972)[
are extracted in Slim templating language (#16985)v4.0.10
Compare Source
Added
col-<number>
androw-<number>
utilities forgrid-column
andgrid-row
(#15183)Fixed
not-*
does not remove:is(...)
from variants (#16825)@keyframes
are correctly emitted when using a prefix (#16850)@utility
declarations when@apply
is used in nested rules (#16940)outline-hidden
behaves likeoutline-none
outside of forced colors mode (#16943)!important
on CSS variables again (#16873).svg
file with#
or?
in the filename (#16957)Changed
max-w-auto
andmax-h-auto
utilities as they generate invalid CSS (#16917)v4.0.9
Compare Source
Fixed
.css
(#16780)@reference "..."
would sometimes omit keyframe animations (#16774)z-*!
utilities are properly marked as!important
(#16795)Changed
@reference "..."
instead of duplicate CSS variable declarations (#16774)v4.0.8
Compare Source
Added
@import
withtheme(...)
options for stylesheets that contain more than just@theme
rules (#16514)Fixed
!important
to CSS variable declarations when using the important modifier (#16668).gitignore
file when using automatic source detection(#16631)translate-z-px
utilities once in compiled CSS (#16718)Changed
v4.0.7
Compare Source
Fixed
tailwindcss/lib/util/flattenColorPalette.js
for backward compatibility (#16411)_
in suggested theme keys (#16433)--default-outline-width
can be used to change theoutline-width
value of theoutline
utility (#16469)tailwindcss/plugin
for backward compatibility (#16505)@tailwindcss/oxide
Windows builds (#16602)tailwindcss
in@tailwindcss/*
packages (#16623)darkMode
JS config setting with block syntax converts to use@slot
(#16507)tailwindcss
and@tailwindcss/postcss
are installed when upgrading (#16620)v4.0.6
Compare Source
Fixed
blur
toblur-sm
when used with Next.js<Image placeholder="blur" />
(#16405)v4.0.5
Compare Source
Added
@theme static
option for always including theme variables in compiled CSS (#16211)Fixed
console.log
from@tailwindcss/vite
(#16307)Changed
v4.0.4
Compare Source
Fixed
null
(#16210)containers
JS theme key is added to the--container-*
namespace (#16169)@keyframes
are generated even if an--animation-*
variable spans multiple lines (#16237)?commonjs-proxy
flag (#16238)order-first
andorder-last
for Firefox (#16266)NODE_PATH
is respected when resolving JavaScript and CSS files (#16274)@variant
inside a referenced stylesheet could cause a stack overflow (#16300)v4.0.3
Compare Source
Fixed
@import url();
(#16144)v4.0.2
Compare Source
Fixed
grid-cols-*
andgrid-rows-*
utilities (#16020)@reference
or@variant
(#16057)<style>
blocks in HTML files (#16069)@keyframes
in@theme reference
(#16120)@variant
when at the top-level of a stylesheet (#16129)v4.0.1
Compare Source
Fixed
v4.0.0
Compare Source
Added
@property
, andcolor-mix()
.color-scheme
,field-sizing
, complex shadows,inert
, and more.Start using Tailwind CSS v4.0 today by installing it in a new project, or playing with it directly in the browser on Tailwind Play.
For existing projects, we've published a comprehensive upgrade guide and built an automated upgrade tool to get you on the latest version as quickly and painlessly as possible.
For a deep-dive into everything that's new, check out the announcement post.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.