diff --git a/packages/tailwindcss/src/__snapshots__/intellisense.test.ts.snap b/packages/tailwindcss/src/__snapshots__/intellisense.test.ts.snap index 3f95c9fafcb1..6d496e534c2d 100644 --- a/packages/tailwindcss/src/__snapshots__/intellisense.test.ts.snap +++ b/packages/tailwindcss/src/__snapshots__/intellisense.test.ts.snap @@ -7592,6 +7592,8 @@ exports[`getVariants 1`] = ` "dark", "print", "forced-colors", + "transparency-safe", + "transparency-reduce", ], }, { @@ -8282,5 +8284,19 @@ exports[`getVariants 1`] = ` "selectors": [Function], "values": [], }, + { + "hasDash": true, + "isArbitrary": false, + "name": "transparency-safe", + "selectors": [Function], + "values": [], + }, + { + "hasDash": true, + "isArbitrary": false, + "name": "transparency-reduce", + "selectors": [Function], + "values": [], + }, ] `; diff --git a/packages/tailwindcss/src/variants.test.ts b/packages/tailwindcss/src/variants.test.ts index e70970a92bed..2e1078cc9056 100644 --- a/packages/tailwindcss/src/variants.test.ts +++ b/packages/tailwindcss/src/variants.test.ts @@ -1903,6 +1903,26 @@ test('landscape', async () => { expect(await run(['landscape/foo:flex'])).toEqual('') }) +test('transparency-safe', async () => { + expect(await run(['transparency-safe:flex'])).toMatchInlineSnapshot(` + "@media (prefers-reduced-transparency: no-preference) { + .transparency-safe\\:flex { + display: flex; + } + }" + `) +}) + +test('transparency-reduce', async () => { + expect(await run(['transparency-reduce:flex'])).toMatchInlineSnapshot(` + "@media (prefers-reduced-transparency: reduce) { + .transparency-reduce\\:flex { + display: flex; + } + }" + `) +}) + test('contrast-more', async () => { expect(await run(['contrast-more:flex'])).toMatchInlineSnapshot(` "@media (prefers-contrast: more) { diff --git a/packages/tailwindcss/src/variants.ts b/packages/tailwindcss/src/variants.ts index d7a1ab5b1390..c4c9cd17537c 100644 --- a/packages/tailwindcss/src/variants.ts +++ b/packages/tailwindcss/src/variants.ts @@ -1134,6 +1134,9 @@ export function createVariants(theme: Theme): Variants { staticVariant('forced-colors', ['@media (forced-colors: active)']) + staticVariant('transparency-safe', ['@media (prefers-reduced-transparency: no-preference)']) + staticVariant('transparency-reduce', ['@media (prefers-reduced-transparency: reduce)']) + return variants }