Skip to content [4.3.3] - 2026-07-16
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-white) (#20298)
- Prevent Preflight from overriding Firefox's native
iframe:focus-visible outline styles (#20292)
- Ensure
theme('colors.foo') in JS plugins resolves correctly when both --color-foo and --color-foo-bar exist (#20299)
- Ensure fractional opacity modifiers work with named shadow sizes like
shadow-sm/12.5, text-shadow-sm/12.5, drop-shadow-sm/12.5, and inset-shadow-sm/12.5 (#20302)
- Parse selectors like
[data-foo]div as two selectors instead of one (#20303)
- Ensure
@tailwindcss/postcss rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk (#20310)
- Ensure CSS nesting is handled even when Lightning CSS isn't run, such as in
@tailwindcss/browser and Tailwind Play (#20124)
- Prevent achromatic theme colors from shifting hue when mixed in polar color spaces like
oklch (#20314)
- Ensure
--spacing(0) is optimized to 0px instead of 0 so it remains a <length> when used in calc(…) (#20319)
- Load
@parcel/watcher only when needed in @tailwindcss/cli --watch mode, so one-off builds and --watch --poll work when @parcel/watcher can't be loaded (#20325)
- Use explicit platform fonts instead of
system-ui and ui-sans-serif so CJK text respects the page's lang attribute on Windows (#20318)
- Prevent
@tailwindcss/upgrade from rewriting ignored files when run from a subdirectory (#20329)
- Ensure earlier
@source rules pointing to nested files are scanned when later @source rules point to files in parent folders (#20335)
- Prevent
@tailwindcss/vite from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (#20336)