diff --git a/CHANGELOG.md b/CHANGELOG.md
index b8a11dcb3..4640ea227 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Do not generate `grid-column` utilities when configuring `grid-column-start` or `grid-column-end` ([#18907](https://github.com/tailwindlabs/tailwindcss/pull/18907))
- Do not generate `grid-row` utilities when configuring `grid-row-start` or `grid-row-end` ([#18907](https://github.com/tailwindlabs/tailwindcss/pull/18907))
- Prevent duplicate CSS when overwriting a static utility with a theme key ([#18056](https://github.com/tailwindlabs/tailwindcss/pull/18056))
+- Do not migrate `variant = 'outline'` during upgrades ([#18922](https://github.com/tailwindlabs/tailwindcss/pull/18922))
## [4.1.13] - 2025-09-03
diff --git a/packages/@tailwindcss-upgrade/src/codemods/template/is-safe-migration.test.ts b/packages/@tailwindcss-upgrade/src/codemods/template/is-safe-migration.test.ts
index f62854801..8bcaf52f4 100644
--- a/packages/@tailwindcss-upgrade/src/codemods/template/is-safe-migration.test.ts
+++ b/packages/@tailwindcss-upgrade/src/codemods/template/is-safe-migration.test.ts
@@ -91,6 +91,18 @@ describe('is-safe-migration', async () => {
[`function foo(blur, foo)`, 'blur'],
[`function foo(blur,foo)`, 'blur'],
+
+ // shadcn/ui variants
+ [``, 'outline'],
+ [``, 'outline'],
+ [``, 'outline'],
+ [``, 'outline'],
+ [`function Button({ variant = "outline" }) {}`, 'outline'],
+ [`function Button({ variant = 'outline' }) {}`, 'outline'],
+ [`function Button({ variant="outline" }) {}`, 'outline'],
+ [`function Button({ variant='outline' }) {}`, 'outline'],
+ [`Button({ variant: "outline" })`, 'outline'],
+ [`Button({ variant: 'outline' })`, 'outline'],
])('does not replace classes in invalid positions #%#', async (example, candidate) => {
expect(
await migrateCandidate(designSystem, {}, candidate, {
diff --git a/packages/@tailwindcss-upgrade/src/codemods/template/is-safe-migration.ts b/packages/@tailwindcss-upgrade/src/codemods/template/is-safe-migration.ts
index e4ec86b28..7851db650 100644
--- a/packages/@tailwindcss-upgrade/src/codemods/template/is-safe-migration.ts
+++ b/packages/@tailwindcss-upgrade/src/codemods/template/is-safe-migration.ts
@@ -18,6 +18,9 @@ const CONDITIONAL_TEMPLATE_SYNTAX = [
/x-if=['"]$/,
/x-show=['"]$/,
/wire:[^\s]*?$/,
+
+ // shadcn/ui variants
+ /variant\s*[:=]\s*\{?['"`]$/,
]
const NEXT_PLACEHOLDER_PROP = /placeholder=\{?['"`]$/
const VUE_3_EMIT = /\b\$?emit\(['"`]$/