CSSミニファイア
圧縮されたCSSファイルは整形済みのものより明らかに速く読み込まれ、その差はページ読み込みごとに積み重なります。このミニファイアは空白とコメント、末尾のセミコロンを削ります。カスケードやルールの効果は変えません。出力は常に有効なCSSで、ブラウザは元と同じように解析します。
CSSを圧縮する手順
-
1
CSSを貼り付け
手書き、Sassのコンパイル結果、インラインのstyleブロックなど任意のCSSが対象です。
-
2
圧縮を実行
「Minify CSS」を押すと、コメント、空白、末尾のセミコロンを一括で削除します。
-
3
削減量を確認
バイト削減量が圧縮結果の横に表示されます。
-
4
結果をコピー
圧縮したCSSを本番バンドルに貼り付けるか、`.min.css`として保存します。
このミニファイアが行うこと
変換(動作は変わりません):
- コメントを削除します(
/*!ライセンスブロックを含むすべて)。 - 不要な空白(セレクタ間、宣言間、ブレース周り)を削除します。
- 閉じブレース直前の末尾セミコロンを削除します。
- 複数行のルールを1行に畳み込みます。
行うのはこれだけです。だから出力は元とまったく同じ挙動をします。すべてのセレクタ、プロパティ、値が書いたとおりのままです。
想定される削減率
| ソース | 元のサイズ | 圧縮後のサイズ | 削減率 |
|---|---|---|---|
| 整形済み手書きCSS | 20 KB | 12 KB | 40% |
| Sass出力、開発モード | 45 KB | 25 KB | 44% |
| すでに圧縮済み+gzip | 10 KB | 10 KB | 0% |
圧縮に加え、サーバーでのgzip圧縮はCSSが冗長性の高いテキストであるためさらに60〜80%削減します。両者は積み重なるので、常に両方を行ってください。
圧縮では行わないこと
- 未使用CSSの削除。これはツリーシェイキング/PurgeCSSの領域で、HTMLやコンポーネントの解析が必要です。
- HEXカラーの短縮、ゼロ単位の畳み込み、宣言のマージ。そうしたアグレッシブな変換はcssnano、esbuild、Lightning CSSの仕事で、このツールの対象外です。
- 重複セレクタを1つにマージ。ソースの順序がカスケードに影響するため危険です。試みるミニファイアもありますが、ほとんどは飛ばします。
- クラス名のリネーム。これはCSS-in-JSやCSS Modulesの仕事で、圧縮ではありません。
- クリティカルCSSのインライン化。これは別のビルド時ステップです。
ライセンスコメントの保持
多くのミニファイアは/*!で始まるコメントを保持します。ライセンスヘッダーで使われます。
/*! Bootstrap v5.3 · MIT License · https://github.com/twbs/bootstrap */
このツールはすべてのコメントを削除します。CSSにライセンスヘッダーが含まれる場合は、圧縮後に付け直すか、cssnanoやesbuildなどライセンス保持オプションのあるビルドツールを使ってください。
ソースマップ
本番デバッグ用には、ビルドツールが圧縮出力と並んでソースマップを生成します。
styles.min.css
styles.min.css.map
DevToolsはマップを読み込み、要素を調査した際に元の整形済み行番号を表示します。このツールはソースマップを生成しません。
ビルドパイプラインでのCSS圧縮
- Vite、Webpack、Parcel:本番ビルドで自動的に処理します。
- PostCSS + cssnano:標準的なスタンドアロンミニファイアです。
- esbuild:CSS圧縮も内蔵します。
- cssnanoプリセット:安全な変換は
default、アグレッシブ(一部トレードオフあり)はadvancedです。
このツールは単発の圧縮、緊急対応、ミニファイアの実態を学ぶ用途向けです。本番ワークフローではビルドツールを使い、ソースは読みやすいまま、出力だけを圧縮するのが良いでしょう。
圧縮がCSSを壊す可能性のあるケース
まれですがあり得ます。
- 空白に依存するセレクタ:
.foo .barと.foo.barはスペースの有無で意味が変わります。 - 空白を含むカスタムプロパティ値:
--shadow: 0 2px 4px rgba(0,0,0,0.1)、rgba()内のカンマを削ってはいけません。 - 閉じられていないブロックコメント:
/* missing closeはそれ以降をすべて飲み込みます。不正な入力ではミニファイアが誤動作することがあります。
対処:出荷前に必ず圧縮済み出力をlint/テストパスにかけてください。
よくある質問
いいえ。正しく圧縮されたCSSファイルはバイトは異なりますが意味的には同一です。すべてのセレクタ、プロパティ、値が同じ視覚結果を生みます。描画の変化が見えたら、ミニファイアのバグか、入力に空白依存の構文があったということです。
はい、「Minify CSS」を押すと送信されます。貼り付けたCSSは圧縮のためにサーバーに送られ、結果がページに返されます。データベースに保存されることも、ページのリンクに追加されることもありません。
後です。ブラウザに渡る最終的なコンパイル済みCSSを圧縮してください。Sass出力はそれなりにコンパクトですが、圧縮が削れる空白とコメントを含みます。
控えめですが確実で、gzipの上に通常5〜15%です。空白とコメントの削除がgzipのパターンもわずかに密にします。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
FPS カウンター
requestAnimationFrame でブラウザーの FPS を測定。平滑化、最小・最大フレームレート、警告しきい値、任意のグラフに対応。ローカルで動作し、アップロードも API も不要です。
プレースホルダー画像ジェネレーター
1〜4000 pxの画像に色と文字を設定し、PNGで保存できます。外部URLとHTMLもコピーできます。
CMYK から RGB への変換
標準的な計算式で CMYK の割合をおおよその RGB 値と Hex 値に変換し、画面用にすばやく確認できます。
HTML 圧縮ツール
通常のコメントを削除し、空白を整理して、ブラウザ内で HTML をコンパクトにします。使用前に結果を確認してください。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
このツールは他の言語でも利用できます
- CSS 미니파이어 [KO]
- CSS Minifier [SV]
- CSS Minifier [NL]
- Minifikator CSS [PL]
- CSS-Minimierer [DE]
- CSS Minifier [TH]
- Minificador de CSS [ES]
- CSS Minifier [ID]
- المصغر CSS [AR]
- Minificateur CSS [FR]
- Minificador de CSS [PT]
- CSS Minifier [VI]
- CSS Minifier [EN]
- Minificatore CSS [IT]
- CSS-минификатор [RU]
- CSS Küçültücü [TR]
- CSS 压缩 [ZH]