Tailwind Plugin Performance Zero Dependencies MIT

tailwindcss-visibility

A lightweight Tailwind CSS plugin that adds content-visibility and contain-intrinsic-size utilities — unlocking browser-level rendering optimizations with a single class.

Installation & Setup

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',
      },
    },
  },
};

Classes

Content Visibility

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.

Size Hints

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)

Usage Examples

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>

Why Use It

  • 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.

Browser Support

content-visibility is supported in all modern browsers. Older browsers simply ignore the property — no broken layouts.

  • Chrome & Edge 85+
  • Firefox 90+
  • Safari 15.4+

Gracefully degrades — browsers that don't support the property render content normally.