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
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.
- 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
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
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
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
Fixed Ensure imports in @import and @plugin still resolve correctly when using Vite aliases in @tailwindcss/vite (#19947)
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
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
Fixed Allow trailing dash in functional utility names for backwards compatibility (#19696) Properly detect classes containing . characters within curly braces in MDX files (#19711)
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
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
Fixed Substitute @variant inside legacy JS APIs (#19263) Prevent occasional crash on Windows when loaded into a worker thread (#19242)
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
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
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
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
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
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/
Fixed Fix incorrectly generated CSS when using percentages in arbitrary values with calc (e.g. w-[calc(100%-var(--offset))]) (#18289)
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
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
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 @
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
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
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(…
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 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 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)
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
Fixed Fix an issue causing the CLI to hang when processing Ruby files (#17383)
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)
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
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 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
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 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
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
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
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
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 Revert change to no longer include theme variables that aren't used in compiled CSS (#16403)
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)
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 Fix incorrect removal of @import url(); (#16144)
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
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
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
3.x14 releases
Fixed Don’t break sibling-*() functions when used inside calc(…) (#19335)
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
Fixed Work around Node v22.12+ issue (#15421)
Fixed Ensure the TypeScript types for PluginsConfig allow undefined values (#14668) Changed Bumped lilconfig to v3.x (#15289)
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
Fixed Don't set display: none on elements that use hidden="until-found" (#14625)
Fixed Improve source glob verification performance (#14481)
Fixed Ensure using @apply with utilities that use @defaults works with rules defined in the base layer when using optimizeUniversalDefaults (#14427)
Fixed Allow anchor-size(…) in arbitrary values (#14393)
Fixed Bump versions of plugins in the Standalone CLI (#14185)
Fixed No longer warns when broad glob patterns are detecting vendor folders
Fixed Fix minification when using nested CSS (#14105) Warn when broad glob patterns are used in the content configuration (#14140)
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 Fix detection of some utilities in Slim/Pug templates (#14006) Changed Loosen :is() wrapping rules when using an important selector (#13900)