CSSミニファイヤー
CSSを、文字を単純に取り除くのではなくスタイルシートを本物の構文木に解析するミニファイヤーcssoで圧縮します。これにより重複するルールを安全に統合し、値を短縮できます。すべてブラウザ内で処理されます。
- ファイルは端末の外に出ません
- 無料、登録不要
- 透かしなし
- 一度読み込めばオフラインでも動作します
CSSミニファイヤーの使い方
- 1
CSSを貼り付け
スタイルシート、スニペット、単一のルールブロックのいずれかを貼り付けます。
- 2
再構成をオンのままにして最小の出力に
重複・重複するルールを統合します。結果に違和感があればオフにしてください。
- 3
結果をコピー
圧縮されたCSSを、削減できたサイズとともにコピーします。
CSSのミニファイが実際に取り除き、変えるもの
空白とコメントの削除はミニファイの中で分かりやすく簡単な部分であり、どのミニファイヤーもそれを行いますし、それ単体では単なる検索置換とほとんど変わりません。本物のCSS対応ミニファイヤーを単純な空白の削除から分けるのは、スタイルシートを実際に理解する必要があるすべての部分です: `#ffffff`のような色の値を`#fff`に圧縮し、余分なゼロの単位を切り詰めるショートハンド値の圧縮、そして最終的に同じ宣言を適用する2つのルールを1つに統合する重複・重複ルールの統合です。どちらも、まずCSSを本物の構造に解析する必要があります — どのセレクタがどの宣言に適用されるか、どの値が等価かを把握することです。だからこそcssoはテキストをパターンマッチングするのではなく実際の構文木を構築するのであり、それは本物のパーサーが正規表現による処理より真価を発揮する理由と同じです。
なぜ単発ファイルの圧縮が今も必要とされるのか
モダンなビルドツールは、本番ビルドの一部として自動的にCSSの出力をミニファイするため、バンドルされたプロジェクトの中で作業する人にとって、ミニファイはビルドするたびにすでに見えないところで起きています。このような単体ツールは、そのパイプラインの外側に落ちるものをカバーします: ビルドステップがまったくないCMSやプラットフォーム、どこかサイズ制約のある場所に収める必要がある一度限りのスニペット、あるいはツールを組むだけの価値があるかを決める前にあるスタイルシートが実際どれだけ縮むかを確認したいだけの場合などです。一度だけ必要な単一ファイルであれば、ここに貼り付けて結果をコピーし直す方が、バンドラーが生み出すのと同じ出力への近道です。
手つかずのまま残るもの
本物のCSS対応ミニファイヤーは、何を統合し何を書き換えるかについて意図的に慎重です: カスタムプロパティ(CSS変数)、メディアクエリ、キーフレームアニメーション、ベンダープレフィックス付きの宣言はすべて、書かれたとおりに正確に保持されます。誤って崩してしまうと、ソースの見た目だけでなく一部のブラウザや画面サイズでのページの表示のされ方まで黙って変えてしまう可能性があるからです。自動的に行っても安全な最適化 — 空白、コメント、ショートハンド値、本当に重複しているルール — は、レンダリングされるページに一切影響を与えないものだけであり、これこそがより荒っぽくリスクの高い検索置換ではなく本物のパーサーを使う設計思想の全体です。
よくある質問
スタイルシートはサーバーに送信されますか?
いいえ。cssoはブラウザにダウンロードされてそこで実行されます — 圧縮処理はすべてお使いの端末上で行われます。あなたのCSSがネットワークを経由することはどの時点でもありません。
圧縮でスタイルが壊れることはありますか?
正しく行われている限り、一般的にはありません — cssoは文字を単純に取り除くのではなく、CSSを本物の構文木に解析します。だからこそ、カスケードでどの宣言が勝つかを変えることなく、重複するセレクタを安全に統合したり値を短縮したりできるのです。時折驚かされる可能性があるのは構造的な再構成の部分です: スタイルシート全体にわたってルールを統合するのは、単なる空白削除よりも積極的な最適化であり、詳細度に敏感なCSSではまれに期待と違う見た目の出力になることがあります。だからこそ「ルールを統合・再構成する」というオプションが存在します — オフにすればコメントと空白の削除だけが行われ、構造的な変更は一切ありません。
圧縮後のCSSは依然として有効に使えるCSSですか?
はい。出力は普通のCSSです — 人間にとって読みにくいだけで、それこそが本番用途では狙いです。ブラウザは整形された元のCSSとまったく同じように解析します。`<link>`タグやビルドの出力にそのまま使えます。
これはいつ実際に使うべきですか?
本番用のスタイルシート、サイズ制約のある場所に埋め込むCSS(インラインの`<style>`ブロック、メールテンプレート、文字数制限のあるプラットフォームなど)、あるいはビルドステップを組むまでもなく素早く縮小したい単発のファイルです。ソースファイルや開発用のスタイルシートを圧縮すべきではありません — それらは読みやすいままにしておき、バンドラーが行うのと同じように最終的なビルド出力だけを圧縮してください。
なぜ出力は読みにくい見た目になるのですか?
それが目的です。空白やコメントは、それをレンダリングするブラウザのためではなく、ソースコードを読む人間のために存在します。それらを取り除き、統合できるものを安全に統合することで、ページの見た目を変えることなくネットワーク経由で送られるバイト数を減らします。