Skip to content

Commit 5532d48

Browse files
Add scripting variants (#11929)
This adds two variants for the [`scripting`](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/scripting) media query. `noscript` for when JavaScript is disabled and `scripting` for when it's enabled. --------- Co-authored-by: Philipp Spiess <[email protected]>
1 parent e938c58 commit 5532d48

File tree

5 files changed

+68
-1
lines changed

5 files changed

+68
-1
lines changed

Diff for: CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
- _Experimental_: Add `details-content` variant ([#15319](https://github.com/tailwindlabs/tailwindcss/pull/15319))
1313
- _Experimental_: Add `inverted-colors` variant ([#11693](https://github.com/tailwindlabs/tailwindcss/pull/11693))
14+
- _Experimental_: Add `scripting`, `scripting-none`, and `scripting-initial` variants ([#12128](https://github.com/tailwindlabs/tailwindcss/pull/12128))
1415
- _Experimental_: Add `user-valid` and `user-invalid` variants ([#12370](https://github.com/tailwindlabs/tailwindcss/pull/12370))
1516
- _Experimental_: Add `wrap-anywhere`, `wrap-break-word`, and `wrap-normal` utilities ([#12128](https://github.com/tailwindlabs/tailwindcss/pull/12128))
1617

Diff for: packages/tailwindcss/src/__snapshots__/intellisense.test.ts.snap

+24
Original file line numberDiff line numberDiff line change
@@ -8449,6 +8449,9 @@ exports[`getVariants 1`] = `
84498449
"print",
84508450
"forced-colors",
84518451
"inverted-colors",
8452+
"scripting-initial",
8453+
"scripting-none",
8454+
"scripting",
84528455
],
84538456
},
84548457
{
@@ -9184,5 +9187,26 @@ exports[`getVariants 1`] = `
91849187
"selectors": [Function],
91859188
"values": [],
91869189
},
9190+
{
9191+
"hasDash": true,
9192+
"isArbitrary": false,
9193+
"name": "scripting-initial",
9194+
"selectors": [Function],
9195+
"values": [],
9196+
},
9197+
{
9198+
"hasDash": true,
9199+
"isArbitrary": false,
9200+
"name": "scripting-none",
9201+
"selectors": [Function],
9202+
"values": [],
9203+
},
9204+
{
9205+
"hasDash": true,
9206+
"isArbitrary": false,
9207+
"name": "scripting",
9208+
"selectors": [Function],
9209+
"values": [],
9210+
},
91879211
]
91889212
`;

Diff for: packages/tailwindcss/src/feature-flags.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export const enableDetailsContent = process.env.FEATURES_ENV !== 'stable'
22
export const enableInvertedColors = process.env.FEATURES_ENV !== 'stable'
3+
export const enableScripting = process.env.FEATURES_ENV !== 'stable'
34
export const enableUserValid = process.env.FEATURES_ENV !== 'stable'
45
export const enableWrapAnywhere = process.env.FEATURES_ENV !== 'stable'

Diff for: packages/tailwindcss/src/variants.test.ts

+30
Original file line numberDiff line numberDiff line change
@@ -1919,6 +1919,36 @@ test('inverted-colors', async () => {
19191919
`)
19201920
})
19211921

1922+
test('scripting-initial', async () => {
1923+
expect(await run(['scripting-initial:flex'])).toMatchInlineSnapshot(`
1924+
"@media (scripting: initial-only) {
1925+
.scripting-initial\\:flex {
1926+
display: flex;
1927+
}
1928+
}"
1929+
`)
1930+
})
1931+
1932+
test('scripting-none', async () => {
1933+
expect(await run(['scripting-none:flex'])).toMatchInlineSnapshot(`
1934+
"@media (scripting: none) {
1935+
.scripting-none\\:flex {
1936+
display: flex;
1937+
}
1938+
}"
1939+
`)
1940+
})
1941+
1942+
test('scripting', async () => {
1943+
expect(await run(['scripting:flex'])).toMatchInlineSnapshot(`
1944+
"@media (scripting: enabled) {
1945+
.scripting\\:flex {
1946+
display: flex;
1947+
}
1948+
}"
1949+
`)
1950+
})
1951+
19221952
test('nth', async () => {
19231953
expect(
19241954
await run([

Diff for: packages/tailwindcss/src/variants.ts

+12-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,12 @@ import {
1212
type StyleRule,
1313
} from './ast'
1414
import { type Variant } from './candidate'
15-
import { enableDetailsContent, enableInvertedColors, enableUserValid } from './feature-flags'
15+
import {
16+
enableDetailsContent,
17+
enableInvertedColors,
18+
enableScripting,
19+
enableUserValid,
20+
} from './feature-flags'
1621
import type { Theme } from './theme'
1722
import { compareBreakpoints } from './utils/compare-breakpoints'
1823
import { DefaultMap } from './utils/default-map'
@@ -1145,6 +1150,12 @@ export function createVariants(theme: Theme): Variants {
11451150
staticVariant('inverted-colors', ['@media (inverted-colors: inverted)'])
11461151
}
11471152

1153+
if (enableScripting) {
1154+
staticVariant('scripting-initial', ['@media (scripting: initial-only)'])
1155+
staticVariant('scripting-none', ['@media (scripting: none)'])
1156+
staticVariant('scripting', ['@media (scripting: enabled)'])
1157+
}
1158+
11481159
return variants
11491160
}
11501161

0 commit comments

Comments
 (0)