A lightweight Tailwind CSS plugin that adds content-visibility and contain-intrinsic-size utilities — unlocking browser-level rendering optimizations with a single class.
Install via npm:
npm install tailwindcss-visibility
Add the plugin to tailwind.config.js:
module.exports = {
plugins: [require('tailwindcss-visibility')],
theme: {
extend: {
sizeHint: {
// optional custom size hints
xs: '100px',
card: '250px',
'2xl': '1000px',
},
},
},
};
| Class | CSS | What it does |
|---|---|---|
content-auto |
content-visibility: auto |
Skips rendering of off-screen content until it's near the viewport. |
content-hidden |
content-visibility: hidden |
Hides content while preserving its size in layout. |
content-visible |
content-visibility: visible |
Forces content to always render, overriding any inherited optimization. |
Pairs with content-auto to tell the
browser how much space to reserve for off-screen elements, preventing layout shifts when they scroll
into view.
| Class | CSS |
|---|---|
size-hint-sm |
contain-intrinsic-size: 300px |
size-hint-md |
contain-intrinsic-size: 500px |
size-hint-lg |
contain-intrinsic-size: 800px |
size-hint-[200px] |
contain-intrinsic-size: 200px (arbitrary) |
Long scrolling pages
<!-- each section deferred until near viewport -->
<article class="content-auto size-hint-md">
<h2>Section Title</h2>
<p>Content...</p>
</article>
Image galleries
<div class="grid grid-cols-3 gap-4">
<div class="content-auto size-hint-[200px]">
<img src="image1.jpg" alt="..." />
</div>
</div>
Collapsed accordion content
<div class="content-hidden">
<p>Accordion body that's off-screen...</p>
</div>
Faster initial paint
Off-screen sections are skipped entirely at render time.
No layout shift
Size hints reserve space so the scrollbar doesn't jump.
Fully customizable
Override size hint values via theme config or arbitrary values.
Drop-in plugin
One line in your Tailwind config. Works with v3 and later.
content-visibility
is supported in all modern browsers. Older browsers simply ignore the property — no broken
layouts.
Gracefully degrades — browsers that don't support the property render content normally.