Skip to content

Files

3707 lines (2535 loc) · 223 KB
·

CHANGELOG.md

File metadata and controls

3707 lines (2535 loc) · 223 KB
·

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.

Added

  • Experimental: Add user-valid and user-invalid variants (#12370)

Fixed

  • Remove invalid !important on CSS variable declarations (#16668)

[4.0.7] - 2025-02-18

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)

4.0.6 - 2025-02-10

Fixed

  • Revert change to no longer include theme variables that aren't used in compiled CSS (#16403)

Fixed

  • Upgrade: Don't migrate blur to blur-sm when used with Next.js <Image placeholder="blur" /> (#16405)

4.0.5 - 2025-02-08

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)

4.0.4 - 2025-02-06

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)

4.0.3 - 2025-02-01

Fixed

  • Fix incorrect removal of @import url(); (#16144)

4.0.2 - 2025-01-31

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)

4.0.1 - 2025-01-29

Added

  • Include :open pseudo-class in existing open variant (#15349)

Fixed

  • Remove invalid min-w/h-none utilities (#15845)
  • Discard CSS variable shorthand utilities that don't use valid CSS variables (#15738)
  • Ensure font-size utilities with none modifier have a line-height set e.g. text-sm/none (#15921)
  • Ensure font-size utilities with unknown modifier don't generate CSS (#15921)
  • Don’t suggest font weight utilities more than once (#15857)
  • Suggest container query variants (#15857)
  • Disable bare value suggestions when not using the --spacing variable (#15857)
  • Ensure suggested classes are properly sorted (#15857)
  • Don’t look at .gitignore files outside initialized repos (#15941)
  • Find utilities when using the Svelte class shorthand syntax across multiple lines (#15974)
  • Find utilities when using the Angular class shorthand syntax (#15974)
  • Find utilities when using functions inside arrays (#15974)
  • Ensure that @tailwindcss/browser does not pollute the global namespace (#15978)
  • Ensure that tailwind-merge is not scanned when using the Vite plugin (#16005)
  • Ensure CSS theme variables are available within shadow roots (#15975)
  • Fix crash when project lives in the / directory (#15988)
  • Ensure custom variants have a non-empty selector list (#16009)
  • Upgrade: Ensure JavaScript config files on different drives are correctly migrated (#15927)
  • Upgrade: Migrate leading-[1] to leading-none (#16004)
  • Upgrade: Do not migrate arbitrary leading utilities to bare values (#16004)

4.0.0 - 2025-01-21

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.

4.0.0-beta.10 - 2025-01-21

Added

  • Add support for using @variant to use variants in your CSS (#15663)
  • Include outline-color when transitioning colors (#15690)

Fixed

  • Add missing main and browser fields for @tailwindcss/browser (#15594)
  • Support escaping * in theme namespace syntax (e.g.: --color-\*: initial;) (#15603)
  • Respect @theme options when resolving values in custom functional utilities (#15623)
  • Discard invalid variants (e.g. data-checked-[selected=1]:*) (#15629)
  • Ensure -outline-offset-* utilities are suggested in IntelliSense (#15646)
  • Write to stdout when --output is set to - or omitted with @tailwindcss/cli (#15656)
  • Prevent not-* from being used with variants that have multiple sibling rules (#15689)
  • Upgrade (experimental): Pretty print --spacing(…) to prevent ambiguity (#15596)

Changed

  • Use more modern --alpha(color / 50%) syntax instead of --alpha(color, 50%) (#15665)
  • Rename @variant to @custom-variant (#15663)
  • Change outline-hidden to set outline-style: none except in forced colors mode (#15690)

4.0.0-beta.9 - 2025-01-09

Added

  • Add @tailwindcss/browser package to run Tailwind CSS in the browser (#15558)
  • Add @reference "…" API as a replacement for the previous @import "…" reference option (#15565)
  • Add support for defining functional utilities in CSS (#15455)
  • Add new --spacing(…), --alpha(…), and --theme(…) CSS functions (#15572)
  • Add musl-based Linux builds of the standalone CLI (#15567)
  • Improve performance of internal AST manipulations (#15529)

Fixed

  • Use the correct property value for place-content-between, place-content-around, and place-content-evenly utilities (#15440)
  • Don’t detect arbitrary properties when preceded by an escape (#15456)
  • Fix incorrectly named bg-round and bg-space utilities to bg-repeat-round to bg-repeat-space (#15462)
  • Fix inset-shadow-* suggestions in IntelliSense (#15471)
  • Only compile arbitrary values ending in ] (#15503)
  • Ensure @apply rules are processed in the correct order (#15542)
  • Allow negative utility names in @utility (#15573)
  • Remove all @keyframes contributed by JavaScript plugins when using @reference imports (#15581)
  • Upgrade (experimental): Do not extract class names from functions (e.g. shadow in filter: 'drop-shadow(…)') (#15566)
  • Upgrade (experimental): Migrate theme(spacing.2) to --spacing(2) (#15579)
  • Upgrade (experimental): Migrate theme(…) to --theme(…) (#15579)

Changed

  • Remove --container-prose in favor of a deprecated --max-width-prose theme variable so that *-prose is only available for max-width utilities and only for backward compatibility (#15439)
  • Use Vite post-processor APIs for processing Svelte <style> blocks (#15436)
  • Remove @property fallback rules for Firefox (#15622)

4.0.0-beta.8 - 2024-12-17

Fixed

  • Ensure Symbol.dispose and Symbol.asyncDispose are polyfilled (#15404)

4.0.0-beta.7 - 2024-12-13

Added

  • Export tailwindcss/lib/util/flattenColorPalette for backward compatibility (#15318)
  • Improve debug logs to get better insights (#15303)

Fixed

  • Fix dependency related warnings when using @tailwindcss/postcss on Windows (#15321)
  • Skip creating a compiler for CSS files that should not be processed (#15340)
  • Fix missing shadow-none suggestion in IntelliSense (#15342)
  • Optimize AST before printing for IntelliSense (#15347)
  • Generate vendor prefixes for Chrome 111+ (e.g. -webkit-background-clip: text) (#15389)

Changed

  • Rename --aspect-ratio-* theme key to --aspect-* (#15365)
  • Derive aspect-video utility from theme (#15365)

4.0.0-beta.6 - 2024-12-06

Fixed

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

4.0.0-beta.5 - 2024-12-04

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)

4.0.0-beta.4 - 2024-11-29

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)

4.0.0-beta.3 - 2024-11-27

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)

4.0.0-beta.2 - 2024-11-22

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)

4.0.0-beta.1 - 2024-11-21

Added

  • Upgrade (experimental): Drop unnecessary opacity theme values when migrating to CSS (#15067)

Fixed

  • Ensure opacity theme values configured as decimal numbers via JS config files work with color utilities (#15067)
  • Bring back support for decoration-clone, decoration-slice, overflow-ellipsis, flex-grow-*, and flex-shrink-* (#15069)
  • Upgrade (experimental): Include color in the form reset snippet (#15064)

4.0.0-alpha.36 - 2024-11-21

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): Don't migrate arbitrary variants to in-* that use the child combinator instead of the descendant combinator (#15054)

Changed

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

4.0.0-alpha.35 - 2024-11-20

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)

4.0.0-alpha.34 - 2024-11-14

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)

4.0.0-alpha.33 - 2024-11-11

Fixed

  • Don't reset horizontal padding on date/time pseudo-elements (#14959)
  • Don't emit calc() with invalid values for bare values that aren't integers in spacing utilities (#14962)
  • Ensure spacing scale values work as line-height modifiers (#14966)

4.0.0-alpha.32 - 2024-11-11

Added

  • Support derived spacing scales based on a single --spacing theme value (#14857)
  • Add svh, dvh, svw, dvw, and auto values 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] and grid-rows-[subgrid] to grid-cols-subgrid and grid-rows-subgrid (#14840)
  • Upgrade (experimental): Support migrating projects with multiple config files (#14863)
  • Upgrade (experimental): Rename shadow to shadow-sm, shadow-sm to shadow-xs, and shadow-xs to shadow-2xs (#14875)
  • Upgrade (experimental): Rename inset-shadow to inset-shadow-sm, inset-shadow-sm to inset-shadow-xs, and inset-shadow-xs to inset-shadow-2xs (#14875)
  • Upgrade (experimental): Rename drop-shadow to drop-shadow-sm and drop-shadow-sm to drop-shadow-xs (#14875)
  • Upgrade (experimental): Rename rounded to rounded-sm and rounded-sm to rounded-xs (#14875)
  • Upgrade (experimental): Rename blur to blur-sm and blur-sm to blur-xs (#14875)
  • Upgrade (experimental): Migrate theme() usage and JS config files to use the new --spacing multiplier 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 @source containing .. (#14831)
  • Ensure instances of the same variant with different values are always sorted deterministically (e.g. data-focus:flex and data-active:flex) (#14835)
  • Ensure --inset-ring=* and --inset-shadow-* variables are ignored by inset-* 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. px or translate-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/postcss next to tailwindcss (#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 , to in arbitrary grid-cols-*, grid-rows-*, and object-* values (#14927)

Changed

  • Remove --drop-shadow-none from the default theme in favor of a static drop-shadow-none utility (#14847)
  • Rename shadow to shadow-sm, shadow-sm to shadow-xs, and shadow-xs to shadow-2xs (#14849)
  • Rename inset-shadow to inset-shadow-sm, inset-shadow-sm to inset-shadow-xs, and inset-shadow-xs to inset-shadow-2xs (#14849)
  • Rename drop-shadow to drop-shadow-sm and drop-shadow-sm to drop-shadow-xs (#14849)
  • Rename rounded to rounded-sm and rounded-sm to rounded-xs (#14849)
  • Rename blur to blur-sm and blur-sm to blur-xs (#14849)
  • Remove fixed line-height theme values and derive leading-* utilities from --spacing-* scale (#14857)
  • Remove --transition-timing-function-linear from the default theme in favor of a static ease-linear utility (#14880)
  • Remove default --spacing-* scale in favor of --spacing multiplier (#14857)
  • Remove var(…) fallbacks from theme values in utilities (#14881)
  • Remove static font-weight utilities 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-none with outline-hidden, add new simplified outline-none utility (#14926)
  • Revert adding borders by default to form inputs (#14929)
  • Deprecate shadow-inner utility (#14933)
  • Remove --leading-none from the default theme in favor of a static leading-none utility (#14934)

4.0.0-alpha.31 - 2024-10-29

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

  • Use logical *-inline and *-block properties for all x/y utilities like px-*, my-*, scroll-px-*, and inset-y-* (#14805)
  • Respect automatic source detection heuristics in sources registered with @source (#14820)

4.0.0-alpha.30 - 2024-10-24

Added

  • Support not-* with all built-in media query and supports-* variants (#14743)
  • Support not-* with custom variants containing at-rules (#14743)
  • Support group-*, peer-*, and has-* 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 their package.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 of m-[var(--spacing-1\_5)]) (#14778)
  • Upgrade (experimental): Ensure layer(…) on @import is only removed when @utility is present (#14783)

Changed

  • Don't convert underscores in the first argument to var() and theme() to spaces (#14776, #14781)
  • Sort text alignment and wrapping utilities with typography utilities (#14787)
  • Sort line height and letter spacing utilities before text color utilities (#14787)

4.0.0-alpha.29 - 2024-10-23

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 to max-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 as theme('width.1/2')) (#14739)
  • Ensure JS theme keys containing special characters correctly produce utility classes (e.g. '1/2': 50% to w-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 to grow and flex-shrink to shrink (#14721)
  • Upgrade (experimental): Minify arbitrary values when printing candidates (#14720)
  • Upgrade (experimental): Ensure legacy theme values ending in 1 (like theme(spacing.1)) are correctly migrated to custom properties (#14724)
  • Upgrade (experimental): Migrate arbitrary values to bare values for the from-*, via-*, and to-* 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 to let foo = border!) (#14737)

Changed

  • Require a relative path prefix for importing relative CSS files (e.g. @import './styles.css' instead of @import 'styles.css') (#14755)
  • Upgrade (experimental): Don't create @source rules for content paths that are already covered by automatic source detection (#14714)

4.0.0-alpha.28 - 2024-10-17

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 to var(…) or to the modern theme(…) 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 of extend 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)

4.0.0-alpha.27 - 2024-10-15

Added

  • Add support for tailwindcss/colors.js, tailwindcss/defaultTheme.js, and tailwindcss/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 a tailwind.config.{js,ts,…} is detected (#14635)
  • Upgrade (experimental): Migrate @media screen(…) when running codemods (#14603)
  • Upgrade (experimental): Migrate aria-*, data-*, and supports-* 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 use hidden="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 and matchComponents (#14590)
  • Ensure boxShadow and animation theme keys in JS config files are accessible under --shadow-* and --animate-* using the theme() 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 the theme([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)

4.0.0-alpha.26 - 2024-10-03

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 to bg-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)

4.0.0-alpha.25 - 2024-09-24

Added

  • Add support for aria, supports, and data variants defined in JS config files (#14407)
  • Add @tailwindcss/upgrade tooling (#14434)
  • Support screens in JS config files (#14415)
  • Add bg-radial-* and bg-conic-* utilities for radial and conic gradients (#14467)
  • Add new shadow-initial and inset-shadow-initial utilities for resetting shadow colors (#14468)
  • Add field-sizing-* utilities (#14469)
  • Include gradient color properties in color transitions (#14489)
  • Upgrade (experimental): Convert important syntax in @apply in CSS files (#14411)
  • Upgrade (experimental): Convert @tailwind directives to @import rules in CSS files (#14411, #14504)
  • Upgrade (experimental): Convert custom CSS in @layer utilities and @layer components to use @utility in CSS files (#14455)

Fixed

  • Support borderRadius.* as an alias for --radius-* when using dot notation inside the theme() 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 in transition-* utility output (#14482)
  • Ensure rtl and ltr variants work with [dir=auto] (#14306)

Changed

  • Preserve explicit leading-*, tracking-*, and font-{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)

4.0.0-alpha.24 - 2024-09-11

Added

  • Support CSS theme() functions inside other @custom-media, @container, and @supports rules (#14358)
  • Export Config type from tailwindcss for JS config files (#14360)
  • Add support for matchVariant plugins using the @plugin directive (#14371)
  • Warn when the tailwindcss package 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 default values (#14359)
  • Improve IntelliSense completions for border utilities (#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 @plugin and @config files (#14317)
  • Add default option to @theme to 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 @config files 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 reference values 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.transformer set to lightningcss (#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 addBase plugins using the @plugin directive (#14172)
  • Add support for the tailwindcss/plugin export (#14173)
  • Add support for the theme() function in plugins (#14207)
  • Add support for addComponents, matchComponents, prefix plugin APIs (#14221)
  • Add support for tailwindcss/colors and tailwindcss/defaultTheme exports for use with plugins (#14221)
  • Add support for the @tailwindcss/typography and @tailwindcss/forms plugins (#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 inline option when defining @theme values (#14095)
  • Add inert variant (#14129)
  • Add support for explicitly registering content paths using new @source at-rule (#14078)
  • Add support for scanning <style> tags in Vue files to the Vite plugin (#14158)
  • Add support for basic addUtilities and matchUtilities plugins using the @plugin directive (#14114)

Fixed

  • Ensure @apply works inside @utility (#14144)

[4.0.0-alpha.18] - 2024-07-25

Added

  • Add support for basic addVariant plugins with new @plugin directive (#13982, #14008)
  • Add @variant at-rule for defining custom variants in CSS (#13992, #14008)
  • Add @utility at-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 variants and utilities with modifiers (#13977)
  • Add missing utilities that exist in v3, such as resize, fill-none, accent-none, drop-shadow-none, and negative hue-rotate and backdrop-hue-rotate utilities (#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-* and aria-* 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-4xl utility (#13827)
  • Add backdrop-blur-none and blur-none utilities (#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 @property fallbacks work correctly with properties with no initial-value (#13949)

[4.0.0-alpha.16] - 2024-06-07

Added

  • Add nth-* variants (#13661)
  • Add bg-linear-* utilities as an alias for the existing bg-gradient-* utilities (#13783)
  • Support arbitrary linear gradient angles (e.g. bg-linear-[125deg]) (#13783)

Fixed

  • Use length data type for background-size instead of background-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-bottom and bg-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 @property rules for Firefox (#13655)

Changed

  • Use rem units for breakpoints by default instead of px (#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 in space-*/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-letter respects ::selection styles (#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 starting variant for @starting-style (#13329)
  • Target :popover-open in existing open variant (#13331)

Fixed

  • Remove percentage values for translate-z utilities (#13321, #13327)
  • Generate unique CSS bundle hashes in @tailwindcss/vite when Tailwind-generated CSS changes (#13218)
  • Inherit letter spacing in form controls (#13328)
  • Ensure build command is executed when using --output instead of -o (#13369)
  • Prevent @tailwindcss/vite from hanging in serve mode (#13380)

[4.0.0-alpha.10] - 2024-03-19

Added

Fixed

  • Validate bare values (#13245)
  • Parse candidates in .svelte files with class:abc="condition" syntax (#13274)

Changed

  • Inline @import rules in tailwindcss/index.css at 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 in transition-* utilities (#13219)

Changed

  • Move optimizeCss to 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-none from being overridden when conditionally styling ::before/::after (#13187)
  • Remove default borders from iframe elements (#13189)

Changed

  • Replace --radius-none and --radius-full theme values with static rounded-none and rounded-full utilities (#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-stretch utilities (#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 @apply with leading/trailing whitespace (#13144)
  • Correctly parse CSS using Windows line endings (#13162)

[4.0.0-alpha.6] - 2024-03-07

Fixed

  • Only set border-style for appropriate border side (#13124)

Changed

  • Error when @theme contains unsupported rules/declarations (#13125)

[4.0.0-alpha.5] - 2024-03-06

Fixed

  • Don't scan ignored files even if a .git folder is not present (#13119)

[4.0.0-alpha.4] - 2024-03-06

Fixed

  • Support importing framework CSS files without including a .css extension (#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-slice and decoration-clone utilities (#13107)

[4.0.0-alpha.2] - 2024-03-06

Changed

  • Move the CLI into a separate @tailwindcss/cli package (#13095)

[4.0.0-alpha.1] - 2024-03-06

  • First 4.0.0-alpha.1 release

3.4.17 - 2024-12-17

Fixed

  • Work around Node v22.12+ issue (#15421)

3.4.16 - 2024-12-03

Fixed

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

Changed

  • Bumped lilconfig to v3.x (#15289)

3.4.15 - 2024-11-14

  • Bump versions for security vulnerabilities (#14697)
  • Ensure the TypeScript types for the boxShadow theme configuration allows arrays (#14856)
  • Set fallback for opacity variables to ensure setting colors with the selection:* variant works in Chrome 131 (#15003)

3.4.14 - 2024-10-15

Fixed

  • Don't set display: none on elements that use hidden="until-found" (#14625)

3.4.13 - 2024-09-23

Fixed

  • Improve source glob verification performance (#14481)

3.4.12 - 2024-09-17

Fixed

  • Ensure using @apply with utilities that use @defaults works with rules defined in the base layer when using optimizeUniversalDefaults (#14427)

3.4.11 - 2024-09-11

Fixed

  • Allow anchor-size(…) in arbitrary values (#14393)

3.4.10 - 2024-08-13

Fixed

  • Bump versions of plugins in the Standalone CLI (#14185)

3.4.9 - 2024-08-08

Fixed

  • No longer warns when broad glob patterns are detecting vendor folders

3.4.8 - 2024-08-07

Fixed

  • Fix minification when using nested CSS (#14105)
  • Warn when broad glob patterns are used in the content configuration (#14140)

3.4.7 - 2024-07-25

Fixed

  • Fix class detection in Slim templates with attached attributes and ID (#14019)
  • Ensure attribute values in data-* and aria-* modifiers are always quoted in the generated CSS (#14037)

3.4.6 - 2024-07-16

Fixed

  • Fix detection of some utilities in Slim/Pug templates (#14006)

Changed

  • Loosen :is() wrapping rules when using an important selector (#13900)

3.4.5 - 2024-07-15

Fixed

  • Disable automatic var() injection for anchor properties (#13826)
  • Use no value instead of blur(0px) for backdrop-blur-none and blur-none utilities (#13830)
  • Add .mts and .cts config file detection (#13940)
  • Don't generate utilities like px-1 unnecessarily when using utilities like px-1.5 (#13959)
  • Always generate -webkit-backdrop-filter for backdrop-* utilities (#13997)

3.4.4 - 2024-06-05

Fixed

  • Make it possible to use multiple <alpha-value> placeholders in a single color definition (#13740)
  • Don't prefix classes in arbitrary values of has-*, group-has-*, and peer-has-* variants (#13770)
  • Support negative values for {col,row}-{start,end} utilities (#13781)
  • Update embedded browserslist database (#13792)

3.4.3 - 2024-03-27

Fixed

  • Revert changes to glob handling (#13384)

3.4.2 - 2024-03-27

Fixed

  • Ensure max specificity of 0,0,1 for button and input Preflight rules (#12735)
  • Improve glob handling for folders with (, ), [ or ] in the file path (#12715)
  • Split :has rules when using experimental.optimizeUniversalDefaults (#12736)
  • Sort arbitrary properties alphabetically across multiple class lists (#12911)
  • Add mix-blend-plus-darker utility (#12923)
  • Ensure dashes are allowed in variant modifiers (#13303)
  • Fix crash showing completions in Intellisense when using a custom separator (#13306)
  • Transpile import.meta.url in config files (#13322)
  • Reset letter spacing for form elements (#13150)
  • Fix missing xx-large and remove double x-large absolute size (#13324)
  • Don't error when encountering nested CSS unless trying to @apply a class that uses nesting (#13325)
  • Ensure that arbitrary properties respect important configuration (#13353)
  • Change dark mode selector so @apply works correctly with pseudo elements (#13379)

3.4.1 - 2024-01-05

Fixed

  • Don't remove keyframe stops when using important utilities (#12639)
  • Don't add spaces to gradients and grid track names when followed by calc() (#12704)
  • Restore old behavior for class dark mode strategy (#12717)
  • Improve glob handling for folders with (, ), [ or ] in the file path (#12715)

Added

  • Add new selector and variant strategies for dark mode (#12717)

Changed

  • Support rtl and ltr variants on same element as dir attribute (#12717)

3.4.0 - 2023-12-19

Added

  • Add svh, lvh, and dvh values to default height/min-height/max-height theme (#11317)
  • Add has-* variants for :has(...) pseudo-class (#11318)
  • Add text-wrap utilities including text-balance and text-pretty (#11320, #12031)
  • Extend default opacity scale to include all steps of 5 (#11832)
  • Update Preflight html styles to include shadow DOM :host pseudo-class (#11200)
  • Increase default values for grid-rows-* utilities from 1–6 to 1–12 (#12180)
  • Add size-* utilities (#12287)
  • Add utilities for CSS subgrid (#12298)
  • Add spacing scale to min-w-*, min-h-*, and max-w-* utilities (#12300)
  • Add forced-color-adjust utilities (#11931)
  • Add forced-colors variant (#11694, #12582)
  • Add appearance-auto utility (#12404)
  • Add logical property values for float and clear utilities (#12480)
  • Add * variant for targeting direct children (#12551)

Changed

  • Simplify the sans font-family stack (#11748)
  • Disable the tap highlight overlay on iOS (#12299)
  • Improve relative precedence of rtl, ltr, forced-colors, and dark variants (#12584)

3.3.7 - 2023-12-18

Fixed

  • Fix support for container query utilities with arbitrary values (#12534)
  • Fix custom config loading in Standalone CLI (#12616)

3.3.6 - 2023-12-04

Fixed

  • Don’t add spaces to negative numbers following a comma (#12324)
  • Don't emit @config in CSS when watching via the CLI (#12327)
  • Improve types for resolveConfig (#12272)
  • Ensure configured font-feature-settings for mono are included in Preflight (#12342)
  • Improve candidate detection in minified JS arrays (without spaces) (#12396)
  • Don't crash when given applying a variant to a negated version of a simple utility (#12514)
  • Fix support for slashes in arbitrary modifiers (#12515)
  • Fix source maps of variant utilities that come from an @layer rule (#12508)
  • Fix loading of built-in plugins when using an ESM or TypeScript config with the Standalone CLI (#12506)

3.3.5 - 2023-10-25

Fixed

  • Fix incorrect spaces around - in calc() expression (#12283)

3.3.4 - 2023-10-24

Fixed

  • Improve normalisation of calc()-like functions (#11686)
  • Skip calc() normalisation in nested theme() calls (#11705)
  • Fix incorrectly generated CSS when using square brackets inside arbitrary properties (#11709)
  • Make content optional for presets in TypeScript types (#11730)
  • Handle variable colors that have variable fallback values (#12049)
  • Batch reading content files to prevent too many open files error (#12079)
  • Skip over classes inside :not(…) when nested in an at-rule (#12105)
  • Update types to work with Node16 module resolution (#12097)
  • Don’t crash when important and parent selectors are equal in @apply (#12112)
  • Eliminate irrelevant rules when applying variants (#12113)
  • Improve RegEx parser, reduce possibilities as the key for arbitrary properties (#12121)
  • Fix sorting of utilities that share multiple candidates (#12173)
  • Ensure variants with arbitrary values and a modifier are correctly matched in the RegEx based parser (#12179)
  • Fix crash when watching renamed files on FreeBSD (#12193)
  • Allow plugins from a parent document to be used in an iframe (#12208)
  • Add types for tailwindcss/nesting (#12269)
  • Bump jiti, fast-glob, and browserlist dependencies (#11550)
  • Improve automatic var injection for properties that accept a <dashed-ident> (#12236)

3.3.3 - 2023-07-13

Fixed

  • Fix issue where some pseudo-element variants generated the wrong selector (#10943, #10962, #11111)
  • Make font settings propagate into buttons, inputs, etc. (#10940)
  • Fix parsing of theme() inside calc() when there are no spaces around operators (#11157)
  • Ensure repeating-conic-gradient is detected as an image (#11180)
  • Move unknown pseudo-elements outside of :is by default (#11345)
  • Escape animation names when prefixes contain special characters (#11470)
  • Don't prefix arbitrary classes in group and peer variants (#11454)
  • Sort classes using position of first matching rule (#11504)
  • Allow variant to be an at-rule without a prelude (#11589)
  • Make PostCSS plugin async to improve performance (#11548)
  • Don’t error when a config file is missing (f97759f)

Added

  • Add aria-busy utility (#10966)

Changed

  • Reset padding for <dialog> elements in preflight (#11069)

3.3.2 - 2023-04-25

Fixed

  • Don’t move unknown pseudo-elements to the end of selectors (#10943, #10962)
  • Inherit gradient stop positions when using variants (#11002)
  • Honor default to position of gradient when using implicit transparent colors (#11002)
  • Ensure @tailwindcss/oxide doesn't leak in the stable engine (#10988)
  • Ensure multiple theme(spacing[5]) calls with bracket notation in arbitrary properties work (#11039)
  • Normalize arbitrary modifiers (#11057)

Changed

  • Drop support for Node.js v12 (#11089)

3.3.1 - 2023-03-30

Fixed

  • Fix edge case bug when loading a TypeScript config file with webpack (#10898)
  • Fix variant, @apply, and important selectors when using :is() or :has() with pseudo-elements (#10903)
  • Fix safelist config types (#10901)
  • Fix build errors caused by @tailwindcss/line-clamp warning (#10915, #10919)
  • Fix "process is not defined" error (#10919)

3.3.0 - 2023-03-27

Added

  • Support ESM and TypeScript config files (#10785)
  • Extend default color palette with new 950 shades (#10879)
  • Add line-height modifier support to font-size utilities (#9875)
  • Add support for using variables as arbitrary values without var(...) (#9880, #9962)
  • Add logical properties support for inline direction (#10166)
  • Add hyphens utilities (#10071)
  • Add from-{position}, via-{position} and to-{position} utilities (#10886)
  • Add list-style-image utilities (#10817)
  • Add caption-side utilities (#10470)
  • Add line-clamp utilities from @tailwindcss/line-clamp to core (#10768, #10876, #10862)
  • Add delay-0 and duration-0 utilities (#10294)
  • Add justify-normal and justify-stretch utilities (#10560)
  • Add content-normal and content-stretch utilities (#10645)
  • Add whitespace-break-spaces utility (#10729)
  • Add support for configuring default font-variation-settings for a font-family (#10034, #10515)

Fixed

  • Disallow using multiple selectors in arbitrary variants (#10655)
  • Sort class lists deterministically for Prettier plugin (#10672)
  • Ensure CLI builds have a non-zero exit code on failure (#10703)
  • Ensure module dependencies for value null, is an empty Set (#10877)
  • Fix format assumption when resolving module dependencies (#10878)

Changed

  • Mark rtl and ltr variants as stable and remove warnings (#10764)
  • Use inset instead of top, right, bottom, and left properties (#10765)
  • Make dark and rtl/ltr variants insensitive to DOM order (#10766)
  • Use :is to make important selector option insensitive to DOM order (#10835)

3.2.7 - 2023-02-16

Fixed

  • Fix use of :where(.btn) when matching !btn (#10601)
  • Revert including outline-color in transition and transition-colors by default (#10604)

3.2.6 - 2023-02-08

Fixed

  • Fix installation failing with yarn and pnpm by dropping oxide-api-shim (add1636)

3.2.5 - 2023-02-08

Added

  • Add standalone CLI build for 64-bit Windows on ARM (node16-win-arm64) (#10001)

Fixed

  • Cleanup unused variantOrder (#9829)
  • Fix foo-[abc]/[def] not being handled correctly (#9866)
  • Add container queries plugin to standalone CLI (#9865)
  • Support renaming of output files by PostCSS plugins in CLI (#9944)
  • Improve return value of resolveConfig, unwrap ResolvableTo (#9972)
  • Clip unbalanced brackets in arbitrary values (#9973)
  • Don’t reorder webkit scrollbar pseudo elements (#9991)
  • Deterministic sorting of arbitrary variants (#10016)
  • Add data key to theme types (#10023)
  • Prevent invalid arbitrary variant selectors from failing the build (#10059)
  • Properly handle subtraction followed by a variable (#10074)
  • Fix missing string[] in the theme.dropShadow types (#10072)
  • Update list of length units (#10100)
  • Fix not matching arbitrary properties when closely followed by square brackets (#10212)
  • Allow direct nesting in root or @layer nodes (#10229)
  • Don't prefix classes in arbitrary variants (#10214)
  • Fix perf regression when checking for changed content (#10234)
  • Fix missing blocklist member in the Config type (#10239)
  • Escape group names in selectors (#10276)
  • Consider earlier variants before sorting functions (#10288)
  • Allow variants with slashes (#10336)
  • Ensure generated CSS is always sorted in the same order for a given set of templates (#10382)
  • Handle variants when the same class appears multiple times in a selector (#10397)
  • Handle group/peer variants with quoted strings (#10400)
  • Parse alpha value from rgba/hsla colors when using variables (#10429)
  • Sort by layer inside variants layer (#10505)
  • Add --watch=always option to prevent exit when stdin closes (#9966)

Changed

  • Alphabetize theme keys in default config (#9953)
  • Update esbuild to v17 (#10368)
  • Include outline-color in transition and transition-colors utilities (#10385)

3.2.4 - 2022-11-11

Added

  • Add blocklist option to prevent generating unwanted CSS (#9812)

Fixed

  • Fix watching of files on Linux when renames are involved (#9796)
  • Make sure errors are always displayed when watching for changes (#9810)

3.2.3 - 2022-11-09

Fixed

  • Fixed use of raw content in the CLI (#9773)
  • Pick up changes from files that are both context and content deps (#9787)
  • Sort pseudo-elements ONLY after classes when using variants and @apply (#9765)
  • Support important utilities in the safelist (pattern must include a !) (#9791)

3.2.2 - 2022-11-04

Fixed

  • Escape special characters in resolved content base paths (#9650)
  • Don't reuse container for array returning variant functions (#9644)
  • Exclude non-relevant selectors when generating rules with the important modifier (#9677)
  • Fix merging of arrays during config resolution (#9706)
  • Ensure configured font-feature-settings are included in Preflight (#9707)
  • Fix fractional values not being parsed properly inside arbitrary properties (#9705)
  • Fix incorrect selectors when using @apply in selectors with combinators and pseudos (#9722)
  • Fix cannot read properties of undefined (reading 'modifier') (#9656, aa979d6)

3.2.1 - 2022-10-21

Fixed

  • Fix missing supports in types (#9616)
  • Fix missing PostCSS dependencies in the CLI (#9617)
  • Ensure micromatch is a proper CLI dependency (#9620)
  • Ensure modifier values exist when using a modifiers object for matchVariant (ba6551d)

3.2.0 - 2022-10-19

Added

  • Add new @config directive (#9405)
  • Add new relative: true option to resolve content paths relative to the config file (#9396)
  • Add new supports-* variant (#9453)
  • Add new min-* and max-* variants (#9558)
  • Add new aria-* variants (#9557, #9588)
  • Add new data-* variants (#9559, #9588)
  • Add new break-keep utility for word-break: keep-all (#9393)
  • Add new collapse utility for visibility: collapse (#9181)
  • Add new fill-none utility for fill: none (#9403)
  • Add new stroke-none utility for stroke: none (#9403)
  • Add new place-content-baseline utility for place-content: baseline (#9498)
  • Add new place-items-baseline utility for place-items: baseline (#9507)
  • Add new content-baseline utility for align-content: baseline (#9507)
  • Add support for configuring default font-feature-settings for a font family (#9039)
  • Add standalone CLI build for 32-bit Linux on ARM (node16-linux-armv7) (#9084)
  • Add future flag to disable color opacity utility plugins (#9088)
  • Add negative value support for outline-offset (#9136)
  • Add support for modifiers to matchUtilities (#9541)
  • Allow negating utilities using min/max/clamp (#9237)
  • Implement fallback plugins when there is ambiguity between plugins when using arbitrary values (#9376)
  • Support sort function in matchVariant (#9423)
  • Upgrade to postcss-nested v6.0 (#9546)

Fixed

  • Use absolute paths when resolving changed files for resilience against working directory changes (#9032)
  • Fix ring color utility generation when using respectDefaultRingColorOpacity (#9070)
  • Sort tags before classes when @apply-ing a selector with joined classes (#9107)
  • Remove invalid outline-hidden utility (#9147)
  • Honor the hidden attribute on elements in preflight (#9174)
  • Don't stop watching atomically renamed files (#9173, #9215)
  • Fix duplicate utilities issue causing memory leaks (#9208)
  • Fix fontFamily config TypeScript types (#9214)
  • Handle variants on complex selector utilities (#9262)
  • Fix shared config mutation issue (#9294)
  • Fix ordering of parallel variants (#9282)
  • Handle variants in utility selectors using :where() and :has() (#9309)
  • Improve data type analysis for arbitrary values (#9320)
  • Don't emit generated utilities with invalid uses of theme functions (#9319)
  • Revert change that only listened for stdin close on TTYs (#9331)
  • Ignore unset values (like null or undefined) when resolving the classList for intellisense (#9385)
  • Improve type checking for formal syntax (#9349, #9448)
  • Fix incorrect required content key in custom plugin configs (#9502, #9545)
  • Fix content path detection on Windows (#9569)
  • Ensure --content is used in the CLI when passed (#9587)

3.1.8 - 2022-08-05

Fixed

  • Don’t prefix classes within reused arbitrary variants (#8992)
  • Fix usage of alpha values inside single-named colors that are functions (#9008)
  • Fix @apply of user utilities when negative and non-negative versions both exist (#9027)

3.1.7 - 2022-07-29

Fixed

  • Don't rewrite source maps for @layer rules (#8971)

Added

  • Added types for resolveConfig (#8924)

3.1.6 - 2022-07-11

Fixed

  • Fix usage on Node 12.x (b4e637e)
  • Handle theme keys with slashes when using theme() in CSS (#8831)

3.1.5 - 2022-07-07

Added

  • Support configuring a default font-weight for each font size utility (#8763)
  • Add support for alpha values in safe list (#8774)

Fixed

  • Improve types to support fallback values in the CSS-in-JS syntax used in plugin APIs (#8762)
  • Support including tailwindcss and autoprefixer in postcss.config.js in standalone CLI (#8769)
  • Fix using special-characters as prefixes (#8772)
  • Don’t prefix classes used within arbitrary variants (#8773)
  • Add more explicit types for the default theme (#8780)

3.1.4 - 2022-06-21

Fixed

  • Provide default to <alpha-value> when using theme() (#8652)
  • Detect arbitrary variants with quotes (#8687)
  • Don’t add spaces around raw / that are preceded by numbers (#8688)

3.1.3 - 2022-06-14

Fixed

  • Fix extraction of multi-word utilities with arbitrary values and quotes (#8604)
  • Fix casing of import of corePluginList type definition (#8587)
  • Ignore PostCSS nodes returned by addVariant (#8608)
  • Fix missing spaces around arithmetic operators (#8615)
  • Detect alpha value in CSS theme() function when using quotes (#8625)
  • Fix "Maximum call stack size exceeded" bug (#8636)
  • Allow functions returning parallel variants to mutate the container (#8622)
  • Remove text opacity CSS variables from ::marker (#8622)

3.1.2 - 2022-06-10

Fixed

  • Ensure \ is a valid arbitrary variant token (#8576)
  • Enable postcss-import in the CLI by default in watch mode (#8574, #8580)

3.1.1 - 2022-06-09

Fixed

  • Fix candidate extractor regression (#8558)
  • Split ::backdrop into separate defaults group (#8567)
  • Fix postcss plugin type (#8564)
  • Fix class detection in markdown code fences and slim templates (#8569)

3.1.0 - 2022-06-08

Fixed

  • Types: allow for arbitrary theme values (for 3rd party plugins) (#7926)
  • Don’t split vars with numbers in them inside arbitrary values (#8091)
  • Require matching prefix when detecting negatives (#8121)
  • Handle duplicate At Rules without children (#8122)
  • Allow arbitrary values with commas in @apply (#8125)
  • Fix intellisense for plugins with multiple @apply rules (#8213)
  • Improve type detection for arbitrary color values (#8201)
  • Support PostCSS config options in config file in CLI (#8226)
  • Remove default [hidden] style in preflight (#8248)
  • Only check selectors containing base apply candidates for circular dependencies (#8222)
  • Rewrite default class extractor (#8204)
  • Move important selector to the front when @apply-ing selector-modifying variants in custom utilities (#8313)
  • Error when registering an invalid custom variant (#8345)
  • Create tailwind.config.cjs file in ESM package when running init (#8363)
  • Fix matchVariant that use at-rules and placeholders (#8392)
  • Improve types of the tailwindcss/plugin (#8400)
  • Allow returning parallel variants from addVariant or matchVariant callback functions (#8455)
  • Try using local postcss installation first in the CLI (#8270)
  • Allow default ring color to be a function (#7587)
  • Don't inherit to value from parent gradients (#8489)
  • Remove process dependency from log functions (#8530)
  • Ensure we can use @import 'tailwindcss/...' without node_modules (#8537)

Changed

  • Only apply hover styles when supported (future) (#8394)
  • Respect default ring color opacity (future) (#8448, 3f4005e)

Added

  • Support PostCSS Document nodes (#7291)
  • Add text-start and text-end utilities (#6656)
  • Support customizing class name when using darkMode: 'class' (#5800)
  • Add --poll option to the CLI (#7725)
  • Add new border-spacing utilities (#7102)
  • Add enabled variant (#7905)
  • Add TypeScript types for the tailwind.config.js file (#7891)
  • Add backdrop variant (#7924, #8526)
  • Add grid-flow-dense utility (#8193)
  • Add mix-blend-plus-lighter utility (#8288)
  • Add arbitrary variants (#8299)
  • Add experimental matchVariant API (#8310, 34fd0fb8)
  • Add prefers-contrast media query variants (#8410)
  • Add opacity support when referencing colors with theme function (#8416)
  • Add postcss-import support to the CLI (#8437)
  • Add optional variant (#8486)
  • Add <alpha-value> placeholder support for custom colors (#8501)

3.0.24 - 2022-04-12

Fixed

  • Prevent nesting plugin from breaking other plugins (#7563)
  • Recursively collapse adjacent rules (#7565)
  • Preserve source maps for generated CSS (#7588)
  • Split box shadows on top-level commas only (#7479)
  • Use local user CSS cache for @apply (#7524)
  • Invalidate context when main CSS changes (#7626)
  • Only add ! to selector class matching template candidate when using important modifier with multi-class selectors (#7664)
  • Correctly parse and prefix animation names with dots (#7163)
  • Fix extraction from template literal/function with array (#7481)
  • Don't output unparsable arbitrary values (#7789)
  • Fix generation of div:not(.foo) if .foo is never defined (#7815)
  • Allow for custom properties in rgb, rgba, hsl and hsla colors (#7933)
  • Remove autoprefixer as explicit peer-dependency to avoid invalid warnings in situations where it isn't actually needed (#7949)
  • Ensure the percentage data type is validated correctly (#8015)
  • Make sure font-weight is inherited by form controls in all browsers (#8078)

Changed

  • Replace chalk with picocolors (#6039)
  • Replace cosmiconfig with lilconfig (#6039)
  • Update cssnano to avoid removing empty variables when minifying (#7818)

3.0.23 - 2022-02-16

Fixed

  • Remove opacity variables from :visited pseudo class (#7458)
  • Support arbitrary values + calc + theme with quotes (#7462)
  • Don't duplicate layer output when scanning content with variants + wildcards (#7478)
  • Implement getClassOrder instead of sortClassList (#7459)

3.0.22 - 2022-02-11

Fixed

  • Temporarily move postcss to dependencies (#7424)

3.0.21 - 2022-02-10

Fixed

  • Move prettier plugin to dev dependencies (#7418)

3.0.20 - 2022-02-10

Added

  • Expose context.sortClassList(classes) (#7412)

3.0.19 - 2022-02-07

Fixed

  • Fix preflight border color fallback (#7288)
  • Correctly parse shadow lengths without a leading zero (#7289)
  • Don't crash when scanning extremely long class candidates (#7331)
  • Use less hacky fix for URLs detected as custom properties (#7275)
  • Correctly generate negative utilities when dash is before the prefix (#7295)
  • Detect prefixed negative utilities in the safelist (#7295)

3.0.18 - 2022-01-28

Fixed

  • Fix @apply order regression (in addComponents, addUtilities, ...) (#7232)
  • Quick fix for incorrect arbitrary properties when using URLs (#7252)

3.0.17 - 2022-01-26

Fixed

  • Remove false positive warning in CLI when using the --content option (#7220)

3.0.16 - 2022-01-24

Fixed

  • Ensure to transpile the PostCSS Nesting plugin (tailwindcss/nesting) (#7080)
  • Improve various warnings (#7118)
  • Fix grammatical mistake (cca5a38)

3.0.15 - 2022-01-15

Fixed

  • Temporarily remove optional chaining in nesting plugin (#7077)

3.0.14 - 2022-01-14

Added

  • Show warnings for invalid content config (#7065)

Fixed

  • Only emit utility/component variants when those layers exist (#7066)
  • Ensure nesting plugins can receive options (#7016)

3.0.13 - 2022-01-11

Fixed

  • Fix consecutive builds with at apply producing different CSS (#6999)

3.0.12 - 2022-01-07

Fixed

  • Allow use of falsy values in theme config (#6917)
  • Ensure we can apply classes that are grouped with non-class selectors (#6922)
  • Improve standalone CLI compatibility on Linux by switching to the linuxstatic build target (#6914)
  • Ensure @apply works consistently with or without @layer (#6938)
  • Only emit defaults when using base layer (#6926)
  • Emit plugin defaults regardless of usage (#6926)
  • Move default border color back to preflight (#6926)
  • Change experimental.optimizeUniversalDefaults to only work with @tailwind base (#6926)

3.0.11 - 2022-01-05

Fixed

  • Preserve casing of CSS variables added by plugins (#6888)
  • Ignore content paths that are passed in but don't actually exist (#6901)
  • Revert change that applies Tailwind's defaults in isolated environments like CSS modules (9fdc391)

3.0.10 - 2022-01-04

Fixed

  • Fix @apply in files without @tailwind directives (#6580, #6875)
  • CLI: avoid unnecessary writes to output files (#6550)

Added

  • Allow piping data into the CLI (#6876)

3.0.9 - 2022-01-03

Fixed

  • Improve DEBUG flag (#6797, #6804)
  • Ensure we can use < and > characters in modifiers (#6851)
  • Validate theme() works in arbitrary values (#6852)
  • Properly detect theme() value usage in arbitrary properties (#6854)
  • Improve collapsing of duplicate declarations (#6856)
  • Remove support for TAILWIND_MODE=watch (#6858)

3.0.8 - 2021-12-28

Fixed

  • Reduce specificity of abbr rule in preflight (#6671)
  • Support HSL with hue units in arbitrary values (#6726)
  • Add node16-linux-arm64 target for standalone CLI (#6693)

3.0.7 - 2021-12-17

Fixed

  • Don't mutate custom color palette when overriding per-plugin colors (#6546)
  • Improve circular dependency detection when using @apply (#6588)
  • Only generate variants for non-user layers (#6589)
  • Properly extract classes with arbitrary values in arrays and classes followed by escaped quotes (#6590)
  • Improve jsx interpolation candidate matching (#6593)
  • Ensure @apply of a rule inside an AtRule works (#6594)

3.0.6 - 2021-12-16

Fixed

  • Support square bracket notation in paths (#6519)
  • Ensure all plugins are executed for a given candidate (#6540)

3.0.5 - 2021-12-15

Fixed

  • Revert: add li to list-style reset (9777562d)

3.0.4 - 2021-12-15

Fixed

  • Insert always-on defaults layer in correct spot (#6526)

3.0.3 - 2021-12-15

Added

  • Warn about invalid globs in content (#6449)
  • Add standalone tailwindcss CLI (#6506)
  • Add li to list-style reset (00f60e6)

Fixed

  • Don't output unparsable values (#6469)
  • Fix text decoration utilities from overriding the new text decoration color/style/thickness utilities when used with a modifier (#6378)
  • Move defaults to their own always-on layer (#6500)
  • Support negative values in safelist patterns (#6480)

3.0.2 - 2021-12-13

Fixed

  • Temporarily disable optimize universal defaults, fixes issue with transforms/filters/rings not being @apply-able in CSS modules/Svelte components/Vue components (#6461)

3.0.1 - 2021-12-10

Fixed

  • Ensure complex variants with multiple classes work (#6311)
  • Re-add default interop to public available functions (#6348)
  • Detect circular dependencies when using @apply (#6365)
  • Fix defaults optimization when vendor prefixes are involved (#6369)

3.0.0 - 2021-12-09

Fixed

  • Enforce the order of some variants (like before and after) (#6018)

Added

  • Add placeholder variant (#6106)
  • Add composable touch-action utilities (#6115)
  • Add support for "arbitrary properties" (#6161)
  • Add portrait and landscape variants (#6046)
  • Add text-decoration-style, text-decoration-thickness, and text-underline-offset utilities (#6004)
  • Add menu reset to preflight (#6213)
  • Allow 0 as a valid length value (#6233, #6259)
  • Add CSS functions to data types (#6258)
  • Support negative values for scale-* utilities (c48e629)
  • Improve length data type, by validating each value individually (#6283)

Changed

  • Deprecate decoration-slice and decoration-break in favor box-decoration-slice and box-decoration-break (non-breaking) (#6004)

3.0.0-alpha.2 - 2021-11-08

Changed

  • Don't use pointer cursor on disabled buttons by default (#5772)
  • Set default content value in preflight instead of within each before/after utility (#5820)
  • Remove prefix as a function (#5829)

Added

  • Add flex-basis utilities (#5671)
  • Make negative values a first-class feature (#5709)
  • Add fit-content values for min/max-width/height utilities (#5638)
  • Add min/max-content values for min/max-height utilities (#5729)
  • Add all standard cursor-* values by default (#5734)
  • Add grow-* and shrink-* utilities, deprecate flex-grow-* and flex-shrink-* (#5733)
  • Add text-decoration-color utilities (#5760)
  • Add new declarative addVariant API (#5809)
  • Add first-class print variant for targeting printed media (#5885)
  • Add outline-style, outline-color, outline-width and outline-offset utilities (#5887)
  • Add full color palette for fill-* and stroke-* utilities (#5933)
  • Add composable API for colored box shadows (#5979)

Fixed

  • Configure chokidar's awaitWriteFinish setting to avoid occasional stale builds on Windows (#5774)
  • Fix CLI --content option (#5775)
  • Fix before/after utilities overriding custom content values at larger breakpoints (#5820)
  • Cleanup duplicate properties (#5830)
  • Allow _ inside url() when using arbitrary values (#5853)
  • Prevent crashes when using comments in @layer AtRules (#5854)
  • Handle color transformations properly with theme(...) for all relevant plugins (#4533, #5871)
  • Ensure @apply-ing a utility with multiple definitions works (#5870)

3.0.0-alpha.1 - 2021-10-01

Changed

  • Remove AOT engine, make JIT the default (#5340)
  • Throw when trying to @apply the group class (#4666)
  • Remove dependency on modern-normalize, inline and consolidate with Preflight (#5358)
  • Enable extended color palette by default with updated color names (#5384)
  • Move vertical-align values to config file instead of hard-coding (#5487)
  • Rename overflow-clip to text-clip and overflow-ellipsis to text-ellipsis (#5630)

Added

  • Add native aspect-ratio utilities (#5359)
  • Unify config callback helpers into single object (#5382)
  • Preserve original color format when adding opacity whenever possible (#5154)
  • Add accent-color utilities (#5387)
  • Add scroll-behavior utilities (#5388)
  • Add will-change utilities (#5448)
  • Add text-indent utilities (#5449)
  • Add column utilities (#5457)
  • Add border-hidden utility (#5485)
  • Add align-sub and align-super utilities by default (#5486)
  • Add break-before, break-inside and break-after utilities (#5530)
  • Add file variant for ::file-selector-button pseudo element (#4936)
  • Add comprehensive arbitrary value support (#5568)
  • Add touch-action utilities (#5603)
  • Add inherit to default color palette (#5597)
  • Add overflow-clip, overflow-x-clip and overflow-y-clip utilities (#5630)
  • Add [open] variant (#5627)
  • Add scroll-snap utilities (#5637)
  • Add border-x and border-y width and color utilities (#5639)

Fixed

  • Fix defining colors as functions when color opacity plugins are disabled (#5470)
  • Fix using negated content globs (#5625)
  • Fix using backslashes in content globs (#5628)

2.2.19 - 2021-10-29

Fixed

  • Ensure corePlugins order is consistent in AOT mode (#5928)

2.2.18 - 2021-10-29

Fixed

  • Bump versions for security vulnerabilities (#5924)

2.2.17 - 2021-10-13

Fixed

  • Configure chokidar's awaitWriteFinish setting to avoid occasional stale builds on Windows (#5758)

2.2.16 - 2021-09-26

Fixed

  • JIT: Properly handle animations that use CSS custom properties (#5602)

2.2.15 - 2021-09-10

Fixed

  • Ensure using CLI without -i for input file continues to work even though deprecated (#5464)

2.2.14 - 2021-09-08

Fixed

  • Only use @defaults in JIT, switch back to clean-css in case there's any meaningful differences in the output (bf248cb)

2.2.13 - 2021-09-08

Fixed

  • Replace clean-css with cssnano for CDN builds to fix minified builds (75cc3ca)

2.2.12 - 2021-09-08

Fixed

  • Ensure that divide utilities inject a default border color (#5438)

2.2.11 - 2021-09-07

Fixed

  • Rebundle to fix missing CLI peer dependencies

2.2.10 - 2021-09-06

Fixed

  • Fix build error when using presets: [] in config file (#4903)

Added

  • Reintroduce universal selector optimizations under experimental optimizeUniversalDefaults flag (a9e160c)

2.2.9 - 2021-08-30

Fixed

  • JIT: Fix @applying utilities that contain variants + the important modifier (#4854)
  • JIT: Don't strip "null" when parsing tracked file paths (#5008)
  • Pin clean-css to v5.1.4 to fix empty CSS variables in CDN builds (#5338)

2.2.8 - 2021-08-27

Fixed

  • Improve accessibility of default link focus styles in Firefox (#5082)
  • JIT: Fix animation variants corrupting keyframes rules (#5223)
  • JIT: Ignore escaped commas when splitting selectors to apply prefixes (#5239)
  • Nesting: Maintain PostCSS node sources when handling @apply (#5249)
  • JIT: Fix support for animation lists (#5252)
  • JIT: Fix arbitrary value support for object-position utilities (#5245)
  • CLI: Abort watcher if stdin is closed to avoid zombie processes (#4997)
  • JIT: Ignore arbitrary values with unbalanced brackets (#5293)

2.2.7 - 2021-07-23

Fixed

  • Temporarily revert runtime performance optimizations introduced in v2.2.5, use universal selector again (#5060)

2.2.6 - 2021-07-21

Fixed

  • Fix issue where base styles not generated for translate transforms in JIT (#5038)

2.2.5 - 2021-07-21

Added

  • Added self-baseline utility (I know this is a patch release, no one's going to die relax) (#5000)

Changed

  • JIT: Optimize universal selector usage by inlining only the relevant selectors (#4850))

    This provides a very significant performance boost on pages with a huge number of DOM nodes, but there's a chance it could be a breaking change in very rare edge cases we haven't thought of. Please open an issue if anything related to shadows, rings, transforms, filters, or backdrop-filters seems to be behaving differently after upgrading.

Fixed

  • Fix support for step-start and step-end in animation utilities (#4795))
  • JIT: Prevent presence of !* in templates from ruining everything (#4816))
  • JIT: Improve support for quotes in arbitrary values (#4817))
  • Fix filter/backdrop-filter/transform utilities being inserted into the wrong position if not all core plugins are enabled (#4852))
  • JIT: Fix @layer rules being mistakenly inserted during incremental rebuilds (#4853))
  • Improve build performance for projects with many small non-Tailwind stylesheets (#4644)
  • Ensure [hidden] works as expected on elements where we override the default display value in Preflight (#4873)
  • Fix variant configuration not being applied to backdropOpacity utilities (#4892)

2.2.4 - 2021-06-23

Fixed

  • Remove postinstall script that was preventing people from installing the library (1eacfb9)

2.2.3 - 2021-06-23

Added

  • Pass extended color palette to theme closures so it can be used without installing Tailwind when using npx tailwindcss (359252c)

Fixed

  • JIT: Explicitly error when - is used as a custom separator (#4704)
  • JIT: Don't add multiple ~ when stacking peer-* variants (#4757)
  • Remove outdated focus style fix in Preflight (#4780)
  • Enable purge if provided on the CLI (#4772)
  • JIT: Fix error when not using a config file with postcss-cli (#4773)
  • Fix issue with resolveConfig not being importable in Next.js pages (#4725)

2.2.2 - 2021-06-18

Fixed

  • JIT: Reintroduce transform, filter, and backdrop-filter classes purely to create stacking contexts to minimize the impact of the breaking change (#4700)

2.2.1 - 2021-06-18

Fixed

  • Recover from errors gracefully in CLI watch mode (#4693)
  • Fix issue with media queries not being generated properly when using PostCSS 7 (#4695)

2.2.0 - 2021-06-17

Changed

  • JIT: Use "tracking" context by default instead of "watching" context for improved reliability with most bundlers (#4514)

    Depending on which tooling you use, you may need to explicitly set TAILWIND_MODE=watch until your build runner has been updated to support PostCSS's dir-dependency message type.

Added

  • Add background-origin utilities (#4117)
  • Improve @apply performance in projects that process many CSS sources (#3178)
  • JIT: Don't use CSS variables for color utilities if color opacity utilities are disabled (#3984)
  • JIT: Redesign matchUtilities API to make it more suitable for third-party use (#4232)
  • JIT: Support applying important utility variants (#4260)
  • JIT: Support coercing arbitrary values when the type isn't detectable (#4263)
  • JIT: Support for raw syntax in purge config (#4272)
  • Add empty variant (#3298)
  • Update modern-normalize to v1.1 (#4287)
  • Implement theme function internally, remove postcss-functions dependency (#4317)
  • Add screen function to improve nesting plugin compatibility (#4318)
  • JIT: Add universal shorthand color opacity syntax (#4348)
  • JIT: Add @tailwind variants directive to replace @tailwind screens (#4356)
  • JIT: Add support for PostCSS dir-dependency messages in TAILWIND_DISABLE_TOUCH mode (#4388)
  • JIT: Add per-side border color utilities (#4404)
  • JIT: Add support for before and after pseudo-element variants and content utilities (#4461)
  • Add new transform and extract APIs to simplify PurgeCSS/JIT customization (#4469)
  • JIT: Add exhaustive pseudo-class and pseudo-element variant support (#4482)
  • JIT: Add caret-color utilities (#4499)
  • Rename lightBlue to sky, emit console warning when using deprecated name (#4513)
  • New CLI with improved JIT support, --watch mode, and more (#4526, 4558)
  • JIT: Add new peer-* variants for styling based on sibling state (#4556)
  • Expose safelist as a top-level option under purge for both JIT and classic engines (#4580)
  • JIT: Remove need for transform class when using classes like scale-*, rotate-*, etc. (#4604)
  • JIT: Remove need for filter and backdrop-filter classes when using classes like contrast-*, backdrop-blur-*, etc. (#4614)
  • Support passing a custom path for your PostCSS configuration in the Tailwind CLI (#4607)
  • Add blur-none by default with intent to deprecate blur-0 (#4614)

Fixed

  • JIT: Improve support for Svelte class bindings (#4187)
  • JIT: Improve support for calc and var in arbitrary values (#4147)
  • Convert hsl colors to hsla when transforming for opacity support instead of rgba (#3850)
  • Fix backdropBlur variants not being generated (#4188)
  • Improve animation value parsing (#4250)
  • Ignore unknown object types when hashing config (82f4eaa)
  • Ensure variants are grouped properly for plugins with order-dependent utilities (#4273)
  • JIT: Fix temp file storage when node temp directories are kept on a different drive than the project itself (#4044)
  • Support border-opacity utilities alongside default border utility (#4277)
  • JIT: Fix source maps for expanded @tailwind directives (2f15411)
  • JIT: Ignore whitespace when collapsing adjacent rules (15642fb)
  • JIT: Generate group parent classes correctly when using custom separator (#4508)
  • JIT: Fix incorrect stacking of multiple group variants (#4551)
  • JIT: Fix memory leak due to holding on to unused contexts (#4571)

Internals

  • Add integration tests for popular build runners (#4354)

2.1.4 - 2021-06-02

Fixed

  • Skip raw PurgeCSS sources when registering template dependencies (#4542)

2.1.3 - 2021-06-01

Fixed

  • Register PurgeCSS paths as PostCSS dependencies to guarantee proper cache-busting in webpack 5 (#4530)

2.1.2 - 2021-04-23

Fixed

  • Fix issue where JIT engine would generate the wrong CSS when using PostCSS 7 (#4078)

2.1.1 - 2021-04-05

Fixed

  • Fix issue where JIT engine would fail to compile when a source path isn't provided by the build runner for the current input file (#3978)

2.1.0 - 2021-04-05

Added

  • Add alternate JIT engine (in preview) (#3905)
  • Add new mix-blend-mode and background-blend-mode utilities (#3920)
  • Add new box-decoration-break utilities (#3911)
  • Add new isolation utilities (#3914)
  • Add inline-table display utility (#3563)
  • Add list-item display utility (#3929)
  • Add new filter and backdrop-filter utilities (#3923)

2.0.4 - 2021-03-17

Fixed

  • Pass full var(--bg-opacity) value as opacityValue when defining colors as functions

2.0.3 - 2021-02-07

Fixed

  • Ensure sourcemap input is deterministic when using @apply in Vue components (#3356)
  • Ensure placeholder opacity is consistent across browsers (#3308)
  • Fix issue where theme() didn't work with colors defined as functions (#2919)
  • Enable dark variants by default for color opacity utilities (#2975)

Added

  • Add support for a tailwind.config.cjs file in Node ESM projects (#3181)
  • Add version comment to Preflight (#3255)
  • Add cursor-help by default (#3199)

2.0.2 - 2020-12-11

Fixed

  • Fix issue with @apply not working as expected with !important inside an at-rule (#2824)
  • Fix issue with @apply not working as expected with defined classes (#2832)
  • Fix memory leak, and broken @apply when splitting up files (#3032)

Added

  • Add default values for the ring utility (#2951)

2.0.1 - 2020-11-18

  • Nothing, just the only thing I could do when I found out npm won't let me publish the same version under two tags.

2.0.0 - 2020-11-18

Added

  • Add redesigned color palette (#2623, 700866c, #2633)
  • Add dark mode support (#2279, #2631)
  • Add overflow-ellipsis and overflow-clip utilities (#1289)
  • Add transform-gpu to force hardware acceleration on transforms when desired (#1380)
  • Extend default spacing scale (#2630, 7f05204)
  • Add spacing scale to inset plugin (#2630)
  • Add percentage sizes to translate, inset, and height plugins (#2630, 5259560)
  • Extend default font size scale (#2609, #2619)
  • Support using @apply with complex classes, including variants like lg:hover:bg-blue-500 (#2159)
  • Add new 2xl breakpoint at 1536px by default (#2609)
  • Add default line-height values for font-size utilities (#2609)
  • Support defining theme values using arrays for CSS properties that support comma separated values (e13f083c4)
  • Enable group-hover for color plugins, boxShadow, and textDecoration by default (28985b6, f6923b1)
  • Enable focus for z-index utilities by default (ae5b3d3)
  • Support extend in variants configuration (#2651)
  • Add max-w-prose class by default (#2574)
  • Support flattening deeply nested color objects (#2148)
  • Support defining presets as functions (#2680)
  • Support deep merging of objects under extend (#2679, #2700)
  • Enable focus-within for all plugins that have focus enabled by default (1a21f072, f6923b1)
  • Added new ring utilities for creating outline/focus rings using box shadows (#2747, 879f088, e0788ef)
  • Added 5 and 95 to opacity scale (#2747)
  • Add support for default duration and timing function values whenever enabling transitions (#2755)

Changed

  • Completely redesign color palette (#2623, 700866c, #2633)
  • Drop support for Node 8 and 10 (#2582)
  • Removed target feature and dropped any compatibility with IE 11 (#2571)
  • Upgrade to PostCSS 8 (but include PostCSS 7 compatibility build) (729b400, 1d8679d, c238ed1)
  • Removed shadow-outline, shadow-solid, and shadow-xs by default in favor of new ring API (#2747)
  • Switch normalize.css to modern-normalize (#2572)
  • Rename whitespace-no-wrap to whitespace-nowrap (#2664)
  • Rename flex-no-wrap to flex-nowrap (#2676)
  • Remove clearfix utility, recommend flow-root instead (#2766)
  • Disable hover and focus for fontWeight utilities by default (f6923b1)
  • Remove grid-gap fallbacks needed for old versions of Safari (5ec45fa)
  • Change special use of 'default' in config to 'DEFAULT' (#2580)
  • New @apply implementation, slight backwards incompatibilities with previous behavior (#2159)
  • Make theme retrieve the expected resolved value when theme value is complex (e13f083c4)
  • Move truncate class to textOverflow core plugin (#2562)
  • Remove scrolling-touch and scrolling-auto utilities (#2573)
  • Modernize default system font stacks (#1711)
  • Upgrade to PurgeCSS 3.0 (8e4e0a0)
  • Change default text-6xl font-size to 3.75rem instead of 4rem (#2619)
  • Ignore [hidden] elements within space and divide utilities instead of template elements (#2642)
  • Automatically prefix keyframes and animation names when a prefix is configured (#2621, #2641)
  • Merge extend objects deeply by default (#2679)
  • Respect preserveHtmlElements option even when using custom PurgeCSS extractor (#2704)
  • Namespace all internal custom properties under tw- to avoid collisions with end-user custom properties (#2771)

2.0.0-alpha.25 - 2020-11-17

Fixed

  • Fix issue where ring-offset-0 didn't work due to unitless 0 in calc function (3de0c48)

2.0.0-alpha.24 - 2020-11-16

Changed

  • Don't override ring color when overriding ring width with a variant (e40079a)

Fixed

  • Prevent shadow/ring styles from cascading to children (e40079a)
  • Ensure rings have a default color even if colors.blue.500 is not present in config (e40079a)

2.0.0-alpha.23 - 2020-11-16

Added

  • Add scripts for generating a PostCSS 7 compatible build alongside PostCSS 8 version (#2773)

Changed

  • All custom properties have been internally namespaced under tw- to avoid collisions with end-user custom properties (#2771)

2.0.0-alpha.22 - 2020-11-16

Changed

  • All custom properties have been internally namespaced under tw- to avoid collisions with end-user custom properties (#2771) I made a git boo-boo, check alpha.23 instead

2.0.0-alpha.21 - 2020-11-15

Changed

  • Upgrade to PostCSS 8, Autoprefixer 10, move postcss and autoprefixer to peerDependencies (729b400)

2.0.0-alpha.20 - 2020-11-13

Changed

  • Remove clearfix utility, recommend flow-root instead (#2766)

2.0.0-alpha.19 - 2020-11-13

Fixed

  • Don't crash when color palette is empty (278c203)

2.0.0-alpha.18 - 2020-11-13

Changed

  • black and white have been added to colors.js (b3ed724)

Fixed

  • Add support for colors as closures to ringColor and ringOffsetColor, previously would crash build (62a47f9)

2.0.0-alpha.17 - 2020-11-13

Changed

  • Remove grid-gap fallbacks needed for old versions of Safari (5ec45fa)

2.0.0-alpha.16 - 2020-11-12

Added

  • Enable focus, focus-within, and dark variants (when enabled) for all ring utilities by default (e0788ef)

2.0.0-alpha.15 - 2020-11-11

Added

  • Added ring-inset utility for rendering rings as inset shadows (879f088)

Changed

  • ringWidth utilities always reset ring styles to ensure no accidental variable inheritance through the cascade (879f088)

2.0.0-alpha.14 - 2020-11-11

Added

  • Enable focus-within for outline utilities by default (f6923b1)
  • Enable focus-within for ringWidth utilities by default (f6923b1)
  • Enable group-hover for boxShadow utilities by default (f6923b1)
  • Enable group-hover and focus-within for textDecoration utilities by default (f6923b1)

Changed

  • Disable hover and focus for fontWeight utilities by default (f6923b1)

2.0.0-alpha.13 - 2020-11-11

Added

  • Add support for default duration and timing function values whenever enabling transitions (#2755)

2.0.0-alpha.12 - 2020-11-10

Fixed

  • Prevent boxShadow utilities from overriding ring shadows added by components like in the custom forms plugin (c3dd3b6)

2.0.0-alpha.11 - 2020-11-09

Fixed

  • Convert none to 0 0 #0000 when used for shadows to ensure compatibility with ring utilities (4eecc27)

2.0.0-alpha.10 - 2020-11-09

Added

  • Added new ring utilities (#2747)
  • Added 5 and 95 to opacity scale (#2747)

Changed

  • Removed shadow-outline, shadow-solid, and shadow-xs in favor of new ring API (#2747)

2.0.0-alpha.9 - 2020-11-07

Added

  • Added shadow-solid utility, a 2px solid shadow that uses the current text color (369cfae)
  • Enable focus-within where useful by default (1a21f072)

Changed

  • Update shadow-outline to use the new blue (b078238)

2.0.0-alpha.8 - 2020-11-06

Added

  • Add 11 to spacing scale (7f05204)
  • Add percentage-based height values (5259560)
  • Add indigo to the color palette by default (700866c)

Changed

  • Use coolGray as the default gray (700866c)

2.0.0-alpha.7 - 2020-11-05

Changed

  • Revert upgrading to PostCSS 8 lol

2.0.0-alpha.6 - 2020-11-04

Changed

  • Respect preserveHtmlElements option even when using custom PurgeCSS extractor (#2704)
  • Set font-family and line-height to inherit on body to behave more like v1.x (#2729)

2.0.0-alpha.5 - 2020-10-30

Changed

2.0.0-alpha.4 - 2020-10-29

Added

  • Support deep merging of arrays of objects under extend (#2700)

2.0.0-alpha.3 - 2020-10-27

Added

  • Support flattening deeply nested color objects (#2148)
  • Support defining presets as functions (#2680)

Changed

  • Merge extend objects deeply by default (#2679)
  • Rename flex-no-wrap to flex-nowrap (#2676)

2.0.0-alpha.2 - 2020-10-25

Added

  • Support extend in variants configuration (#2651)
  • Add max-w-prose class by default (#2574)

Changed

  • Revert use of logical properties for space and divide utilities (#2644)
  • space and divide utilities ignore elements with [hidden] now instead of only ignoring template elements (#2642)
  • Set default font on body, not just html (#2643)
  • Automatically prefix keyframes and animation names when a prefix is configured (#2621, #2641)
  • Rename whitespace-no-wrap to whitespace-nowrap (#2664)

1.9.6 - 2020-10-23

Changed

  • The presets feature had unexpected behavior where a preset config without its own presets key would not extend the default config. (#2662)

    If you were depending on this unexpected behavior, just add presets: [] to your own preset to exclude the default configuration.

2.0.0-alpha.1 - 2020-10-20

Added

  • Added dark mode support (#2279, #2631)
  • Added overflow-ellipsis and overflow-clip utilities (#1289)
  • Add transform-gpu to force hardware acceleration on transforms when beneficial (#1380)
  • Extended spacing scale (#2630)
  • Add spacing scale to inset plugin (#2630)
  • Enable useful relative sizes for more plugins (#2630)
  • Extend font size scale (#2609, #2619)
  • Support using @apply with complex classes (#2159)
  • Add new 2xl breakpoint (#2609)
  • Add default line-height values for font-size utilities (#2609)
  • Support defining theme values using arrays wherever it makes sense (box-shadow, transition-property, etc.) (e13f083c4)
  • Enable group-hover for color utilities by default (28985b6)
  • Enable focus for z-index utilities by default (ae5b3d3)

Changed

  • New @apply implementation, slight backwards incompatibilities with previous behavior (#2159)
  • Move truncate class to textOverflow core plugin (#2562)
  • Removed target feature and dropped any compatibility with IE 11 (#2571)
  • Switch normalize.css to modern-normalize (#2572)
  • Remove scrolling-touch and scrolling-auto utilities (#2573)
  • Change special use of 'default' in config to 'DEFAULT' (#2580)
  • Drop support for Node 8 and 10 (#2582)
  • Modernize default system font stacks (#1711)
  • Upgrade to PurgeCSS 3.0
  • Upgrade to PostCSS 8.0 Reverted for now
  • Use logical properties for space and divide utilities (#1883)
  • Make theme retrieve the expected resolved value when theme value is complex (e13f083c4)
  • Adjust default font-size scale to include 60px instead of 64px (#2619)
  • Update default colors in Preflight to match new color palette (#2633)

1.9.5 - 2020-10-19

Fixed

  • Fix issue where using theme with default line-heights did not resolve correctly

1.9.4 - 2020-10-17

Fixed

  • Fix issue changing plugins defined using the withOptions API would not trigger rebuilds in watch processes

1.9.3 - 2020-10-16

Fixed

  • Fix issue where tailwindcss init --full scaffolded a corrupt config file (#2556)

Changed

  • Remove console warnings about upcoming breaking changes

1.9.2 - 2020-10-14

Fixed

  • Merge plugins when merging config with preset (#2561
  • Use word-wrap and overflow-wrap together, not one or the other since word-wrap is IE-only

1.9.1 - 2020-10-14

Fixed

  • Don't import corePlugins in resolveConfig to avoid bundling browser-incompatible code (#2548)

1.9.0 - 2020-10-12

Added

  • Add new presets config option (#2474)
  • Scaffold new tailwind.config.js files with available future flags commented out (#2379)
  • Add col-span-full and row-span-full (#2471)
  • Make outline configurable, outline-none more accessible by default, and add outline-black and outline-white (#2460)
  • Add additional small rotate and skew values (#2528)
  • Add xl, 2xl, and 3xl border radius values (#2529)
  • Add new utilities for grid-auto-columns and grid-auto-rows (#2531)
  • Promote defaultLineHeights and standardFontWeights from experimental to future

Fixed

  • Don't escape keyframe values (#2432)
  • Use word-wrap instead of overflow-wrap in ie11 target mode (#2391)

Experimental

  • Add experimental 2xl breakpoint (#2468)
  • Rename {u}-max-content and {u}-min-content utilities to {u}-max and {u}-min in experimental extended spacing scale (#2532)
  • Support disabling dark mode variants globally (#2530)

1.8.13 - 2020-10-09

Fixed

  • Support defining colors as closures even when opacity variables are not supported (#2536)

1.8.12 - 2020-10-07

Fixed

  • Reset color opacity variable in utilities generated using closure colors (#2515)

1.8.11 - 2020-10-06

  • Make tailwindcss.plugin work in ESM environments for reasons

1.8.10 - 2020-09-14

Fixed

  • Prevent new dark experiment from causing third-party dark variants to inherit stacking behavior (#2382)

1.8.9 - 2020-09-13

Fixed

  • Add negative spacing values to inset plugin in the extendedSpacingScale experiment (#2358)
  • Fix issue where !important was stripped from declarations within rules that used @apply with applyComplexClasses (#2376)

Changed

1.8.8 - 2020-09-11

Fixed

  • Register dark mode plugin outside of resolveConfig code path (#2368)

1.8.7 - 2020-09-10

Fixed

  • Fix issue where classes in escaped strings (like class=\"block\") weren't extracted properly for purging (#2364)

1.8.6 - 2020-09-09

Fixed

  • Fix issue where container padding not applied when using object syntax (#2353)

1.8.5 - 2020-09-07

Fixed

  • Fix issue where resolveConfig didn't take into account configs added by feature flags (#2347)

1.8.4 - 2020-09-06

Fixed

  • Fix issue where inserting extra PurgeCSS control comments could break integrated PurgeCSS support
  • Fix issue where dark variant in 'class' mode was incompatible with 'group-hover' variant (#2337)
  • Support basic nesting structure with @apply when using the applyComplexClasses experiment (#2271)

Changed

  • Rename font-hairline and font-thin to font-thin and font-extralight behind standardFontWeights flag (experimental until v1.9.0) (#2333)

1.8.3 - 2020-09-05

Fixed

  • Fix issue where font-variant-numeric utilities would break in combination with most CSS minifier configurations (f3660ce)
  • Only warn about conservative purge mode being deprecated once per process (58781b5)

1.8.2 - 2020-09-04

Fixed

  • Fix bug where dark mode variants would cause an error if you had a plugins array in your config (#2322)

1.8.1 - 2020-09-04

Fixed

  • Fix bug in the new font-variant-numeric utilities which broke the whole rule (#2318)
  • Fix bug while purging (#2320)

1.8.0 - 2020-09-04

Added

  • Dark mode variant (experimental) (#2279)
  • New preserveHtmlElements option for purge (#2283)
  • New layers mode for purge (#2288)
  • New font-variant-numeric utilities (#2305)
  • New place-items, place-content, place-self, justify-items, and justify-self utilities (#2306)
  • Support configuring variants as functions (#2309)

Changed

  • CSS within @layer at-rules are now grouped with the corresponding @tailwind at-rule (#2312)

Deprecated

  • conservative purge mode, deprecated in favor of layers

1.7.6 - 2020-08-29

Fixed

  • Fix bug where the new experimental @apply implementation broke when applying a variant class with the important option globally enabled

1.7.5 - 2020-08-28

Changed

  • Update lodash to latest to silence security warnings

1.7.4 - 2020-08-26

Added

  • Add new -p flag to CLI to quickly scaffold a postcss.config.js file

Changed

  • Make @apply insensitive to whitespace in the new applyComplexClasses experiment

Fixed

  • Fix bug where the new applyComplexClasses experiment didn't behave as expected with rules with multiple selectors, like .foo, .bar { color: red }

1.7.3 - 2020-08-20

Changed

  • Log feature flag notices to stderr instead of stdout to preserve compatibility with pipe-based build systems
  • Add missing bg-none utility for disabling background images

Fixed

  • Fix bug that prevented defining colors as closures when the gradientColorStops plugin was enabled

1.7.2 - 2020-08-19

Added

  • Reuse generated CSS as much as possible in long-running processes instead of needlessly recalculating

1.7.1 - 2020-08-28

Changed

  • Don't issue duplicate flag notices in long-running build processes

1.7.0 - 2020-08-28

Added

  • Gradients
  • New background-clip utilities
  • New contents display utility
  • Default letter-spacing per font-size
  • Divide border styles
  • Access entire config object from plugins
  • Define colors as closures
  • Use @apply with variants and other complex classes (experimental)
  • New additional color-palette (experimental)
  • Extended spacing scale (experimental)
  • Default line-heights per font-size by default (experimental)
  • Extended font size scale (experimental)

Deprecated

  • Deprecated gap utilities

1.6.3 - 2020-08-18

Fixed

  • Fixes issue where motion-safe and motion-reduce variants didn't stack correctly with group-hover variants

1.6.2 - 2020-08-03

Fixed

  • Fixes issue where @keyframes respecting the important option would break animations in Chrome

1.6.1 - 2020-08-02

Fixed

  • Fixes an issue where animation keyframes weren't included in the build without @tailwind base (#2108)

1.6.0 - 2020-07-28

Added

  • Animation support
  • New prefers-reduced-motion variants
  • New overscroll-behaviour utilities
  • Generate CSS without an input file

1.5.2 - 2020-07-21

Fixed

  • Fixes issue where you could no longer use @apply with unprefixed class names if you had configured a prefix

1.5.1 - 2020-07-15

Fixed

  • Fixes accidental breaking change where adding component variants using the old manual syntax (as recommended in the docs) stopped working

1.5.0 - 2020-07-15

Added

  • Component variants support
  • Responsive container variants
  • New focus-visible variant
  • New checked variant

v0.0.0-658250a96 - 2020-07-12 [YANKED]

No release notes

1.4.6 - 2020-05-08

Changed

  • Explicitly error when using a class as the important config option instead of just generating the wrong CSS

1.4.5 - 2020-05-06

Fixed

  • Fix bug where the divideColor plugin was using the wrong '' in IE11 target mode

1.4.4 - 2020-05-01

Fixed

  • Fix bug where target: 'browserslist' didn't work, only target: ['browserslist', {...}] did

1.4.3 - 2020-05-01

Changed

  • Don't generate unnecessary CSS in color plugins when color opacity utilities are disabled

1.4.2 - 2020-05-01

Fixed

  • Fix issue where purge: { enabled: false } was ignored, add purge: false shorthand

1.4.1 - 2020-04-30

Changed

  • Improve built-in PurgeCSS extractor to better support Haml and Slim templates

1.4.0 - 2020-04-29

Added

  • New color opacity utilities
  • Built-in PurgeCSS
  • IE 11 target mode (experimental)

1.3.5 - 2020-04-23

Removed

  • Drop fs-extra dependency to ^8.0.0 to preserve Node 8 compatibility until Tailwind 2.0

Fixed

  • Fix missing unit in calc bug in space plugin (space-x-0 didn't work for example)

1.3.4 - 2020-04-21

Fixed

  • Fix bug where divide-{x/y}-0 utilities didn't work due to missing unit in calc call

1.3.3 - 2020-04-21

Added

  • Add forgotten responsive variants for space, divideWidth, and divideColor utilities

1.3.1 - 2020-04-21

Fixed

  • Fix bug where the space-x utilities were not being applied correctly due to referencing --space-y-reverse instead of --space-x-reverse

1.3.0 - 2020-04-21

Added

  • New space and divide layout utilities
  • New transition-delay utilities
  • New group-focus variant
  • Support for specifying a default line-height for each font-size utility
  • Support for breakpoint-specific padding for container class
  • Added current to the default color palette
  • New inline-grid utility
  • New flow-root display utility
  • New clear-none utility

1.2.0 - 2020-02-05

Added

  • CSS Transition support
  • CSS Transform support
  • CSS Grid support
  • Added max-w-{screen} utilities
  • Added max-w-none utility
  • Added rounded-md utility
  • Added shadow-sm utility
  • Added shadow-xs utility
  • Added stroke-width utilities
  • Added fixed line-height utilities
  • Added additional display utilities for table elements
  • Added box-sizing utilities
  • Added clear utilities
  • Config file dependencies are now watchable
  • Added new plugin and plugin.withOptions APIs

Changed

  • Allow plugins to extend the user's config

1.2.0-canary.8 - 2020-02-05

Added

  • Add additional fixed-size line-height utilities

1.2.0-canary.7 - 2020-02-04

Removed

  • Remove Inter from font-sans, plan to add later under new class

1.2.0-canary.6 - 2020-02-03

Added

  • Add system-ui to default font stack
  • Add shadow-xs, increase shadow-sm alpha to 0.05
  • Support import syntax even without postcss-import
  • Alias tailwind bin to tailwindcss
  • Add fill/stroke to transition-colors
  • Add transition-shadow, add box-shadow to default transition
  • Combine gap/columnGap/rowGap
  • Add grid row utilities
  • Add skew utilities

Changed

  • Use font-sans as default font

1.2.0-canary.5 - 2020-01-08

Added

  • Adds missing dependency resolve which is required for making config dependencies watchable

1.2.0-canary.4 - 2020-01-08

Added

  • CSS Transition support
  • CSS Transform support
  • CSS Grid support
  • New max-w-{screen} utilities
  • Added max-w-none utility
  • Added "Inter" to the default sans-serif font stack
  • Add rounded-md utility
  • Add shadow-sm utility
  • Added stroke-width utilities
  • Added additional display utilities for table elements
  • Added box-sizing utilities
  • Added clear utilities
  • Config file dependencies are now watchable
  • Allow plugins to extend the user's config
  • Add new plugin and plugin.withOptions APIs

[v1.2.0-canary.3] - 2020-01-08 [YANKED]

No release notes

1.1.4 - 2019-11-25

Changed

  • Note: Although this is a bugfix it could affect your site if you were working around the bug in your own code by not prefixing the .group class. I'm sorry 😞

Fixed

  • Fixes a bug where the .group class was not receiving the user's configured prefix when using the prefix option

1.2.0-canary.1 - 2019-10-22

Changed

  • Don't watch node_modules files for changes

Fixed

  • Fixes significant build performance regression in v1.2.0-canary.0

1.1.3 - 2019-10-22

Fixed

  • Fixes an issue where in some cases function properties in the user's theme config didn't receive the second utils argument

1.2.0-canary.0 - 2019-10-14

Added

  • Automatically watch all config file dependencies (plugins, design tokens imported from other files, etc.) for changes when build watcher is running
  • Add justify-evenly utility

Changed

  • Allow plugins to add their own config file to be resolved with the user's custom config

1.1.2 - 2019-08-14

Fixed

  • Fixes a bug with horizontal rules where they were displayed with a 2px border instead of a 1px border
  • Fixes a bug with horizontal rules where they were rendered with default top/bottom margin

1.1.1 - 2019-08-09

Fixed

  • Fixes issue where values like auto would fail to make it through the default negative margin config

1.1.0 - 2019-08-06

Added

  • Added utilities for screenreader visibility
  • Added utilities for placeholder color
  • First, last, even, and odd child variants
  • Disabled variant
  • Visited variant
  • Increase utility specificity using a scope instead of !important
  • Add hover/focus variants for opacity by default
  • Added border-double utility
  • Support negative prefix for boxShadow and letterSpacing plugins
  • Support passing config path via object

Fixed

  • Placeholders no longer have a default opacity
  • Make horizontal rules visible by default
  • Generate correct negative margins when using calc

1.0.6 - 2019-08-01

Fixed

  • Fixes issue where modifiers would mutate nested rules

1.0.5 - 2019-07-11

Added

  • Support built-in variants for utilities that include pseudo-elements

Changed

  • Update several dependencies, including postcss-js which fixes an issue with using !important directly in Tailwind utility plugins

1.0.4 - 2019-06-11

Changed

  • Increase precision of percentage width values to avoid 1px rounding issues in grid layouts

1.0.3 - 2019-06-01

Changed

  • Throws an error when someone tries to use @tailwind preflight instead of @tailwind base, this is the source of many support requests

1.0.2 - 2019-05-27

Fixed

  • Fixes a bug where @screen rules weren't bubbled properly when nested in plugins

1.0.1 - 2019-05-13

Fixed

  • Fixes a bug where global variants weren't properly merged

1.0.0 - 2019-05-13

No release notes

1.0.0-beta.10 - 2019-05-12

Changed

  • Use 9999 and -9999 for order-last and order-first utilities respectively

1.0.0-beta.9 - 2019-05-12

Added

  • Add bg-repeat-round and bg-repeat-space utilities
  • Add select-all and select-auto utilities

Changed

  • Make all utilities responsive by default

1.0.0-beta.8 - 2019-04-28

Added

  • Adds responsive variants for the new order utilities by default, should have been there all along

1.0.0-beta.7 - 2019-04-27

Fixed

  • Fixes a bug where you couldn't extend the margin config

1.0.0-beta.6 - 2019-04-27

Added

  • Added support for negative inset (-top-6, -right-4) and z-index (-z-10) utilities, using the same negative key syntax supported by the margin plugin
  • Add missing fractions as well as x/12 fractions to width scale
  • Add order utilities
  • Add cursor-text class by default

Changed

  • Make it possible to access your fully merged config file in JS

Removed

  • Removed negativeMargin plugin, now the regular margin plugin supports generating negative classes (like -mx-6) by using negative keys in the config, like -6

1.0.0-beta.5 - 2019-04-18

Changed

  • Make it possible to disable all core plugins using corePlugins: false
  • Make it possible to configure a single list of variants that applies to all utility plugins
  • Make it possible to safelist which core plugins should be enabled

Fixed

  • Fix a bug where stroke and fill plugins didn't properly handle the next object syntax for color definitions
  • Fix a bug where you couldn't have comments near @apply directives

1.0.0-beta.4 - 2019-03-29

Added

  • Add the container key to the scaffolded config file when generated with --full

Changed

  • Bumps node dependency to 8.9.0 so we can keep our default config file clean, 6.9.0 is EOL next month anyways

Removed

  • Removes SFMono-Regular from the beginning of the default monospace font stack, it has no italic support and Menlo looks better anyways

Fixed

  • Fixes an issue where the user's config object was being mutated during processing (only affects @bradlc 😅)
  • Fixes an issue where you couldn't use a closure to define theme sections under extend

1.0.0-beta.3 - 2019-03-18

Added

  • Support lazy evaluation in theme.extend

Changed

  • Use lighter default border color
  • Revert #745 and use bolder for strong tags by default instead of fontWeight.bold

1.0.0-beta.2 - 2019-03-17

Changed

  • Closures in the theme section of the config file are now passed a theme function instead of an object

Fixed

  • Fix issue where @screen didn't work at all 🙃

1.0.0-beta.1 - 2019-03-17

Added

  • New config file structure
  • New expanded default color palette
  • New default maxWidth scale
  • Added utilities for list-style-type and list-style-position
  • Added break-all utility

Changed

  • object-position utilities are now customizable under theme.objectPosition
  • cursor utilities are now customizable under theme.cursors
  • flex-grow/shrink utilities are now customizable under theme.flexGrow/flexShrink
  • Default variant output position can be customized
  • Extended default line-height scale
  • Extended default letter-spacing scale

0.7.4 - 2019-01-23

Changed

  • Update our PostCSS related dependencies

Fixed

  • Fix bug where class names containing a .character had the responsive prefix added in the wrong place

0.7.3 - 2018-12-03

Changed

  • Update Normalize to v8.0.1

0.7.2 - 2018-11-05

Added

  • Add --no-autoprefixer option to CLI build command

0.7.1 - 2018-11-05

Changed

  • Update autoprefixer dependency

0.7.0 - 2018-10-31

Added

  • Registering new variants from plugins
  • Variant order can be customized per module
  • Added focus-within variant
  • Fancy CLI updates
  • Option to generate config without comments
  • Make configured prefix optional when using @apply
  • Improve Flexbox behavior in IE 10/11

Changed

  • Variant order in modules is now significant
  • Normalize.css updated to v8.0.0
  • Removed CSS fix for Chrome 62 button border radius change

0.6.6 - 2018-09-21

Changed

  • Promote shadowLookup from experiment to official feature

0.6.5 - 2018-08-18

Fixed

  • Fixes an issue where units were stripped from zero value properties

0.6.4 - 2018-07-16

Fixed

  • Fixes an issue where changes to your configuration file were ignored when using webpack --watch

0.6.3 - 2018-07-11

Fixed

  • Fixes an issue where @tailwind utilities generated no output

0.6.2 - 2018-03-11

Added

  • Added table layout utilities for styling tables
  • Configuration can now be passed as an object
  • Registering new variants from plugins (experimental)
  • Allow @apply-ing classes that aren't defined but would be generated (experimental)

Changed

  • Default config file changes

0.6.1 - 2018-06-22

Fixed

  • Fix incorrect box-shadow syntax for the .shadow-outline utility 🤦‍♂️

0.6.0 - 2018-06-21

Added

  • Added border collapse utilities for styling tables
  • Added more axis-specific overflow utilities
  • Added .outline-none utility for suppressing focus styles
  • Added .shadow-outline utility as an alternative to default browser focus styles
  • Extended default padding, margin, negative margin, width, and height scales
  • Enable focus and hover variants for more modules by default

Changed

  • Removed default outline: none !important styles from focusable but keyboard-inaccessible elements
  • Moved screen prefix for responsive group-hover variants
  • Default config file changes

0.5.3 - 2018-05-07

Changed

  • Improve sourcemaps for replaced styles like preflight

Fixed

  • Fix bug where informational messages were being logged to stdout during build, preventing the ability to use Tailwind's output in Unix pipelines

0.5.2 - 2018-03-29

Fixed

  • Fixes an issue with a dependency that had a security vulnerability

0.5.1 - 2018-03-13

Removed

  • Reverts a change that renamed the .roman class to .not-italic due to the fact that it breaks compatibility with cssnext: postcss/postcss-selector-not#10. We'll stick with .roman for now with a plan to switch to .not-italic in another breaking version should that issue get resolved in postcss-selector-not.

0.5.0 - 2018-03-13

Added

  • Plugin system
  • Added .sticky position utility
  • Added .cursor-wait and .cursor-move utilities
  • Added .bg-auto background size utility
  • Background sizes are now customizable
  • Support for active variants
  • Better postcss-import support
  • Configuration options for the .container component

Changed

  • The .container component is now a built-in plugin
  • State variant precedence changes
  • New config file keys
  • .overflow-x/y-scroll now set overflow: scroll instead of overflow: auto
  • .roman renamed to .not-italic

0.4.3 - 2018-03-13

Changed

  • Use global.Object to avoid issues with polyfills when importing the Tailwind config into other JS

0.4.2 - 2018-03-01

Added

  • Add support for using a function to define class prefixes in addition to a simple string

Changed

  • Improve the performance of @apply by using a lookup table instead of searching

Fixed

  • Fix an issue where borders couldn't be applied to img tags without specifying a border style

0.4.1 - 2018-01-22

Changed

  • Make default sans-serif font stack more future proof and safe to use with CSS font shorthand
  • Replace stylefmt with Perfectionist to avoid weird stylelint conflicts

0.4.0 - 2017-12-15

Added

  • @apply'd classes can now be made !important explicitly

Changed

  • @apply now strips !important from any mixed in classes
  • Default color palette tweaks

0.3.0 - 2017-12-01

Added

  • Enable/disable modules and control which variants are generated for each
  • Focus variants
  • Group hover variants
  • New @variants at-rule
  • Customize the separator character
  • Missing config keys now fallback to their default values
  • New utilities

Changed

  • Lists now have no margins by default
  • .pin no longer sets width and height to 100%
  • SVG fill no longer defaults to currentColor

0.2.2 - 2017-11-19

Fixed

  • Fix issue with dist files not being published due to bug in latest npm

0.2.1 - 2017-11-18

Fixed

  • Fix overly specific border-radius reset for Chrome 62 button styles

0.2.0 - 2017-11-17

Added

  • Add a custom prefix to all utilities
  • Optionally make all utilities !important
  • Round element corners independently
  • Cascading border colors and styles

Changed

  • auto is no longer a hard-coded margin value
  • The defaultConfig function is now a separate module
  • Rounded utilities now combine position and radius size
  • Border width utilities no longer affect border color/style
  • @apply is now very strict about what classes can be applied
  • Add options key to your config
  • Spacing, radius, and border width utility declaration order changes

0.1.6 - 2017-11-09

Fixed

  • Fix CDN files not being published to npm

0.1.5 - 2017-11-08

Changed

  • Apply the same default placeholder styling that's applied to inputs to textareas

Fixed

  • Fix CLI tool not loading config files properly

0.1.4 - 2017-11-06

Added

  • Autoprefix dist assets for quick hacking and prototyping
  • Add my-auto, mt-auto, and mb-auto margin utilities
  • Add sans-serif to end of default sans font stack

Changed

  • If using Webpack, it will now watch your config file changes
  • When running tailwind init [filename], automatically append .js to filename if not present
  • Support default fallback value in config(...) function, ie. config('colors.blue', #0000ff)
  • Don't output empty media queries if Tailwind processes a file that doesn't use Tailwind

Fixed

  • Move list utilities earlier in stylesheet to allow overriding with spacing utilities

0.1.3 - 2017-11-02

Added

  • Add new .scrolling-touch and .scrolling-auto utilities for controlling inertial scroll behavior on WebKit touch devices
  • Generate separate dist files for preflight, utilities, and tailwind for CDN usage

0.1.2 - 2017-11-01

Changed

  • Target Node 6.9.0 explicitly (instead of 8.6 implicitly) to support more users

Fixed

  • Fix issue with config option not being respected in tailwind build

0.1.1 - 2017-11-01

Fixed

  • Fix tailwind build CLI command not writing output files

0.1.0 - 2017-11-01

Added

  • Everything!