Releases: tailwindlabs/tailwindcss
Releases · tailwindlabs/tailwindcss
v4.0.0-alpha.31
Added
- Support specifying the base path for automatic source detection using a
source(…)
function on@tailwind utilities
or@import "tailwindcss"
(#14820) - Support disabling automatic source detection with
source(none)
(#14820) - Support passing directories to
@source
without needing to pass a complete glob (#14820) - Upgrade (experimental): Bump
prettier-plugin-tailwindcss
to latest version during upgrade (#14808)
Fixed
- Support calling
config()
with no arguments in plugin API (#14799)
Changed
v4.0.0-alpha.30
Added
- Support
not-*
with all built-in media query andsupports-*
variants (#14743) - Support
not-*
with custom variants containing at-rules (#14743) - Support
group-*
,peer-*
, andhas-*
with custom variants containing multiple, non-nested style rules (#14743)
Fixed
- Ensure individual logical property utilities are sorted later than left/right pair utilities (#14777)
- Don't migrate important modifiers inside conditional statements in Vue and Alpine (e.g.
<div v-if="!border" />
) (#14774) - Ensure third-party plugins with
exports
in theirpackage.json
are resolved correctly (#14775) - Ensure underscores in the
url()
function are never unescaped (#14776) - Ensure complex variants are displayed correctly in IntelliSense completions (#14743)
- Upgrade (experimental): Ensure
@import
statements for relative CSS files are actually migrated to use relative path syntax (#14769) - Upgrade (experimental): Only generate Preflight compatibility styles when Preflight is used (#14773)
- Upgrade (experimental): Don't escape underscores when printing theme values migrated to CSS variables in arbitrary values (e.g.
m-[var(--spacing-1_5)]
instead ofm-[var(--spacing-1\_5)]
) (#14778) - Upgrade (experimental): Ensure
layer(…)
on@import
is only removed when@utility
is present (#14783)
Changed
v4.0.0-alpha.29
Added
- Upgrade (experimental): Migrate
plugins
with options to CSS (#14700) - Upgrade (experimental): Allow JS configuration files with
corePlugins
options to be migrated to CSS (#14742) - Upgrade (experimental): Migrate
@import
statements for relative CSS files to use relative path syntax (e.g../file.css
) (#14755) - Upgrade (experimental): Migrate
max-w-screen-*
utilities tomax-w-[var(…)]
(#14754) - Upgrade (experimental): Migrate
@variants
and@responsive
directives (#14748) - Upgrade (experimental): Migrate
@screen
directive (#14749) - Upgrade (experimental): Generate compatibility styles for legacy default border color (#14746)
- Upgrade (experimental): Generate compatibility styles for legacy default border width on form elements (#14746)
Fixed
- Allow spaces spaces around operators in attribute selector variants (#14703)
- Ensure color opacity modifiers work with OKLCH colors (#14741)
- Ensure changes to the input CSS file result in a full rebuild (#14744)
- Add
postcss
as a dependency of@tailwindcss/postcss
(#14750) - Ensure the JS
theme()
function can reference CSS theme variables that contain special characters without escaping them (e.g. referencing--width-1\/2
astheme('width.1/2')
) (#14739) - Ensure JS theme keys containing special characters correctly produce utility classes (e.g.
'1/2': 50%
tow-1/2
) (#14739) - Always emit keyframes registered in
addUtilities
(#14747) - Ensure loading stylesheets via the
?raw
and?url
static asset query works when using the Vite plugin (#14716) - Upgrade (experimental): Migrate
flex-grow
togrow
andflex-shrink
toshrink
(#14721) - Upgrade (experimental): Minify arbitrary values when printing candidates (#14720)
- Upgrade (experimental): Ensure legacy theme values ending in
1
(liketheme(spacing.1)
) are correctly migrated to custom properties (#14724) - Upgrade (experimental): Migrate arbitrary values to bare values for the
from-*
,via-*
, andto-*
utilities (#14725) - Upgrade (experimental): Ensure
layer(utilities)
is removed from@import
to keep@utility
top-level (#14738) - Upgrade (experimental): Ensure JS theme keys with special characters are escaped when migrated to CSS variables (#14736)
- Upgrade (experimental): Don't migrate important modifiers that are actually logical negations (e.g.
let foo = !border
tolet foo = border!
) (#14737)
Changed
v4.0.0-alpha.28
Added
- Add first draft of new wide-gamut color palette (#14693)
- Support linear gradient angles as bare values (#14707)
- Interpolate gradients in OKLCH by default (#14708)
- Upgrade (experimental): Migrate
theme(…)
calls tovar(…)
or to the moderntheme(…)
syntax (#14664, #14695) - Upgrade (experimental): Support migrating JS configurations to CSS that contain functions inside the
theme
object (#14675)
Fixed
- Ensure
theme
values defined outside ofextend
in JS configuration files overwrite all existing values for that namespace (#14672) - Remove unnecessary variable fallbacks in gradient utilities (#14705)
- Upgrade (experimental): Speed up template migrations (#14679)
- Upgrade (experimental): Don't generate invalid CSS when migrating a complex
screens
config (#14691)
v4.0.0-alpha.27
Added
- Add support for
tailwindcss/colors.js
,tailwindcss/defaultTheme.js
, andtailwindcss/plugin.js
exports (#14595) - Support
keyframes
in JS config file themes (#14594) - Support the
color
parameter in JS theme configuration callbacks (#14651) - Support using the object parameter in the JS theme configuration callback as
theme()
function (#14659) - Upgrade (experimental): Automatically discover JavaScript config files (#14597)
- Upgrade (experimental): Inject
@config "…"
when atailwind.config.{js,ts,…}
is detected (#14635) - Upgrade (experimental): Migrate
@media screen(…)
when running codemods (#14603) - Upgrade (experimental): Migrate
aria-*
,data-*
, andsupports-*
variants from arbitrary values to bare values (#14644) - Upgrade (experimental): Migrate arbitrary values to bare values (#14669)
- Upgrade (experimental): Migrate legacy classes to the v4 alternative (#14643)
- Upgrade (experimental): Migrate static JS configurations to CSS (#14639, #14650, #14648, #14666)
- Upgrade (experimental): Migrate v3 PostCSS setups to v4 in some cases (#14612)
Fixed
- Don’t crash when scanning a candidate equal to the configured prefix (#14588)
- Ensure there's always a space before
!important
when stringifying CSS (#14611) - Don't set
display: none
on elements that usehidden="until-found"
(#14631) - Ensure the CSS
theme()
function resolves to the right value in some compatibility situations (#14614) - Fix issue that could cause the CLI to crash when files are deleted while watching (#14616)
- Ensure custom variants using the JS API have access to modifiers (#14637)
- Ensure auto complete suggestions work when using
matchUtilities
(#14589) - Pass options when using
addComponents
andmatchComponents
(#14590) - Ensure
boxShadow
andanimation
theme keys in JS config files are accessible under--shadow-*
and--animate-*
using thetheme()
function (#14642) - Ensure all theme keys with new names are also accessible under their old names when using the
theme()
function with the legacy dot notation syntax (#14642) - Ensure
var(…)
can be used as the opacity value inside thetheme([path] / [modifier])
function (#14653) - Ensure
font-stretch
utilities only accepts positive integer bare values (#14670) - Upgrade (experimental): Ensure CSS before a layer stays unlayered when running codemods (#14596)
- Upgrade (experimental): Resolve issues where some prefixed candidates were not properly migrated (#14600)
v3.4.14
v4.0.0-alpha.26
Added
- Add support for prefixes (#14501)
- Expose timing information in debug mode (#14553)
- Add support for
blocklist
in JS config files (#14556) - Add
color-scheme
utilities (#14567) - Add support for
important
option in JS config files (#14448) - Upgrade (experimental): Convert
@import "tailwindcss/tailwind.css"
to@import "tailwindcss"
in CSS files (#14514) - Upgrade (experimental): Apply all utility upgrades to
@apply
in CSS files (#14574) - Upgrade (experimental): Update variant order in template files (#14524)
- Upgrade (experimental): Convert
bg-gradient-*
utilities tobg-linear-*
in template files (#14537) - Upgrade (experimental): Convert legacy prefixes to variant prefixes in template files (#14557)
- Upgrade (experimental): Convert bare CSS variables in arbitrary values to
var(…)
in template files (#14526) - Upgrade (experimental): Convert legacy important modifier syntax to trailing syntax (#14502)
Fixed
- Use the right import base path when using the CLI to reading files from stdin (#14522)
- Ensure that
@utility
is top-level and cannot be nested (#14525) - Only setup a single compiler in
@tailwindcss/postcss
for initial builds (#14565) - Ensure editing imported CSS files triggers a rebuild (#14561)
- Ensure
@apply
and CSS functions work inside imported stylesheets (#14576) - Upgrade (experimental): Don't wrap custom CSS after utilities in a layer (#14512)
- Upgrade (experimental): Don't add empty
layer()
to@import
at-rules when the styles do not need to be imported into a layer (#14513) - Upgrade (experimental): Don't wrap comment nodes in
@layer
when running codemods (#14517) - Upgrade (experimental): Fix scenario where selectors can be lost in multi-selector rules (#14518)
- Upgrade (experimental): Ensure custom CSS before
@tailwind
rules is wrapped with@layer base
when prepending@import "tailwindcss"
to the top of the file (#14536)
Changed
- Disallow bare values with decimal places (#14562)
v4.0.0-alpha.25
Added
- Add support for
aria
,supports
, anddata
variants defined in JS config files (#14407) - Add
@tailwindcss/upgrade
tooling (#14434) - Support
screens
in JS config files (#14415) - Add
bg-radial-*
andbg-conic-*
utilities for radial and conic gradients (#14467) - Add new
shadow-initial
andinset-shadow-initial
utilities for resetting shadow colors (#14468) - Add
field-sizing-*
utilities (#14469) - Include gradient color properties in color transitions (#14489)
- Experimental: Add CSS codemods for
@apply
(#14411) - Experimental: Add CSS codemods for migrating
@tailwind
directives (#14411, #14504) - Experimental: Add CSS codemods for migrating
@layer utilities
and@layer components
(#14455)
Fixed
- Support
borderRadius.*
as an alias for--radius-*
when using dot notation inside thetheme()
function (#14436) - Ensure individual variants from groups are always sorted earlier than stacked variants from the same groups (#14431)
- Allow
anchor-size(…)
in arbitrary values (#14394) - Skip candidates with invalid
theme()
calls (#14437) - Don't generate
inset-*
utilities for--inset-shadow-*
and--inset-ring-*
theme values (#14447) - Include
--default-transition-*
variables intransition-*
utility output (#14482) - Ensure
rtl
andltr
variants work with[dir=auto]
(#14306)
Changed
- Preserve explicit
leading-*
,tracking-*
, andfont-{weight}
value when overriding font-size (#14403) - Disallow negative bare values in core utilities and variants (#14453)
- Preserve explicit shadow color when overriding shadow size (#14458)
- Preserve explicit transition duration and timing function when overriding transition property (#14490)
- Change the implementation for
@import
resolution to speed up initial builds (#14446) - Remove automatic
var(…)
injection (#13657) - Only apply
:hover
states on devices that support@media (hover: hover)
(#14500)