diff --git a/CHANGELOG.md b/CHANGELOG.md index d4db9a8759f1..a6e987d0e19b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Don't remove keyframe stops when using important utilities ([#12639](https://github.com/tailwindlabs/tailwindcss/pull/12639)) +- Don't add spaces to gradients and grid track names when followed by `calc()` ([#12704](https://github.com/tailwindlabs/tailwindcss/pull/12704)) ### Added diff --git a/src/util/dataTypes.js b/src/util/dataTypes.js index 7d8224606958..6705f10ca230 100644 --- a/src/util/dataTypes.js +++ b/src/util/dataTypes.js @@ -107,6 +107,13 @@ function normalizeMathOperatorSpacing(value) { 'keyboard-inset-left', 'keyboard-inset-width', 'keyboard-inset-height', + + 'radial-gradient', + 'linear-gradient', + 'conic-gradient', + 'repeating-radial-gradient', + 'repeating-linear-gradient', + 'repeating-conic-gradient', ] return value.replace(/(calc|min|max|clamp)\(.+\)/g, (match) => { @@ -162,6 +169,11 @@ function normalizeMathOperatorSpacing(value) { result += consumeUntil([')']) } + // Don't break CSS grid track names + else if (peek('[')) { + result += consumeUntil([']']) + } + // Handle operators else if ( ['+', '-', '*', '/'].includes(char) && diff --git a/tests/normalize-data-types.test.js b/tests/normalize-data-types.test.js index f01efa5e608b..224203ffe14c 100644 --- a/tests/normalize-data-types.test.js +++ b/tests/normalize-data-types.test.js @@ -86,6 +86,16 @@ let table = [ // Prevent formatting keywords ['minmax(min-content,25%)', 'minmax(min-content,25%)'], + // Prevent formatting keywords + [ + 'radial-gradient(calc(1+2)),radial-gradient(calc(1+2))', + 'radial-gradient(calc(1 + 2)),radial-gradient(calc(1 + 2))', + ], + [ + '[content-start]_calc(100%-1px)_[content-end]_minmax(1rem,1fr)', + '[content-start] calc(100% - 1px) [content-end] minmax(1rem,1fr)', + ], + // Misc ['color(0_0_0/1.0)', 'color(0 0 0/1.0)'], ['color(0_0_0_/_1.0)', 'color(0 0 0 / 1.0)'],