Picovert

Tailwind CSS パフォーマンス:CSS バンドルを 10 KB 以下に保つ方法

2026-04-216分で読了

Tailwind CSS は理論上、使用するクラスのみを送信します。しかし実際には、設定ミスのプロジェクトは 必要以上に多くの CSS を送信し、任意値や @apply といった一般的なパターンが 暗黙的にスタイルシートを肥大化させることがあります。Tailwind バンドルを 10 KB 以下に保つ 方法を解説します。

Tailwind の JIT の仕組み

Tailwind v3+ は Just-In-Time コンパイラーを使用してソースファイルのクラス名をスキャンし、 それらのクラスが必要とする CSS のみを生成します。出力は純粋で最小限のスタイルシートです。

CSS バンドルサイズの監査

本番ビルド後に .next/static/css/ の CSS 出力を確認します。適切に設定された Tailwind アプリ: 中程度の複雑さで gzip 10 KB 以下、100 KB 以上は設定エラーの赤信号です。

Content glob の設定ミス

Tailwind バンドルが過大化する最も一般的な原因は、広すぎる content glob です。node_modules を誤ってスキャンすると、それらのファイルが参照するすべてのクラスが 生成されます — 本番環境に送信されないファイルであっても。

任意値:必要だがコストがかかる

Tailwind の任意値構文(w-[337px] など)は値ごとに固有の CSS ルールを生成します。 数百個の任意値があるプロジェクトは、tailwind.config.js のカスタムトークンに 統合すべきです。

@apply の乱用

@apply はグローバル CSS のコンポーネントクラスに有用です。JIT が既に処理する コンポーネントファイル内で使用すると問題になります。コンポーネントファイルは既に Tailwind クラスに直接アクセスできます。

プラグインの影響

  • @tailwindcss/typography: +8〜15 KB
  • @tailwindcss/forms: +2〜4 KB
  • サードパーティプラグイン: 個別に測定、50 KB+ 追加するものも