Fixed
- Support `--watch --poll[=ms]` in `@tailwindcss/cli` when filesystem events are unreliable or unavailable
- Match arbitrary hex colors against theme colors case-insensitively during canonicalization (e.g. `bg-[#fff]` and `bg-[#FFF]` → `bg-white`)
- Prevent Preflight from overriding Firefox's native `iframe:focus-visible` outline styles
- Ensure `theme('colors.foo')` in JS plugins resolves correctly when both `--color-foo` and `--color-foo-bar` exist
- 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`
- Parse selectors like `[data-foo]div` as two selectors instead of one
- Ensure `@tailwindcss/postcss` rebuilds when a preprocessor like Sass changes the input CSS without changing the input file on disk
- Ensure CSS nesting is handled even when Lightning CSS isn't run, such as in `@tailwindcss/browser` and Tailwind Play
- Prevent achromatic theme colors from shifting hue when mixed in polar color spaces like `oklch`
- Ensure `--spacing(0)` is optimized to `0px` instead of `0` so it remains a `<length>` when used in `calc(…)`
- 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
- Use explicit platform fonts instead of `system-ui` and `ui-sans-serif` so CJK text respects the page's `lang` attribute on Windows
- Prevent `@tailwindcss/upgrade` from rewriting ignored files when run from a subdirectory
- Ensure earlier `@source` rules pointing to nested files are scanned when later `@source` rules point to files in parent folders
- Prevent `@tailwindcss/vite` from triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet
Fixed
- Support
--watch --poll[=ms]in@tailwindcss/cliwhen filesystem events are unreliable or unavailable (#20297) - Canonicalization: match arbitrary hex colors against theme colors case-insensitively (e.g.
bg-[#fff]andbg-[#FFF]→bg-white) (#20298) - Prevent Preflight from overriding Firefox's native
iframe:focus-visibleoutline styles (#20292) - Ensure
theme('colors.foo')in JS plugins resolves correctly when both--color-fooand--color-foo-barexist (#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, andinset-shadow-sm/12.5(#20302) - Parse selectors like
[data-foo]divas two selectors instead of one (#20303) - Ensure
@tailwindcss/postcssrebuilds 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/browserand Tailwind Play (#20124) - Prevent achromatic theme colors from shifting hue when mixed in polar color spaces like
oklch(#20314) - Ensure
--spacing(0)is optimized to0pxinstead of0so it remains a<length>when used incalc(…)(#20319) - Load
@parcel/watcheronly when needed in@tailwindcss/cli --watchmode, so one-off builds and--watch --pollwork when@parcel/watchercan't be loaded (#20325) - Use explicit platform fonts instead of
system-uiandui-sans-serifso CJK text respects the page'slangattribute on Windows (#20318) - Prevent
@tailwindcss/upgradefrom rewriting ignored files when run from a subdirectory (#20329) - Ensure earlier
@sourcerules pointing to nested files are scanned when later@sourcerules point to files in parent folders (#20335) - Prevent
@tailwindcss/vitefrom triggering full page reloads when scanned files are processed by Vite but haven't been loaded as modules yet (#20336)