diff --git a/CHANGELOG.md b/CHANGELOG.md index e5e6f6f89805..b960fd12e778 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 ### Added - Add `@tailwindcss/turbopack` package to run Tailwind CSS with Next.js ([20367](https://github.com/tailwindlabs/tailwindcss/pull/20367)) +- Add `content-visibility` utilities (`content-visibility-auto`, `content-visibility-hidden`, `content-visibility-visible`) for rendering performance optimization ([#20520](https://github.com/tailwindlabs/tailwindcss/pull/20520)) ### Fixed diff --git a/packages/tailwindcss/src/property-order.ts b/packages/tailwindcss/src/property-order.ts index bf9f0791acdf..f66e95316f99 100644 --- a/packages/tailwindcss/src/property-order.ts +++ b/packages/tailwindcss/src/property-order.ts @@ -50,6 +50,7 @@ export default [ 'box-sizing', 'display', + 'content-visibility', 'field-sizing', 'aspect-ratio', diff --git a/packages/tailwindcss/src/utilities.test.ts b/packages/tailwindcss/src/utilities.test.ts index 66b051d57961..b3fe54a7c44f 100644 --- a/packages/tailwindcss/src/utilities.test.ts +++ b/packages/tailwindcss/src/utilities.test.ts @@ -92,6 +92,40 @@ test('visibility', async () => { ).toEqual('') }) +test('content-visibility', async () => { + expect( + await run([ + 'content-visibility-auto', + 'content-visibility-hidden', + 'content-visibility-visible', + ]), + ).toMatchInlineSnapshot(` + " + .content-visibility-auto { + content-visibility: auto; + } + + .content-visibility-hidden { + content-visibility: hidden; + } + + .content-visibility-visible { + content-visibility: visible; + } + " + `) + expect( + await run([ + '-content-visibility-auto', + '-content-visibility-hidden', + '-content-visibility-visible', + 'content-visibility-auto/foo', + 'content-visibility-hidden/foo', + 'content-visibility-visible/foo', + ]), + ).toEqual('') +}) + test('position', async () => { expect(await run(['static', 'fixed', 'absolute', 'relative', 'sticky'])).toMatchInlineSnapshot(` " diff --git a/packages/tailwindcss/src/utilities.ts b/packages/tailwindcss/src/utilities.ts index 477559d7ea67..ae1f86f63845 100644 --- a/packages/tailwindcss/src/utilities.ts +++ b/packages/tailwindcss/src/utilities.ts @@ -624,6 +624,13 @@ export function createUtilities(theme: Theme) { staticUtility('invisible', [['visibility', 'hidden']]) staticUtility('collapse', [['visibility', 'collapse']]) + /** + * @css `content-visibility` + */ + staticUtility('content-visibility-auto', [['content-visibility', 'auto']]) + staticUtility('content-visibility-hidden', [['content-visibility', 'hidden']]) + staticUtility('content-visibility-visible', [['content-visibility', 'visible']]) + /** * @css `position` */