0Pricing
CSS Academy · レッスン

CSSカバレッジと未使用スタイル

DevToolsのCoverageパネルやPurgeCSSなどのtree-shakingツールを使い、未使用のCSSを特定して削除します。

「CSSカバレッジと未使用スタイル」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。

未使用CSSの問題

大きなCSSファイルには、現在のページに存在しないコンポーネント用のスタイルが含まれていることがよくあります。未使用のバイトが増えるたびに、解析時間、CSSOM構築時間、転送サイズが増加します。一般的な本番アプリでは、ページごとにCSSの90%以上が未使用である場合もあります。

Chrome DevTools Coverage

DevTools → Coverageパネルを開きます(Cmd+Shift+P → Coverage)。記録を開始してページを操作し、その後停止します。パネルには各CSSファイルの使用率が表示され、未使用のルールが赤色で強調表示されます。分析用にカバレッジデータをJSONとしてエクスポートできます。

PurgeCSS

PurgeCSSはHTML、JS、テンプレートファイルをスキャンしてクラス名を検出し、未使用のCSSルールを削除します。クラス名を参照する可能性のあるすべてのファイルに一致するよう、content globを設定してください。JSによって動的に追加されるクラスは、誤って削除されないようsafelistに登録します。

Tailwind CSS JIT

TailwindのJITコンパイラーは、テンプレートで実際に使用されているユーティリティクラスだけを生成します。未使用のユーティリティは生成されないため、生成後のCSSは非常に小さく、アプリケーション全体でも5〜15KB程度になることがよくあります。これは理想的なパージの結果です。

PurgeCSSの設定

webpackまたはViteの設定で、すべてのテンプレートファイルを対象とするcontent globを指定してPurgeCSSを追加します。safelistオプションでは、Headless UIのようなライブラリによる複雑な動的クラスパターンに対応するため、文字列、正規表現、deep-safelistを使用できます。

CSS Modulesの利点

CSS Modulesはファイルごとに一意のクラス名を生成し、バンドラーの設定によって未使用のモジュールをtree-shakingできます。バンドルに含まれるのはインポートされたCSSモジュールだけなので、コンポーネントとスタイルを同じ場所に配置することで、グローバルな未使用スタイルが自然に排除されます。

ルートごとのCSS分割

Next.jsのようなフレームワークでは、ルートごとにCSSをコード分割します(ページ単位のCSS抽出)。または、CSS Modulesで動的インポートを使用します。各ページが自身のスタイルだけを読み込むため、カバレッジ分析をアプリケーション単位ではなく、ページ単位で意味のある形で行えます。

Lighthouseによる測定

Lighthouseの「Reduce unused CSS」監査では、未使用のルールを削除した場合に削減できるバイト数を推定します。未使用率の高い特定のスタイルシートリソースを特定できます。どのファイルから監査するかを決める際の優先順位付けに使用してください。

動的な状態を網羅する

カバレッジ分析で取得できるのは、記録中に表示された状態だけです。ホバー状態、モーダルを開いた状態、エラー状態、認証済みの状態は、スタイルが誤ってパージされないよう、カバレッジの記録中に手動で発生させる必要があります。

モノリシックCSSとコンポーネント単位のCSS

モノリシックなグローバルスタイルシートには、機能が削除されるたびに未使用CSSが蓄積します。コンポーネント単位のCSS(CSS Modules、Styled Components、Tailwindのユーティリティ)は、スタイルがコンポーネントとともに管理され、一緒に削除できるため、整理しやすくなります。

レガシーコードベースの監査

大規模なレガシーCSSファイルでは、まずUnCSSまたはPurgeCSSをレポートのみのモードで使用します。使用頻度でルールを並べ替え、明らかに未使用のベンダープラグインのスタイルを抽出して削除します。エッジケースの状態用スタイルを誤って削除しないよう、段階的に進めてください。

理解度チェック

Chrome DevToolsのCoverageパネルは何を測定しますか。

まとめ

DevToolsのCoverageとLighthouseによるCSSカバレッジ分析で、未使用のルールを特定できます。PurgeCSSとTailwind JITは、デッドコードの除去を自動化します。CSS Modulesとルート単位の分割により、未使用スタイルの蓄積を防げます。これらを組み合わせることで、CSSのペイロードと解析時間を最小限に抑えられます。

よくある質問

「CSSカバレッジと未使用スタイル」レッスンは無料ですか?

はい。「CSSカバレッジと未使用スタイル」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。

「CSSカバレッジと未使用スタイル」で何を学びますか?

DevToolsのCoverageパネルやPurgeCSSなどのtree-shakingツールを使い、未使用のCSSを特定して削除します。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

CSS Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「CSSカバレッジと未使用スタイル」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCSS Academyレッスンでコードを書いて実行できますか?

はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. クリティカルCSSとレンダリングブロック
  2. レイアウト・ペイント・コンポジット: レンダリングパイプライン
  3. will-changeとレイヤー昇格
  4. CSSカバレッジと未使用スタイル
← CSS Academyに戻る