mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
This PR attempts to detect simple postcss setups: These are setups that do not load dynamic modules and are based off the examples we are [recommending in our docs](https://tailwindcss.com/docs/installation/using-postcss). We detect wether a config is appropriate by having it use the object plugin config and by not requiring any other modules: ```js module.exports = { plugins: { tailwindcss: {}, autoprefixer: {}, }, } ``` When we find such a config file, we will go over it line-by-line and attempt to: - Upgrade `tailwindcss:` to `'@tailwindcss/postcss':` - Remove `autoprefixer` if used We then attempt to install and remove the respective npm packages based on the package manger we detect. And since we now have logic to upgrade packages, this also makes sure to install `tailwindcss@next` at the end of a sucessful migration. --------- Co-authored-by: Robin Malfait <malfait.robin@gmail.com>
27 KiB
27 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
- Add support for
tailwindcss/colors.js,tailwindcss/defaultTheme.js, andtailwindcss/plugin.jsexports (#14595) - Support
keyframesin JS config file themes (#14594) - Upgrade (experimental): Migrate v3 PostCSS setups to v4 in some cases (#14612)
- Upgrade (experimental): The upgrade tool now automatically discovers your JavaScript config (#14597)
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) - 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)
- Upgrade (experimental): Migrate
@media screen(…)when running codemods (#14603)
[4.0.0-alpha.26] - 2024-10-03
Added
- Add support for prefixes (#14501)
- Expose timing information in debug mode (#14553)
- Add support for
blocklistin JS config files (#14556) - Add
color-schemeutilities (#14567) - Add support for
importantoption 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
@applyin 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
@utilityis top-level and cannot be nested (#14525) - Only setup a single compiler in
@tailwindcss/postcssfor initial builds (#14565) - Ensure editing imported CSS files triggers a rebuild (#14561)
- Ensure
@applyand 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@importat-rules when the styles do not need to be imported into a layer (#14513) - Upgrade (experimental): Don't wrap comment nodes in
@layerwhen running codemods (#14517) - Upgrade (experimental): Fix scenario where selectors can be lost in multi-selector rules (#14518)
- Upgrade (experimental): Ensure custom CSS before
@tailwindrules is wrapped with@layer basewhen prepending@import "tailwindcss"to the top of the file (#14536)
Changed
- Disallow bare values with decimal places (#14562)
[4.0.0-alpha.25] - 2024-09-24
Added
- Add support for
aria,supports, anddatavariants defined in JS config files (#14407) - Add
@tailwindcss/upgradetooling (#14434) - Support
screensin JS config files (#14415) - Add
bg-radial-*andbg-conic-*utilities for radial and conic gradients (#14467) - Add new
shadow-initialandinset-shadow-initialutilities for resetting shadow colors (#14468) - Add
field-sizing-*utilities (#14469) - Include gradient color properties in color transitions (#14489)
- Upgrade (experimental): Convert important syntax in
@applyin CSS files (#14411) - Upgrade (experimental): Convert
@tailwinddirectives to@importrules in CSS files (#14411, #14504) - Upgrade (experimental): Convert custom CSS in
@layer utilitiesand@layer componentsto use@utilityin CSS files (#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
rtlandltrvariants 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
@importresolution to speed up initial builds (#14446) - Remove automatic
var(…)injection (#13657) - Only apply
:hoverstates on devices that support@media (hover: hover)(#14500)
[4.0.0-alpha.24] - 2024-09-11
Added
- Support CSS
theme()functions inside other@custom-media,@container, and@supportsrules (#14358) - Export
Configtype fromtailwindcssfor JS config files (#14360) - Add support for
matchVariantplugins using the@plugindirective (#14371) - Warn when the
tailwindcsspackage is used as a PostCSS plugin (#14378)
Fixed
- Ensure there is always CLI feedback on save even when no new classes were found (#14351)
- Properly resolve
theme('someKey.DEFAULT')when all--some-key-*keys have a suffix (#14354) - Make sure tuple theme values in JS configs take precedence over
@theme defaultvalues (#14359) - Improve IntelliSense completions for
borderutilities (#14370)
[4.0.0-alpha.23] - 2024-09-05
Added
- Add opacity modifier support to the
theme()function in plugins (#14348)
[4.0.0-alpha.22] - 2024-09-04
Added
- Support TypeScript for
@pluginand@configfiles (#14317) - Add
defaultoption to@themeto support overriding default theme values from plugins/JS config files (#14327) - Add support for
<style>tags in Astro files to the Vite plugin (#14340)
Fixed
- Ensure content globs defined in
@configfiles are relative to that file (#14314) - Ensure CSS
theme()functions are evaluated in media query ranges with collapsed whitespace (#14321) - Fix support for Nuxt projects in the Vite plugin (requires Nuxt 3.13.1+) (#14319)
- Evaluate theme functions in plugins and JS config files (#14326)
- Ensure theme values overridden with
referencevalues don't generate stale CSS variables (#14327) - Don’t suggest named opacity modifiers in IntelliSense (#14339)
- Fix a crash with older Node.js versions (#14342)
- Support defining theme values as arrays of strings in JS config files (#14343)
- Ensure
--default-font-*and--default-mono-font-*variables respect theme customizations in JS config files (#14344)
[4.0.0-alpha.21] - 2024-09-02
Added
- Add new standalone builds of Tailwind CSS v4 (#14270)
- Support JavaScript configuration files using
@config(#14239) - Support plugin options in
@plugin(#14264) - Add support for using the Vite extension with
css.transformerset tolightningcss(#14269)
Fixed
- Bring back type exports for the cjs build of
@tailwindcss/postcss(#14256) - Correctly merge tuple values when using the plugin API (#14260)
- Handle arrays in the CSS
theme()function when using plugins (#14262) - Fix fallback values when using the CSS
theme()function (#14262) - Fix support for declaration fallbacks in plugins (#14265)
- Support bare values when using
tailwindcss/defaultTheme(#14257) - Correctly update builds when using the Vite extension with
build --watch(#14269)
Changed
- Remove named opacity support for color opacity modifiers (#14278)
[4.0.0-alpha.20] - 2024-08-23
Added
- Add support for
addBaseplugins using the@plugindirective (#14172) - Add support for the
tailwindcss/pluginexport (#14173) - Add support for the
theme()function in plugins (#14207) - Add support for
addComponents,matchComponents,prefixplugin APIs (#14221) - Add support for
tailwindcss/colorsandtailwindcss/defaultThemeexports for use with plugins (#14221) - Add support for the
@tailwindcss/typographyand@tailwindcss/formsplugins (#14221) - Add support for the
theme()function in CSS and class names (#14177) - Add support for matching multiple utility definitions for one candidate (#14231)
Fixed
- Don't wrap relative selectors in arbitrary variants with
:is(…)(#14203)
[4.0.0-alpha.19] - 2024-08-09
Added
- Add support for
inlineoption when defining@themevalues (#14095) - Add
inertvariant (#14129) - Add support for explicitly registering content paths using new
@sourceat-rule (#14078) - Add support for scanning
<style>tags in Vue files to the Vite plugin (#14158) - Add support for basic
addUtilitiesandmatchUtilitiesplugins using the@plugindirective (#14114)
Fixed
- Ensure
@applyworks inside@utility(#14144)
[4.0.0-alpha.18] - 2024-07-25
Added
- Add support for basic
addVariantplugins with new@plugindirective (#13982, #14008) - Add
@variantat-rule for defining custom variants in CSS (#13992, #14008) - Add
@utilityat-rule for defining custom utilities in CSS (#14044)
Fixed
- Discard invalid classes such as
bg-red-[#000](#13970) - Fix parsing body-less at-rule without terminating semicolon (#13978)
- Ensure opacity modifier with variables work with
color-mix()(#13972) - Discard invalid
variantsandutilitieswith modifiers (#13977) - Add missing utilities that exist in v3, such as
resize,fill-none,accent-none,drop-shadow-none, and negativehue-rotateandbackdrop-hue-rotateutilities (#13971) - Don’t allow at-rule-only variants to be compounded (#14015)
- Ensure compound variants work with variants with multiple selectors (#14016)
- Ensure attribute values in
data-*andaria-*modifiers are always quoted in the generated CSS (#14040)
Changed
- Reduce the specificity of the
*variant so those styles can be overridden by child elements (#14056)
[4.0.0-alpha.17] - 2024-07-04
Added
- Add
rounded-4xlutility (#13827) - Add
backdrop-blur-noneandblur-noneutilities (#13831) - Include variable in output for bare utilities like
rounded(#13836)
Fixed
- Support combining arbitrary shadows without a color with shadow color utilities (#13876)
- Ensure
@propertyfallbacks work correctly with properties with noinitial-value(#13949)
[4.0.0-alpha.16] - 2024-06-07
Added
- Add
nth-*variants (#13661) - Add
bg-linear-*utilities as an alias for the existingbg-gradient-*utilities (#13783) - Support arbitrary linear gradient angles (e.g.
bg-linear-[125deg]) (#13783)
Fixed
- Use
lengthdata type forbackground-sizeinstead ofbackground-position(#13771) - Support negative values for
{col,row}-{start,end}utilities (#13780) - Use long form
<length> | <percentage>syntax for properties (#13660) - Fix background position value of
bg-right-top,bg-right-bottom,bg-left-bottomandbg-left-top(#13806)
[4.0.0-alpha.15] - 2024-05-08
Fixed
- Make sure
contain-*utility variables resolve to a valid value (#13521) - Support unbalanced parentheses and braces in quotes in arbitrary values and variants (#13608)
- Add fallbacks for
@propertyrules for Firefox (#13655)
Changed
- Use
remunits for breakpoints by default instead ofpx(#13469) - Use natural sorting when sorting classes (#13507, #13532)
[4.0.0-alpha.14] - 2024-04-09
Fixed
- Ensure deterministic SSR builds in
@tailwindcss/vite(#13457)
Changed
- Apply variants from left to right instead of inside-out (#13478)
- Don't special-case
[hidden]elements inspace-*/divide-*utilities (#13459)
[4.0.0-alpha.13] - 2024-04-04
Fixed
- Always inline values for
shadow-*utilities to ensure shadow colors work correctly (#13449)
[4.0.0-alpha.12] - 2024-04-04
Fixed
- Enable Vite's
waitForRequestsIdle()for client requests only (#13394) - Make sure
::first-letterrespects::selectionstyles (#13408)
[4.0.0-alpha.11] - 2024-03-27
Added
- Make
rotate-x/y/z-*utilities composable (#13319) - Apply Vite's CSS plugin transform to Tailwind-generated CSS in
@tailwindcss/vite(e.g. inlining images) (#13218) - Add
startingvariant for@starting-style(#13329) - Target
:popover-openin existingopenvariant (#13331)
Fixed
- Remove percentage values for
translate-zutilities (#13321, #13327) - Generate unique CSS bundle hashes in
@tailwindcss/vitewhen Tailwind-generated CSS changes (#13218) - Inherit letter spacing in form controls (#13328)
- Ensure
buildcommand is executed when using--outputinstead of-o(#13369) - Prevent
@tailwindcss/vitefrom hanging in serve mode (#13380)
[4.0.0-alpha.10] - 2024-03-19
Added
Fixed
- Validate bare values (#13245)
- Parse candidates in
.sveltefiles withclass:abc="condition"syntax (#13274)
Changed
- Inline
@importrules intailwindcss/index.cssat publish time for better performance (#13233) - Include custom properties with fallbacks in utility class values (#13177)
[4.0.0-alpha.9] - 2024-03-13
Added
- Support
@theme reference { … }for defining theme values without emitting variables (#13222)
Fixed
- Fix incorrect properties in line-clamp utilities (#13220)
- Don't rely on existence of
--default-transition-*variables intransition-*utilities (#13219)
Changed
- Move
optimizeCssto the packages where it's used (#13230)
[4.0.0-alpha.8] - 2024-03-11
Fixed
- Ensure
scale-*utilities support percentage values (#13182) - Prevent
content-nonefrom being overridden when conditionally styling::before/::after(#13187) - Remove default borders from
iframeelements (#13189)
Changed
- Replace
--radius-noneand--radius-fulltheme values with staticrounded-noneandrounded-fullutilities (#13186)
Added
- Improve performance of incremental rebuilds for
@tailwindcss/cli(#13169) - Improve performance of incremental rebuilds for
@tailwindcss/postcss(#13170)
[4.0.0-alpha.7] - 2024-03-08
Added
- Add
font-stretchutilities (#13153) - Publish packages with npm provenance (#13160)
- Build native packages for Android (#13115, #13161)
- Make CSS optimization and minification configurable in PostCSS plugin and CLI (#13130)
Fixed
- Don't error on
@applywith leading/trailing whitespace (#13144) - Correctly parse CSS using Windows line endings (#13162)
[4.0.0-alpha.6] - 2024-03-07
Fixed
- Only set
border-stylefor appropriate border side (#13124)
Changed
- Error when
@themecontains unsupported rules/declarations (#13125)
[4.0.0-alpha.5] - 2024-03-06
Fixed
- Don't scan ignored files even if a
.gitfolder is not present (#13119)
[4.0.0-alpha.4] - 2024-03-06
Fixed
- Support importing framework CSS files without including a
.cssextension (#13110)
[4.0.0-alpha.3] - 2024-03-06
Added
- Support putting the important modifier at the beginning of a utility (#13103)
Fixed
- Node compatibility fix (#13104)
Changes
- Drop deprecated
decoration-sliceanddecoration-cloneutilities (#13107)
[4.0.0-alpha.2] - 2024-03-06
Changed
- Move the CLI into a separate
@tailwindcss/clipackage (#13095)