diff --git a/CHANGELOG.md b/CHANGELOG.md index 675df7dd31ec..b75932023c29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- _Experimental_: Add `inverted-colors` variant ([#11693](https://github.com/tailwindlabs/tailwindcss/pull/11693)) - _Experimental_: Add `user-valid` and `user-invalid` variants ([#12370](https://github.com/tailwindlabs/tailwindcss/pull/12370)) - _Experimental_: Add `wrap-anywhere`, `wrap-break-word`, and `wrap-normal` utilities ([#12128](https://github.com/tailwindlabs/tailwindcss/pull/12128)) diff --git a/packages/tailwindcss/src/__snapshots__/intellisense.test.ts.snap b/packages/tailwindcss/src/__snapshots__/intellisense.test.ts.snap index 2f55ec4159be..bd2b3dad964d 100644 --- a/packages/tailwindcss/src/__snapshots__/intellisense.test.ts.snap +++ b/packages/tailwindcss/src/__snapshots__/intellisense.test.ts.snap @@ -8448,6 +8448,7 @@ exports[`getVariants 1`] = ` "dark", "print", "forced-colors", + "inverted-colors", ], }, { @@ -9169,5 +9170,12 @@ exports[`getVariants 1`] = ` "selectors": [Function], "values": [], }, + { + "hasDash": true, + "isArbitrary": false, + "name": "inverted-colors", + "selectors": [Function], + "values": [], + }, ] `; diff --git a/packages/tailwindcss/src/feature-flags.ts b/packages/tailwindcss/src/feature-flags.ts index 7a407b534f65..c84536abc644 100644 --- a/packages/tailwindcss/src/feature-flags.ts +++ b/packages/tailwindcss/src/feature-flags.ts @@ -1,2 +1,3 @@ +export const enableInvertedColors = process.env.FEATURES_ENV !== 'stable' export const enableUserValid = process.env.FEATURES_ENV !== 'stable' export const enableWrapAnywhere = process.env.FEATURES_ENV !== 'stable' diff --git a/packages/tailwindcss/src/variants.test.ts b/packages/tailwindcss/src/variants.test.ts index e215835aa101..afde353945f5 100644 --- a/packages/tailwindcss/src/variants.test.ts +++ b/packages/tailwindcss/src/variants.test.ts @@ -1907,6 +1907,16 @@ test('forced-colors', async () => { expect(await run(['forced-colors/foo:flex'])).toEqual('') }) +test('inverted-colors', async () => { + expect(await run(['inverted-colors:flex'])).toMatchInlineSnapshot(` + "@media (inverted-colors: inverted) { + .inverted-colors\\:flex { + display: flex; + } + }" + `) +}) + test('nth', async () => { expect( await run([ diff --git a/packages/tailwindcss/src/variants.ts b/packages/tailwindcss/src/variants.ts index ea1de7c8acb6..a79eebe5f10c 100644 --- a/packages/tailwindcss/src/variants.ts +++ b/packages/tailwindcss/src/variants.ts @@ -12,7 +12,7 @@ import { type StyleRule, } from './ast' import { type Variant } from './candidate' -import { enableUserValid } from './feature-flags' +import { enableInvertedColors, enableUserValid } from './feature-flags' import type { Theme } from './theme' import { compareBreakpoints } from './utils/compare-breakpoints' import { DefaultMap } from './utils/default-map' @@ -1143,6 +1143,10 @@ export function createVariants(theme: Theme): Variants { staticVariant('forced-colors', ['@media (forced-colors: active)']) + if (enableInvertedColors) { + staticVariant('inverted-colors', ['@media (inverted-colors: inverted)']) + } + return variants }