Set browser targets for iOS Safari, Firefox, and Chrome (#15166)

Closes #15160

We need to set browser targets for each browser individually to see
vendor prefixes created for each browser.

Exact values are up for discussion, this first pass is taken from
@adamwathan's comments in
https://github.com/tailwindlabs/tailwindcss/issues/15160

---------

Co-authored-by: Adam Wathan <adam.wathan@gmail.com>
This commit is contained in:
Philipp Spiess 2024-11-26 12:22:12 +01:00 • committed by GitHub
parent 8217b5ccce
commit cb518f4623
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 57 additions and 15 deletions

View file

@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Ensure any necessary vendor prefixes are generated for iOS Safari, Firefox, and Chrome ([#15166](https://github.com/tailwindlabs/tailwindcss/pull/15166))
- Ensure `.group` and `.peer` are prefixed when using the `prefix(…)` option ([#15174](https://github.com/tailwindlabs/tailwindcss/pull/15174))
- Ensure 3D transforms render correctly in Safari ([#15179](https://github.com/tailwindlabs/tailwindcss/pull/15179))

View file

@ -437,6 +437,9 @@ function optimizeCss(
exclude: Features.LogicalProperties,
targets: {
safari: (16 << 16) | (4 << 8),
ios_saf: (16 << 16) | (4 << 8),
firefox: 128 << 16,
chrome: 120 << 16,
},
errorRecovery: true,
}).code

View file

@ -241,6 +241,9 @@ function optimizeCss(
exclude: Features.LogicalProperties,
targets: {
safari: (16 << 16) | (4 << 8),
ios_saf: (16 << 16) | (4 << 8),
firefox: 128 << 16,
chrome: 120 << 16,
},
errorRecovery: true,
}).code

View file

@ -342,6 +342,9 @@ function optimizeCss(
exclude: Features.LogicalProperties,
targets: {
safari: (16 << 16) | (4 << 8),
ios_saf: (16 << 16) | (4 << 8),
firefox: 128 << 16,
chrome: 120 << 16,
},
errorRecovery: true,
}).code

View file

@ -151,6 +151,23 @@ describe('compiling CSS', () => {
}"
`)
})
test('adds vendor prefixes', async () => {
expect(
await compileCss(
css`
@tailwind utilities;
`,
['[text-size-adjust:none]'],
),
).toMatchInlineSnapshot(`
".\\[text-size-adjust\\:none\\] {
-webkit-text-size-adjust: none;
-moz-text-size-adjust: none;
text-size-adjust: none;
}"
`)
})
})
describe('arbitrary properties', () => {

View file

@ -31,6 +31,9 @@ export function optimizeCss(
exclude: Features.LogicalProperties,
targets: {
safari: (16 << 16) | (4 << 8),
ios_saf: (16 << 16) | (4 << 8),
firefox: 128 << 16,
chrome: 120 << 16,
},
errorRecovery: true,
}).code

View file

@ -11803,22 +11803,22 @@ test('box-decoration', async () => {
test('bg-clip', async () => {
expect(await run(['bg-clip-border', 'bg-clip-padding', 'bg-clip-content', 'bg-clip-text']))
.toMatchInlineSnapshot(`
".bg-clip-border {
background-clip: border-box;
}
".bg-clip-border {
background-clip: border-box;
}
.bg-clip-content {
background-clip: content-box;
}
.bg-clip-content {
background-clip: content-box;
}
.bg-clip-padding {
background-clip: padding-box;
}
.bg-clip-padding {
background-clip: padding-box;
}
.bg-clip-text {
background-clip: text;
}"
`)
.bg-clip-text {
background-clip: text;
}"
`)
expect(
await run([
'bg-clip',

View file

@ -62,7 +62,11 @@ test('marker', async () => {
test('selection', async () => {
expect(await run(['selection:flex'])).toMatchInlineSnapshot(`
".selection\\:flex ::selection, .selection\\:flex::selection {
".selection\\:flex ::selection {
display: flex;
}
.selection\\:flex::selection {
display: flex;
}"
`)
@ -2161,7 +2165,15 @@ test('variant order', async () => {
}
}
.first-letter\\:flex:first-letter, .first-line\\:flex:first-line, .marker\\:flex ::marker, .marker\\:flex::marker, .selection\\:flex ::selection, .selection\\:flex::selection {
.first-letter\\:flex:first-letter, .first-line\\:flex:first-line, .marker\\:flex ::marker, .marker\\:flex::marker {
display: flex;
}
.selection\\:flex ::selection {
display: flex;
}
.selection\\:flex::selection {
display: flex;
}