Releases: tailwindlabs/tailwindcss
Releases · tailwindlabs/tailwindcss
v4.0.0-alpha.35
Added
- Reintroduce
max-w-screen-*utilities that read from the--breakpointnamespace 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-ratiowith 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-discreteandtransition-normalutilities 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
flexis 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
resolveJsIdwhen 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.25by default (#14980) - Support specifying the color interpolation method for gradients via modifier (#14984)
- Reintroduce
containercomponent as a utility (#14993, #14999) - Upgrade (experimental): Migrate
containercomponent 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
@configis injected in nearest common ancestor stylesheet (#14989) - Upgrade (experimental): Add missing
layer(…)to imports above Tailwind directives (#14982)
v3.4.15
v4.0.0-alpha.33
v4.0.0-alpha.32
Added
- Support derived spacing scales based on a single
--spacingtheme value (#14857) - Add
svh,dvh,svw,dvw, andautovalues to all width/height/size utilities (#14857) - Add new
**variant (#14903) - Process
<style>blocks inside Svelte files when using the Vite extension (#14151) - Normalize date/time input styles in Preflight (#14931)
- Upgrade (experimental): Migrate
grid-cols-[subgrid]andgrid-rows-[subgrid]togrid-cols-subgridandgrid-rows-subgrid(#14840) - Upgrade (experimental): Support migrating projects with multiple config files (#14863)
- Upgrade (experimental): Rename
shadowtoshadow-sm,shadow-smtoshadow-xs, andshadow-xstoshadow-2xs(#14875) - Upgrade (experimental): Rename
inset-shadowtoinset-shadow-sm,inset-shadow-smtoinset-shadow-xs, andinset-shadow-xstoinset-shadow-2xs(#14875) - Upgrade (experimental): Rename
drop-shadowtodrop-shadow-smanddrop-shadow-smtodrop-shadow-xs(#14875) - Upgrade (experimental): Rename
roundedtorounded-smandrounded-smtorounded-xs(#14875) - Upgrade (experimental): Rename
blurtoblur-smandblur-smtoblur-xs(#14875) - Upgrade (experimental): Migrate
theme()usage and JS config files to use the new--spacingmultiplier where possible (#14905) - Upgrade (experimental): Migrate arbitrary values in variants to built-in values where possible (#14841)
Fixed
- Detect classes in new files when using
@tailwindcss/postcss(#14829) - Fix crash when using
@sourcecontaining..(#14831) - Ensure instances of the same variant with different values are always sorted deterministically (e.g.
data-focus:flexanddata-active:flex) (#14835) - Ensure
--inset-ring=*and--inset-shadow-*variables are ignored byinset-*utilities (#14855) - Ensure
url(…)containing special characters such as;or{}end up in one declaration (#14879) - Ensure adjacent rules are merged together after handling nesting when generating optimized CSS (#14873)
- Rebase
url()inside imported CSS files when using Vite (#14877) - Ensure that CSS transforms from other Vite plugins correctly work in full builds (e.g.
:deep()in Vue) (#14871) - Ensure the CSS
theme()function handles newlines and tabs in its arguments list (#14917) - Don't unset keys like
--inset-shadow-*when unsetting keys like--inset-*(#14906) - Ensure spacing utilities with no value (e.g.
pxortranslate-y) don't generate CSS (#14911) - Don't override user-agent background color for input elements in Preflight (#14913)
- Don't attempt to convert CSS variables (which should already be percentages) to percentages when used as opacity modifiers (#14916)
- Ensure custom utilities registered with the plugin API can start with
@(#14793) - Upgrade (experimental): Install
@tailwindcss/postcssnext totailwindcss(#14830) - Upgrade (experimental): Remove whitespace around
,separator when print arbitrary values (#14838) - Upgrade (experimental): Fix crash during upgrade when content globs escape root of project (#14896)
- Upgrade (experimental): Don't convert
theme(…/15%)to modifier unless it is the entire arbitrary value of a utility (#14922) - Upgrade (experimental): Convert
,toin arbitrarygrid-cols-*,grid-rows-*, andobject-*values (#14927)
Changed
- Remove
--drop-shadow-nonefrom the default theme in favor of a staticdrop-shadow-noneutility (#14847) - Rename
shadowtoshadow-sm,shadow-smtoshadow-xs, andshadow-xstoshadow-2xs(#14849) - Rename
inset-shadowtoinset-shadow-sm,inset-shadow-smtoinset-shadow-xs, andinset-shadow-xstoinset-shadow-2xs(#14849) - Rename
drop-shadowtodrop-shadow-smanddrop-shadow-smtodrop-shadow-xs(#14849) - Rename
roundedtorounded-smandrounded-smtorounded-xs(#14849) - Rename
blurtoblur-smandblur-smtoblur-xs(#14849) - Remove fixed line-height theme values and derive
leading-*utilites from--spacing-*scale (#14857) - Remove
--transition-timing-function-linearfrom the default theme in favor of a staticease-linearutility (#14880) - Remove default
--spacing-*scale in favor of--spacingmultiplier (#14857) - Remove
var(…)fallbacks from theme values in utilities (#14881) - Remove static
font-weightutilities and add--font-weight-*values to the default theme (#14883) - Rename
--transition-timing-function-*variables to--ease-*(#14886) - Rename
--width-*variables to--container-*(#14898) - Rename
--font-size-*variables to--text-*(#14909) - Rename
--font-family-*variables to--font-*(#14885) - Rename
--letter-spacing-*variables to--tracking-*(#14921) - Rename
--line-height-*variables to--leading-*(#14925) - Revert specificity of
*variant to match v3 behavior (#14920) - Replace
outline-nonewithoutline-hidden, add new simplifiedoutline-noneutility (#14926) - Revert adding borders by default to form inputs (#14929)
- Deprecate
shadow-innerutility (#14933) - Remove
--leading-nonefrom the default theme in favor of a staticleading-noneutility (#14934)
v4.0.0-alpha.31
Added
- Support specifying the base path for automatic source detection using a
source(…)function on@tailwind utilitiesor@import "tailwindcss"(#14820) - Support disabling automatic source detection with
source(none)(#14820) - Support passing directories to
@sourcewithout needing to pass a complete glob (#14820) - Upgrade (experimental): Bump
prettier-plugin-tailwindcssto 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
exportsin theirpackage.jsonare 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
@importstatements 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@importis only removed when@utilityis present (#14783)
Changed
v4.0.0-alpha.29
Added
- Upgrade (experimental): Migrate
pluginswith options to CSS (#14700) - Upgrade (experimental): Allow JS configuration files with
corePluginsoptions to be migrated to CSS (#14742) - Upgrade (experimental): Migrate
@importstatements 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
@variantsand@responsivedirectives (#14748) - Upgrade (experimental): Migrate
@screendirective (#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
postcssas 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\/2astheme('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
?rawand?urlstatic asset query works when using the Vite plugin (#14716) - Upgrade (experimental): Migrate
flex-growtogrowandflex-shrinktoshrink(#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@importto keep@utilitytop-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 = !bordertolet 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
themeobject (#14675)
Fixed
- Ensure
themevalues defined outside ofextendin 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
screensconfig (#14691)
v4.0.0-alpha.27
Added
- Add support for
tailwindcss/colors.js,tailwindcss/defaultTheme.js, andtailwindcss/plugin.jsexports (#14595) - Support
keyframesin JS config file themes (#14594) - Support the
colorparameter 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
!importantwhen stringifying CSS (#14611) - Don't set
display: noneon 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
addComponentsandmatchComponents(#14590) - Ensure
boxShadowandanimationtheme 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-stretchutilities 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)