From c9c56942fd22dcdeb288bd5533c7b3aa8635e26b Mon Sep 17 00:00:00 2001 From: Adam Wathan <4323180+adamwathan@users.noreply.github.com> Date: Thu, 7 Nov 2024 16:28:54 -0500 Subject: [PATCH 1/3] Ensure spacing utilities with no value (e.g. `px`) don't generate CSS --- packages/tailwindcss/src/utilities.test.ts | 16 ++++++++++++++++ packages/tailwindcss/src/utilities.ts | 6 +++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/tailwindcss/src/utilities.test.ts b/packages/tailwindcss/src/utilities.test.ts index 5af59338f096..8d0ed9b6a4d9 100644 --- a/packages/tailwindcss/src/utilities.test.ts +++ b/packages/tailwindcss/src/utilities.test.ts @@ -16124,6 +16124,22 @@ describe('spacing utilities', () => { }" `) }) + + test('spacing utilities must have a value', async () => { + let { build } = await compile(css` + @theme { + --spacing: 4px; + } + @tailwind utilities; + `) + let compiled = build(['px']) + + expect(optimizeCss(compiled).trim()).toMatchInlineSnapshot(` + ":root { + --spacing: 4px; + }" + `) + }) }) describe('custom utilities', () => { diff --git a/packages/tailwindcss/src/utilities.ts b/packages/tailwindcss/src/utilities.ts index f57c4cccec9d..5778ec249436 100644 --- a/packages/tailwindcss/src/utilities.ts +++ b/packages/tailwindcss/src/utilities.ts @@ -278,7 +278,10 @@ export function createUtilities(theme: Theme) { // `defaultValue` (for candidates like `grow` that have no theme values) // or a bare theme value (like `--radius` for `rounded`). No utility // will ever support both of these. - value = desc.defaultValue ?? theme.resolve(null, desc.themeKeys ?? []) + value = + desc.defaultValue !== undefined + ? desc.defaultValue + : theme.resolve(null, desc.themeKeys ?? []) } else if (candidate.value.kind === 'arbitrary') { if (candidate.modifier) return value = candidate.value.value @@ -394,6 +397,7 @@ export function createUtilities(theme: Theme) { themeKeys, supportsFractions, supportsNegative, + defaultValue: null, handleBareValue: ({ value }) => { let multiplier = theme.resolve(null, ['--spacing']) if (!multiplier) return null From a2dc3d8bd13c522a1b65411be02d49a18689382b Mon Sep 17 00:00:00 2001 From: Adam Wathan <4323180+adamwathan@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:59:21 -0500 Subject: [PATCH 2/3] Update test --- packages/tailwindcss/src/utilities.test.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/tailwindcss/src/utilities.test.ts b/packages/tailwindcss/src/utilities.test.ts index 8d0ed9b6a4d9..84694d2d4846 100644 --- a/packages/tailwindcss/src/utilities.test.ts +++ b/packages/tailwindcss/src/utilities.test.ts @@ -16127,18 +16127,14 @@ describe('spacing utilities', () => { test('spacing utilities must have a value', async () => { let { build } = await compile(css` - @theme { + @theme reference { --spacing: 4px; } @tailwind utilities; `) let compiled = build(['px']) - expect(optimizeCss(compiled).trim()).toMatchInlineSnapshot(` - ":root { - --spacing: 4px; - }" - `) + expect(optimizeCss(compiled).trim()).toEqual('') }) }) From f59ca2c514e79574e4bf32be0c20d4b6d06039a4 Mon Sep 17 00:00:00 2001 From: Adam Wathan <4323180+adamwathan@users.noreply.github.com> Date: Thu, 7 Nov 2024 21:00:23 -0500 Subject: [PATCH 3/3] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7a97d63d85e..d7fc139531b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Rebase `url()` inside imported CSS files when using Vite ([#14877](https://github.com/tailwindlabs/tailwindcss/pull/14877)) - Ensure that CSS transforms from other Vite plugins correctly work in full builds (e.g. `:deep()` in Vue) ([#14871](https://github.com/tailwindlabs/tailwindcss/pull/14871)) - Don't unset keys like `--inset-shadow-*` when unsetting keys like `--inset-*` ([#14906](https://github.com/tailwindlabs/tailwindcss/pull/14906)) +- Ensure spacing utilities with no value (e.g. `px` or `translate-y`) don't generate CSS ([#14911](https://github.com/tailwindlabs/tailwindcss/pull/14911)) - _Upgrade (experimental)_: Install `@tailwindcss/postcss` next to `tailwindcss` ([#14830](https://github.com/tailwindlabs/tailwindcss/pull/14830)) - _Upgrade (experimental)_: Remove whitespace around `,` separator when print arbitrary values ([#14838](https://github.com/tailwindlabs/tailwindcss/pull/14838)) - _Upgrade (experimental)_: Fix crash during upgrade when content globs escape root of project ([#14896](https://github.com/tailwindlabs/tailwindcss/pull/14896))