From 14083ad9aa290bf93a65458eea609ef10a3cdb86 Mon Sep 17 00:00:00 2001
From: Robin Malfait
Date: Fri, 20 Feb 2026 12:03:25 +0100
Subject: [PATCH 1/5] use simpler tailwindcss import
---
packages/@tailwindcss-webpack/README.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/packages/@tailwindcss-webpack/README.md b/packages/@tailwindcss-webpack/README.md
index 55e60562203c..183e42ee39c8 100644
--- a/packages/@tailwindcss-webpack/README.md
+++ b/packages/@tailwindcss-webpack/README.md
@@ -31,8 +31,7 @@ Then create a CSS file that imports Tailwind:
```css
/* src/index.css */
-@import 'tailwindcss/theme';
-@import 'tailwindcss/utilities';
+@import 'tailwindcss';
```
## Options
From 1a973557edaed212568cba2b8fc3c5d8f156c5ba Mon Sep 17 00:00:00 2001
From: Robin Malfait
Date: Fri, 20 Feb 2026 12:04:41 +0100
Subject: [PATCH 2/5] update webpack readme to be a bit more consistent with
other readmes
---
packages/@tailwindcss-webpack/README.md | 49 ++++++++++++++++++++++---
1 file changed, 44 insertions(+), 5 deletions(-)
diff --git a/packages/@tailwindcss-webpack/README.md b/packages/@tailwindcss-webpack/README.md
index 183e42ee39c8..56484ed7f0f6 100644
--- a/packages/@tailwindcss-webpack/README.md
+++ b/packages/@tailwindcss-webpack/README.md
@@ -1,4 +1,43 @@
-# @tailwindcss/webpack
+
+
+
+
+
+
+
+
+
+
+
+ A utility-first CSS framework for rapidly building custom user interfaces.
+
+
+
+
+
+
+
+
+
+---
+
+## Documentation
+
+For full documentation, visit [tailwindcss.com](https://tailwindcss.com).
+
+## Community
+
+For help, discussion about best practices, or feature ideas:
+
+[Discuss Tailwind CSS on GitHub](https://github.com/tailwindlabs/tailwindcss/discussions)
+
+## Contributing
+
+If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/tailwindlabs/tailwindcss/blob/main/.github/CONTRIBUTING.md) **before submitting a pull request**.
+
+---
+
+## @tailwindcss/webpack
A webpack loader for Tailwind CSS v4.
@@ -8,7 +47,7 @@ A webpack loader for Tailwind CSS v4.
npm install @tailwindcss/webpack
```
-## Usage
+### Usage
```javascript
// webpack.config.js
@@ -34,9 +73,9 @@ Then create a CSS file that imports Tailwind:
@import 'tailwindcss';
```
-## Options
+### Options
-### `base`
+#### `base`
The base directory to scan for class candidates. Defaults to the current working directory.
@@ -49,7 +88,7 @@ The base directory to scan for class candidates. Defaults to the current working
}
```
-### `optimize`
+#### `optimize`
Whether to optimize and minify the output CSS. Defaults to `true` in production mode.
From 58d1fe3948fdf963d628071ff13d15147e9f712c Mon Sep 17 00:00:00 2001
From: Robin Malfait
Date: Sun, 22 Feb 2026 13:02:05 +0100
Subject: [PATCH 3/5] Fix missing extracted classes in mdx files (#19711)
---
CHANGELOG.md | 1 +
.../src/extractor/pre_processors/markdown.rs | 22 ++++++++++++++++++-
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3bde2966b4c0..dd549036ed0f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Allow trailing dash in functional utility names for backwards compatibility ([#19696](https://github.com/tailwindlabs/tailwindcss/pull/19696))
+- Fix missing extracted classes in mdx files containing `.` ([#19711](https://github.com/tailwindlabs/tailwindcss/pull/19711))
## [4.2.0] - 2026-02-18
diff --git a/crates/oxide/src/extractor/pre_processors/markdown.rs b/crates/oxide/src/extractor/pre_processors/markdown.rs
index d2acc6a58738..488614ee57bd 100644
--- a/crates/oxide/src/extractor/pre_processors/markdown.rs
+++ b/crates/oxide/src/extractor/pre_processors/markdown.rs
@@ -9,6 +9,7 @@ impl PreProcessor for Markdown {
let len = content.len();
let mut result = content.to_vec();
let mut cursor = cursor::Cursor::new(content);
+ let mut bracket_stack = vec![];
let mut in_directive = false;
@@ -18,11 +19,17 @@ impl PreProcessor for Markdown {
result[cursor.pos] = b' ';
in_directive = true;
}
+ (true, b'(' | b'[' | b'{' | b'<') => {
+ bracket_stack.push(cursor.curr());
+ }
+ (true, b')' | b']' | b'}' | b'>') if !bracket_stack.is_empty() => {
+ bracket_stack.pop();
+ }
(true, b'}') => {
result[cursor.pos] = b' ';
in_directive = false;
}
- (true, b'.') => {
+ (true, b'.') if bracket_stack.is_empty() => {
result[cursor.pos] = b' ';
}
_ => {}
@@ -60,4 +67,17 @@ mod tests {
Markdown::test(input, expected);
}
}
+
+ #[test]
+ fn test_nested_classes_keep_the_dots() {
+ for (input, expected) in [
+ (
+ r#"{}"#,
+ r#" "#,
+ ),
+ (r#"{content-['example.js']}"#, r#" content-['example.js'] "#),
+ ] {
+ Markdown::test(input, expected);
+ }
+ }
}
From 1dce64ee7ec2e414c845b4e268ac3b9b89aaf0c8 Mon Sep 17 00:00:00 2001
From: Robin Malfait
Date: Mon, 23 Feb 2026 11:45:12 +0100
Subject: [PATCH 4/5] 4.2.1 (#19714)
---
CHANGELOG.md | 5 ++++-
crates/node/npm/android-arm-eabi/package.json | 2 +-
crates/node/npm/android-arm64/package.json | 2 +-
crates/node/npm/darwin-arm64/package.json | 2 +-
crates/node/npm/darwin-x64/package.json | 2 +-
crates/node/npm/freebsd-x64/package.json | 2 +-
crates/node/npm/linux-arm-gnueabihf/package.json | 2 +-
crates/node/npm/linux-arm64-gnu/package.json | 2 +-
crates/node/npm/linux-arm64-musl/package.json | 2 +-
crates/node/npm/linux-x64-gnu/package.json | 2 +-
crates/node/npm/linux-x64-musl/package.json | 2 +-
crates/node/npm/wasm32-wasi/package.json | 2 +-
crates/node/npm/win32-arm64-msvc/package.json | 2 +-
crates/node/npm/win32-x64-msvc/package.json | 2 +-
crates/node/package.json | 2 +-
packages/@tailwindcss-browser/package.json | 2 +-
packages/@tailwindcss-cli/package.json | 2 +-
packages/@tailwindcss-node/package.json | 2 +-
packages/@tailwindcss-postcss/package.json | 2 +-
packages/@tailwindcss-standalone/package.json | 2 +-
packages/@tailwindcss-upgrade/package.json | 2 +-
packages/@tailwindcss-vite/package.json | 2 +-
packages/@tailwindcss-webpack/package.json | 2 +-
packages/tailwindcss/package.json | 2 +-
24 files changed, 27 insertions(+), 24 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index dd549036ed0f..fa0edaacd029 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- _Experimental_: Add `@container-size` utility ([#18901](https://github.com/tailwindlabs/tailwindcss/pull/18901))
+## [4.2.1] - 2026-02-23
+
### Fixed
- Allow trailing dash in functional utility names for backwards compatibility ([#19696](https://github.com/tailwindlabs/tailwindcss/pull/19696))
@@ -3946,7 +3948,8 @@ No release notes
- Everything!
-[unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v4.2.0...HEAD
+[unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v4.2.1...HEAD
+[4.2.1]: https://github.com/tailwindlabs/tailwindcss/compare/v4.2.0...v4.2.1
[4.2.0]: https://github.com/tailwindlabs/tailwindcss/compare/v4.1.18...v4.2.0
[4.1.18]: https://github.com/tailwindlabs/tailwindcss/compare/v4.1.17...v4.1.18
[3.4.19]: https://github.com/tailwindlabs/tailwindcss/compare/v3.4.18...v3.4.19
diff --git a/crates/node/npm/android-arm-eabi/package.json b/crates/node/npm/android-arm-eabi/package.json
index cba6fedce0b2..34a1c58a54e0 100644
--- a/crates/node/npm/android-arm-eabi/package.json
+++ b/crates/node/npm/android-arm-eabi/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-android-arm-eabi",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/android-arm64/package.json b/crates/node/npm/android-arm64/package.json
index 0950b7a03e95..909ddf9145f4 100644
--- a/crates/node/npm/android-arm64/package.json
+++ b/crates/node/npm/android-arm64/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-android-arm64",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/darwin-arm64/package.json b/crates/node/npm/darwin-arm64/package.json
index 423333d61dcf..bfeb71630488 100644
--- a/crates/node/npm/darwin-arm64/package.json
+++ b/crates/node/npm/darwin-arm64/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-darwin-arm64",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/darwin-x64/package.json b/crates/node/npm/darwin-x64/package.json
index 81007674ee5c..bf4bfe6524e2 100644
--- a/crates/node/npm/darwin-x64/package.json
+++ b/crates/node/npm/darwin-x64/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-darwin-x64",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/freebsd-x64/package.json b/crates/node/npm/freebsd-x64/package.json
index 8c25927edc39..0619de4ad584 100644
--- a/crates/node/npm/freebsd-x64/package.json
+++ b/crates/node/npm/freebsd-x64/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-freebsd-x64",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/linux-arm-gnueabihf/package.json b/crates/node/npm/linux-arm-gnueabihf/package.json
index b2a4c0281127..cd818b2aa2da 100644
--- a/crates/node/npm/linux-arm-gnueabihf/package.json
+++ b/crates/node/npm/linux-arm-gnueabihf/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-linux-arm-gnueabihf",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/linux-arm64-gnu/package.json b/crates/node/npm/linux-arm64-gnu/package.json
index e1855f2894c3..9dd325f38624 100644
--- a/crates/node/npm/linux-arm64-gnu/package.json
+++ b/crates/node/npm/linux-arm64-gnu/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-linux-arm64-gnu",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/linux-arm64-musl/package.json b/crates/node/npm/linux-arm64-musl/package.json
index c6b96ab8ab14..991a9c2104b3 100644
--- a/crates/node/npm/linux-arm64-musl/package.json
+++ b/crates/node/npm/linux-arm64-musl/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-linux-arm64-musl",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/linux-x64-gnu/package.json b/crates/node/npm/linux-x64-gnu/package.json
index 2d4fa6fe3c84..847484f1dcb5 100644
--- a/crates/node/npm/linux-x64-gnu/package.json
+++ b/crates/node/npm/linux-x64-gnu/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-linux-x64-gnu",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/linux-x64-musl/package.json b/crates/node/npm/linux-x64-musl/package.json
index 5855b5d6a331..66acddc12fe0 100644
--- a/crates/node/npm/linux-x64-musl/package.json
+++ b/crates/node/npm/linux-x64-musl/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-linux-x64-musl",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/wasm32-wasi/package.json b/crates/node/npm/wasm32-wasi/package.json
index 0c1defca3a43..25807493d8d4 100644
--- a/crates/node/npm/wasm32-wasi/package.json
+++ b/crates/node/npm/wasm32-wasi/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-wasm32-wasi",
- "version": "4.2.0",
+ "version": "4.2.1",
"cpu": [
"wasm32"
],
diff --git a/crates/node/npm/win32-arm64-msvc/package.json b/crates/node/npm/win32-arm64-msvc/package.json
index 633a4d12eb9c..2dca490b5005 100644
--- a/crates/node/npm/win32-arm64-msvc/package.json
+++ b/crates/node/npm/win32-arm64-msvc/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-win32-arm64-msvc",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/npm/win32-x64-msvc/package.json b/crates/node/npm/win32-x64-msvc/package.json
index 99dca35d18c4..ddcf1802662e 100644
--- a/crates/node/npm/win32-x64-msvc/package.json
+++ b/crates/node/npm/win32-x64-msvc/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide-win32-x64-msvc",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/crates/node/package.json b/crates/node/package.json
index 6da669ced184..f16920029f84 100644
--- a/crates/node/package.json
+++ b/crates/node/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/oxide",
- "version": "4.2.0",
+ "version": "4.2.1",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
diff --git a/packages/@tailwindcss-browser/package.json b/packages/@tailwindcss-browser/package.json
index 8075cfb3fc0c..12442e87e66b 100644
--- a/packages/@tailwindcss-browser/package.json
+++ b/packages/@tailwindcss-browser/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/browser",
- "version": "4.2.0",
+ "version": "4.2.1",
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
"license": "MIT",
"main": "./dist/index.global.js",
diff --git a/packages/@tailwindcss-cli/package.json b/packages/@tailwindcss-cli/package.json
index af488a701caa..2a91542f1059 100644
--- a/packages/@tailwindcss-cli/package.json
+++ b/packages/@tailwindcss-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/cli",
- "version": "4.2.0",
+ "version": "4.2.1",
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
"license": "MIT",
"repository": {
diff --git a/packages/@tailwindcss-node/package.json b/packages/@tailwindcss-node/package.json
index 064b53f802a7..c4d7d48739ad 100644
--- a/packages/@tailwindcss-node/package.json
+++ b/packages/@tailwindcss-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/node",
- "version": "4.2.0",
+ "version": "4.2.1",
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
"license": "MIT",
"repository": {
diff --git a/packages/@tailwindcss-postcss/package.json b/packages/@tailwindcss-postcss/package.json
index 5180133e8f27..6052a08b070b 100644
--- a/packages/@tailwindcss-postcss/package.json
+++ b/packages/@tailwindcss-postcss/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/postcss",
- "version": "4.2.0",
+ "version": "4.2.1",
"description": "PostCSS plugin for Tailwind CSS, a utility-first CSS framework for rapidly building custom user interfaces",
"license": "MIT",
"repository": {
diff --git a/packages/@tailwindcss-standalone/package.json b/packages/@tailwindcss-standalone/package.json
index 50039f29a459..b25d5bb9e04b 100644
--- a/packages/@tailwindcss-standalone/package.json
+++ b/packages/@tailwindcss-standalone/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/standalone",
- "version": "4.2.0",
+ "version": "4.2.1",
"private": true,
"description": "Standalone CLI for Tailwind CSS",
"license": "MIT",
diff --git a/packages/@tailwindcss-upgrade/package.json b/packages/@tailwindcss-upgrade/package.json
index b8191e23c58e..cf9de79d6a11 100644
--- a/packages/@tailwindcss-upgrade/package.json
+++ b/packages/@tailwindcss-upgrade/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/upgrade",
- "version": "4.2.0",
+ "version": "4.2.1",
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
"license": "MIT",
"repository": {
diff --git a/packages/@tailwindcss-vite/package.json b/packages/@tailwindcss-vite/package.json
index db0297fc215a..24fac1bd46c6 100644
--- a/packages/@tailwindcss-vite/package.json
+++ b/packages/@tailwindcss-vite/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/vite",
- "version": "4.2.0",
+ "version": "4.2.1",
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
"license": "MIT",
"repository": {
diff --git a/packages/@tailwindcss-webpack/package.json b/packages/@tailwindcss-webpack/package.json
index 0fcf0d3f7b0c..ed9206a9e7c0 100644
--- a/packages/@tailwindcss-webpack/package.json
+++ b/packages/@tailwindcss-webpack/package.json
@@ -1,6 +1,6 @@
{
"name": "@tailwindcss/webpack",
- "version": "4.2.0",
+ "version": "4.2.1",
"description": "A webpack loader for Tailwind CSS v4.",
"license": "MIT",
"repository": {
diff --git a/packages/tailwindcss/package.json b/packages/tailwindcss/package.json
index abe6da365387..f98c80152d65 100644
--- a/packages/tailwindcss/package.json
+++ b/packages/tailwindcss/package.json
@@ -1,6 +1,6 @@
{
"name": "tailwindcss",
- "version": "4.2.0",
+ "version": "4.2.1",
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
"license": "MIT",
"repository": {
From 097f982d7a112dd9efa9bfc6785d222afd9f4bb2 Mon Sep 17 00:00:00 2001
From: Robin Malfait
Date: Mon, 23 Feb 2026 13:46:49 +0100
Subject: [PATCH 5/5] update changelog
---
CHANGELOG.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fa0edaacd029..a2359f1812b0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,7 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Allow trailing dash in functional utility names for backwards compatibility ([#19696](https://github.com/tailwindlabs/tailwindcss/pull/19696))
-- Fix missing extracted classes in mdx files containing `.` ([#19711](https://github.com/tailwindlabs/tailwindcss/pull/19711))
+- Properly detect classes containing `.` characters within curly braces in MDX files ([#19711](https://github.com/tailwindlabs/tailwindcss/pull/19711))
## [4.2.0] - 2026-02-18
@@ -32,7 +32,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add `inline-*`, `min-inline-*`, `max-inline-*` utilities for `inline-size`, `min-inline-size`, and `max-inline-size` ([#19612](https://github.com/tailwindlabs/tailwindcss/pull/19612))
- Add `block-*`, `min-block-*`, `max-block-*` utilities for `block-size`, `min-block-size`, and `max-block-size` ([#19612](https://github.com/tailwindlabs/tailwindcss/pull/19612))
- Add `inset-s-*`, `inset-e-*`, `inset-bs-*`, `inset-be-*` utilities for `inset-inline-start`, `inset-inline-end`, `inset-block-start`, and `inset-block-end` ([#19613](https://github.com/tailwindlabs/tailwindcss/pull/19613))
-- Add `font-features-*` utility for `font-feature-settings` ([#19623](https://github.com/tailwindlabs/tailwindcss/pull/19615))
+- Add `font-features-*` utility for `font-feature-settings` ([#19623](https://github.com/tailwindlabs/tailwindcss/pull/19623))
### Fixed