コンテンツへスキップ

CSSを圧縮

コメントと空白を削り、値を短くします。ファイル内に扱えないものがあれば、ルールの欠けたスタイルシートを黙って返すのではなく、そのことをお知らせします。

  • 保存しません
  • 順番待ちなし
  • 登録不要・透かしなし
圧縮結果

圧縮したCSSがここに表示されます。

使い方

1

CSSを貼り付け

またはファイルをドロップします。何も保存されません。

2

結果を確認

ミニファイしたスタイルシートとどれだけ小さくなったか、または処理できなかった内容の説明が表示されます。

3

コピーまたはダウンロード

そのままビルドに組み込めます。

削減されるバイトの内訳

削減の大半は空白とコメントで、手書きのスタイルシートではこれがかなりの量になります。インデント、ルール間の空行、大きなファイルを見通しやすくする区切りの見出しは、配信してしまえばすべて純粋なオーバーヘッドです。それに加えて、意味が変わらない範囲で値を短くします。#ffffff と書かれた色は #fff に、ゼロには単位が不要なので 0px は 0 に、0.5em の先頭のゼロは削除され、margin: 10px 10px 10px 10px は margin: 10px にまとまります。

リスクのある種類の処理は、意図的に行いません。同じ宣言を持つルールの統合や並べ替えは、カスケードを変えてしまいます。 カスケードとは、詳細度が同じ2つのルールを、どちらが後にあるかで解決するCSSの仕組みです。積極的に並べ替えるミニファイアは、ファイルは小さくなっても、大きなスタイルシートでは微妙に違うページを生み出します。重複した宣言も意図的なことが多く、2つ目を無視する古いブラウザ向けのフォールバックとして残されています。

ネストしたルールと新しいメディアクエリの範囲構文は、ミニファイせずに処理を断ります。 これは多くのツールとは逆の対応なので、理由を説明しておきます。このツールの裏にあるパーサーはどちらの機能よりも古く、理解できないものに出会ってもエラーを出さず、黙って削除します。そのため、ネストしたブロックが出力からそのまま消え、何の報告もないままページのスタイルが失われます。ファイルの処理を断るのが誠実な対応です。スタイルシートでネイティブのネストや @media (400px <= width <= 700px) を使っている場合は、下で紹介するツールを使ってください。

マークアップと同じく、結果は 圧縮後 で判断してください。スタイルシートはgzipやbrotliで圧縮して配信され、これらのアルゴリズムは繰り返される空白をすでに非常にうまく処理します。そのため、ミニファイで30%小さくなったファイルも、転送時には5%しか小さくならないことがあります。削減は本物ですが、見出しの数字ほど大きくはありません。

ほかの目的には

新しいスタイルシートには Lightning CSS が適しています。ネスト、メディアクエリの範囲構文、カラー関数など、ここ数年で追加された機能をすべて理解し、どの古いツールよりも強力にミニファイし、同時に新しい構文を古いブラウザ向けに変換することもできます。esbuild --minify style.css もほぼ同等で、非常に高速です。どちらもブラウザのタブではなく、ビルド工程に組み込むべきものです。

はるかに大きな効果が出るのは、たいてい 使っていないルールの削除 です。ユーティリティフレームワークやコンポーネントライブラリで作ったサイトでは、スタイルシートの大部分がページ上のどの要素にも一致しないことがよくあります。PurgeCSS やフレームワーク自身のビルドを使えば、桁違いに削減できます。使っていないCSSをミニファイしても、使っていないCSSが小さくなるだけです。削除することが本当の解決策です。

よくある質問

CSSはどこかに保存されますか?

いいえ。ソースコードにとっては、そこがまさに肝心な点です。何も保存されず、サーバーがコードを目にすることもありません。社外秘のソースコードを、どこかに送信するオンラインのミニファイアに貼り付けるのは、サイトが保存期間について何と言っていようと情報の開示にあたります。しかも、急いでいるときに深く考えずにやってしまいがちな行為です。

ファイルの処理を断られたのはなぜですか?

ミニファイするとルールが失われるからです。このページの裏にあるミニファイアは2022年のもので、今では普通に使われているCSSの2つの機能を知りません。ネイティブのネスト(「&」の有無を問わず、ルールの中に書かれたルール)を渡すと、外側のルールだけを返し、ネストしたルールを「黙って削除」します。@media (width >= 400px) のような新しいメディアクエリの範囲構文を渡すと、空のスタイルシートを返します。どちらもエラーにはなりません。私たちは実際に配布しているバージョンでこの両方を確認し、スタイルの欠けたスタイルシートを渡すよりは断るほうがよいと判断しました。そのため、この2つのケースは検出して処理を断ります。まだ誰も見つけていない3つ目のケースに備えて、一般的なチェックとして処理前後のルール数も数えています。

では、ネストしたCSSはどうやってミニファイすればよいですか?

先にネストを展開してください。ネストに対応したビルドツール(Sass、PostCSS、Lightning CSS、またはお使いのバンドラー)はどれも、ビルドの過程でネストを平坦化します。平坦化した出力なら、ここで問題なくミニファイできます。ネストを手書きしてそのまま配信している場合、現在のブラウザは対応しているものの、ミニファイアの周辺ツールがまだ完全には追いついていない機能に頼っていることになります。

実際に何をするのですか?

コメントと空白を削除し、色を短くし(#ffffffは#fffに、#ff0000はredに)、不要な単位やセミコロンを削り、安全に統合できるものを統合します。使われていないと思われるルールは削除しません。それにはHTMLの内容を知る必要があり、推測を誤ると必要なスタイルが消えてしまうからです。

どのくらい小さくなりますか?

手書きのCSSなら、通常15〜30%です。ビルドツールがすでにコンパイルした出力はほぼ最小限になっていることが多く、ほとんど変わりません。サーバーのgzipはミニファイ以上の効果があり、2つの効果は重なります。

本番用のスタイルシートをここでミニファイしても安全ですか?

はい。何も保存されず、扱えない2つのケースは黙って壊すのではなく処理を断るので、返ってくるのは正しい結果か、断った理由の説明のどちらかです。

ご注意: ネストしたルールと新しいメディアクエリの範囲構文は、ミニファイせずに処理を断ります。このミニファイアはどちらの機能よりも古いパーサーを基にしており、理解できないものをエラーにせず黙って削除します。ネストしたブロックが出力からそのまま消えてしまうのです。そのパーサーが対応するまでは、ファイルの処理を断るのが誠実な対応です。

このツールをあなたのサイトに設置

ブログ、授業のページ、ヘルプ記事などに無料で設置できます。コードを1つ貼り付けるだけで、訪問者がそのページ上でツールを使えるようになります。