Catalog / Frontend

Tailwind CSS changelog

Tailwind CSS is at 4.3.3, published 16 Jul 2026, 3 months ago.

Utility class framework that generates CSS from the class names found in your markup.

SubscribeTailwind CSS as markdown, for pasting into a model
Collected
60 releases back to 16 Jul 2024
Source
tailwindlabs/tailwindcss
Project
tailwindcss.com
Feed
RSS

Every release of a major line in one list, which is the one view the publisher never writes: 3 to 4. Only the lines whose first release the archive holds are listed, because a partial major would read as the whole of one.

Read on 28 of the 30 days on record, last today. Collection status

Version history

4.x46 releases
4.3.3

Fixed Support --watch --poll[=ms] in @tailwindcss/cli when filesystem events are unreliable or unavailable (#20297) Canonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g. bg-[#fff] and bg-[#FFF] → bg-whit

fixed
4.3.2

Fixed Support bare spacing values for auto-rows-* and auto-cols-* utilities (e.g. auto-rows-12 and auto-cols-16) (#20229) Prevent @tailwindcss/cli in --watch mode from crashing on Windows when @source points to a directory that doesn't exis

fixed
4.3.1

Added Add --silent option to suppress output in @tailwindcss/cli (#20100) Fixed Remove deprecation warnings by using Module#registerHooks instead of Module#register on Node 26+ (#20028) Canonicalization: don't crash when plugin utilities th

addedfixedchanged
4.3.0

Added Add @container-size utility (#18901) Add scrollbar-{auto,thin,none} utilities for scrollbar-width, and scrollbar-thumb-* / scrollbar-track-* color utilities for scrollbar-color (#19981, #20019) Add scrollbar-gutter-* utilities (#20018

addedfixed
4.2.4

Fixed Ensure imports in @import and @plugin still resolve correctly when using Vite aliases in @tailwindcss/vite (#19947)

fixed
4.2.3

Fixed Canonicalization: improve canonicalizations for tracking-* utilities by preferring non-negative utilities (e.g. -tracking-tighter → tracking-wider) (#19827) Fix crash due to invalid characters in candidate (exceeding valid unicode cod

addedfixedchanged
4.2.2

Added Support Vite 8 in @tailwindcss/vite (#19790) Fixed Don't crash when candidates contain prototype properties like row-constructor (#19725) Canonicalize calc(var(--spacing)*…) expressions into --spacing(…) (#19769) Fix crash in canonica

fixedchanged
4.2.1

Fixed Allow trailing dash in functional utility names for backwards compatibility (#19696) Properly detect classes containing . characters within curly braces in MDX files (#19711)

fixed
4.2.0

Added Add mauve, olive, mist, and taupe color palettes to the default theme (#19627) Add @tailwindcss/webpack package to run Tailwind CSS as a webpack plugin (#19610) Add pbs-* and pbe-* utilities for padding-block-start and padding-block-e

addedfixedchanged
4.1.18

Fixed Ensure validation of source(…) happens relative to the file it is in (#19274) Include filename and line numbers in CSS parse errors (#19282) Skip comments in Ruby files when checking for class names (#19243) Skip over arbitrary proper

fixedchanged
4.1.17

Fixed Substitute @variant inside legacy JS APIs (#19263) Prevent occasional crash on Windows when loaded into a worker thread (#19242)

fixed
4.1.16

Fixed Discard candidates with an empty data type (#19172) Fix canonicalization of arbitrary variants with attribute selectors (#19176) Fix invalid colors due to nested & (#19184) Improve canonicalization for & > :pseudo and & :pseudo arbitr

fixedchanged
4.1.15

Fixed Fix Safari devtools rendering issue due to color-mix fallback (#19069) Suppress Lightning CSS warnings about :deep, :slotted, and :global (#19094) Fix resolving theme keys when starting with the name of another theme key in JS configs

fixedchangeddeprecated
4.1.14

Fixed Handle ' syntax in ClojureScript when extracting classes (#18888) Handle @variant inside @custom-variant (#18885) Merge suggestions when using @utility (#18900) Ensure that file system watchers created when using the CLI are always cl

fixed
4.1.13

Changed Drop warning from browser build (#18731) Drop exact duplicate declarations when emitting CSS (#18809) Fixed Don't transition visibility when using transition (#18795) Discard matched variants with unknown named values (#18799) Disca

fixedchangeddeprecated
4.1.12

Fixed Don't consider the global important state in @apply (#18404) Add missing suggestions for flex-<number> utilities (#18642) Fix trailing ) from interfering with extraction in Clojure keywords (#18345) Detect classes inside Elixir charli

addedfixedchanged
4.1.11

Fixed Add heuristic to skip candidate migrations inside emit(…) (#18330) Extract candidates with variants in Clojure/ClojureScript keywords (#18338) Document --watch=always in the CLI's usage (#18337) Add support for Vite 7 to @tailwindcss/

addedfixed
4.1.10

Fixed Fix incorrectly generated CSS when using percentages in arbitrary values with calc (e.g. w-[calc(100%-var(--offset))]) (#18289)

fixed
4.1.9

Fixed Correctly parse custom properties with strings containing semicolons (#18251) Upgrade: Migrate arbitrary modifiers without percentage signs to bare values (e.g. /[0.16] → /16) (#18184) Upgrade: Migrate CSS variable shorthands where fa

addedfixed
4.1.8

Added Improve error messages when @apply fails (#18059) Fixed Upgrade: Do not migrate declarations that look like candidates in <style> blocks (#18057, 18068) Upgrade: Don't error when looking for tailwindcss in pnpm monorepos (#18065) Upgr

fixedchangeddeprecated
4.1.7

Added Upgrade: Migrate bare values to named values (#18000) Upgrade: Added cache to improve template migration performance (#18025) Fixed Allow _ before numbers during candidate extraction (#17961) Prevent duplicate suggestions when using @

fixedchanged
4.1.6

Added Upgrade: Automatically convert arbitrary values to named values when possible (e.g. h-[1lh] to h-lh) (#17831, #17854) Upgrade: Update dependencies in parallel for improved performance (#17898) Add detailed logging about @source direct

addedfixedchanged
4.1.5

Added Support using @tailwindcss/upgrade to upgrade between versions of v4.* (#17717) Add h-lh / min-h-lh / max-h-lh utilities (#17790) Transition display, visibility, content-visibility, overlay, and pointer-events when using transition to

addedfixed
4.1.4

Added Add experimental @tailwindcss/oxide-wasm32-wasi target for running Tailwind in browser environments like StackBlitz (#17558) Fixed Ensure color-mix(…) polyfills do not cause used CSS variables to be removed (#17555) Ensure color-mix(…

addedfixedremoved
4.1.3

Fixed Show warning when using unsupported bare value data type in --value(…) (#17464) PostCSS: Ensure changes to the input CSS file don't generate stale output when using Turbopack (#17554) Ensure classes are detected in Ruby's %w syntax in

fixed
4.1.2

Fixed Don't rely on the presence of @layer base to polyfill @property (#17506) Support setting multiple inset shadows as arbitrary values (#17523) Fix drop-shadow-* utilities that are defined with multiple shadows (#17515) PostCSS: Fix race

fixed
4.1.1

Fixed Disable padding in @source inline(…) brace expansion (#17491) Inject polyfills after @import and body-less @layer (#17493) Ensure @tailwindcss/cli does not contain an import for jiti (#17502)

fixed
4.1.0

Added Add details-content variant (#15319) Add inverted-colors variant (#11693) Add noscript variant (#11929, #17431) Add items-baseline-last and self-baseline-last utilities (#13888, #17476) Add pointer-none, pointer-coarse, and pointer-fi

addedfixedchanged
4.0.17

Fixed Fix an issue causing the CLI to hang when processing Ruby files (#17383)

fixed
4.0.16

Added Add support for literal values in --value('…') and --modifier('…') (#17304) Fixed Fix class extraction followed by ( in Pug (#17320) Ensure @keyframes for theme animations are emitted if they are referenced following a comma (#17352)

addedfixedchanged
4.0.15

Fixed Fix incorrect angle in -bg-conic-* utilities (#17174) Fix border-[12px_4px] being interpreted as a border-color instead of a border-width (#17248) Work around a crash in Safari 16.4 and 16.5 when using the default Preflight styles (#1

addedfixedchanged
4.0.14

Fixed Do not extract candidates with JS string interpolation ${ (#17142) Fix extraction of variants containing . character (#17153) Fix extracting candidates in Clojure/ClojureScript (#17087)

fixed
4.0.13

Fixed Fix Haml pre-processing (#17051) Ensure .node and .wasm files are not scanned for utilities (#17123) Improve performance when scanning JSON files (#17125) Fix extracting candidates containing dots in Haml, Pug, and Slim pre processors

fixedchanged
4.0.12

Fixed Vite: Fix url(…) rebasing in transitively imported CSS files (#16965) PostCSS: Rebase url(…)s in imported CSS files (#16965) Ensure utilities are sorted based on their actual property order (#16995) Ensure strings in Pug and Slim temp

fixed
4.0.11

Fixed Ensure classes containing -- are extracted correctly (#16972) Ensure classes containing numbers followed by dash or underscore are extracted correctly (#16980) Ensure arbitrary container queries are extracted correctly (#16984) Ensure

fixed
4.0.10

Added Add col-<number> and row-<number> utilities for grid-column and grid-row (#15183) Fixed Ensure not-* does not remove :is(…) from variants (#16825) Ensure @keyframes are correctly emitted when using a prefix (#16850) Don't swallow @uti

addedfixedchanged
4.0.9

Fixed Make JS APIs available to plugins and configs in the Standalone CLI (#15934) Vite: Don't crash when importing a virtual module from JavaScript that ends in .css (#16780) Fix an issue where @reference "…" would sometimes omit keyframe

fixedchanged
4.0.8

Added Allow @import with theme(…) options for stylesheets that contain more than just @theme rules (#16514) Fixed Don't add !important to CSS variable declarations when using the important modifier (#16668) Vite: Ignore files and directorie

addedfixedchanged
4.0.7

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

fixed
4.0.6

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

fixed
4.0.5

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)

addedfixedchanged
4.0.4

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

fixed
4.0.3

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

fixed
4.0.2

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 gradi

fixed
4.0.1

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 non

fixed
4.0.0

Holy shit it's actually done — we just tagged Tailwind CSS v4.0. Tailwind CSS v4.0 is an all-new version of the framework optimized for performance and flexibility, with a reimagined configuration and customization experience, and taking fu

added
3.x14 releases
3.4.19

Fixed Don’t break sibling-*() functions when used inside calc(…) (#19335)

fixed
3.4.18

Fixed Improve support for raw supports-[…] queries in arbitrary values (#13605) Fix require.cache error when loaded through a TypeScript file in Node 22.18+ (#18665) Support import.meta.resolve(…) in configs for new enough Node.js versions

addedfixedchanged
3.4.17

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

fixed
3.4.16

Fixed Ensure the TypeScript types for PluginsConfig allow undefined values (#14668) Changed Bumped lilconfig to v3.x (#15289)

fixedchanged
3.4.15

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 C

security
3.4.14

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

fixed
3.4.13

Fixed Improve source glob verification performance (#14481)

fixedchanged
3.4.12

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

fixed
3.4.11

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

fixed
3.4.10

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

fixed
3.4.9

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

fixed
3.4.8

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

fixed
3.4.7

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)

fixed
3.4.6

Fixed Fix detection of some utilities in Slim/Pug templates (#14006) Changed Loosen :is() wrapping rules when using an important selector (#13900)

fixedchanged