§

Options

Beautify options
§

CSS を貼り付け

§

整形後の CSS

css

日本のフロントエンド開発者が CSS ビューティファイアを使う場面として最も多いのは、本番スタイルシートを開いてすべてのルールが一行に詰め込まれていることに気づいたときです。Chrome DevTools の Network タブから圧縮ファイルを取得してここに貼り付ければ、コードレビューに耐える形式が得られます。Prettier や Stylelint をプロジェクトに導入しているチームなら、このツールが出力するインデントとブレーススタイルが自社のリントルールと一致するため、そのままリポジトリに取り込めます。また、WCAG 2.2 に基づくアクセシビリティ監査でフォーカスアウトラインを設定するセレクターを特定したいときや、デザイントークンを採用したチームがベンダースタイルシートと自社トークンを比較する場合にも役立ちます。

CSS 整形の仕組み

ビューティファイアはスタイルシートを 1 文字ずつ読み取り、各ブロックのネスト深度を追跡しながら、一貫した間隔で再出力します。スタイルの動作は一切変えず、見た目だけを整えます。

  1. トークナイズ. ライブラリはセレクター・プロパティ名・値・at ルール・コメント、そしてそれらを区切るブレース・コロン・セミコロンというトークンのストリームに入力をスキャンします。文字列と url() の値は単一の単位として認識されるため、content プロパティ内のブレースがブロック区切り記号と誤解されることはありません。
  2. ネストの追跡. トークンストリームを走査しながら、ビューティファイアはインデントレベルをリアルタイムで管理します。開き波括弧が現れるとレベルが深くなります——ルールブロック・メディアクエリー・キーフレームブロックのいずれでも同様です——そして対応する閉じ括弧でレベルが戻ります。この深度が各行の先頭に付くインデント数を決めます。
  3. オプションの適用. インデントの選択(スペース 2 つ・スペース 4 つ・タブ)が 1 レベルの幅を決めます。ブレーススタイルは開き括弧を直前のセレクターに続けるか独立行に置くかを決めます。残りのトグルはルールブロック間に空行を追加し、グループ化されたセレクターを個別の行に分割します。
  4. 再出力. 最後にフォーマッターが、計算済みのインデントと改行でトークンを出力します。各宣言は 1 行に 1 つ、各コロンの後にスペースを 1 つ置いて出力されます。結果は同じスタイルシートが、人間がカスケードをスキャンできる形に整えられたものです。

CSS を整形する理由

  • 圧縮スタイルシートを読む. 本番 CSS は一行で出荷され、ルール間に間隔がありません。整形すれば改行とインデントが復元され、ソースマップがなくてもレイアウトバグの原因となるセレクターを特定し、その宣告内容を確認できます。
  • 不揃いなファイルを整頓. 複数人が触れたスタイルシートはインデントとブレーススタイルが混在しがちです。一度整形するだけでファイル全体を統一レイアウトに揃えられ、次回の差分では空白の乱れではなくカスケードの変化だけが見えるようになります。
  • このツールはページを重くしません. 多くのオンラインフォーマッターはページを開いた瞬間にライブラリ全体を読み込みます。このツールは「整形」をクリックするかライブモードをオンにしたときだけ js-beautify を遅延ロードします。そのため初回表示は数百 KB ではなく数 KB で済み、初期レンダリングが速く保たれます。
  • コードはブラウザーの外に出ません. ビューティファイアはあなたのデバイス上で完結します。CSS はサーバーへ送信されません。点検するスタイルシートがクライアントのものであったり、内部クラス名を含んでいたり、秘密保持契約の対象であったりする場合に重要なポイントです。

主な用途

可読性を前提とせず書かれたスタイルシートを読む必要があるとき、いつでも CSS の整形が役立ちます。

  • 本番デバッグ:Network タブから取得した圧縮スタイルシートを貼り付け、期待通りのレイアウトを崩しているルールを見つける。
  • コードレビュー準備:インデントが不揃いな貢献者のスタイルシートを PR 提出前に整形し、レビュアーが空白の乱れではなくカスケードの変化を見られるようにする。
  • 学習・監査:フレームワークやコンポーネントライブラリのスタイルシートを展開し、セレクター・メディアクエリー・カスタムプロパティの構造を調べる。

実践的な例

圧縮された一行コードを試してみましょう:a{color:red;margin:0}b{padding:0}。インデントをスペース 2 つ・ブレーススタイルを「同行(Collapse)」に設定して上に貼り付け、整形ボタンを押してください。読みやすいブロックが返ってきます:a { が独立行に、color: red;margin: 0; 宣言がそれぞれ一段深くインデントされ、閉じ括弧がセレクターの下に揃い、b ルールがその下に続きます。ブレーススタイルを「改行(Expand)」に切り替えると、各開き括弧が独立行に移ります。インデントをタブに変えると、スペース 2 つがタブ文字に置き換わります。スタイルはまったく同じで、レイアウトだけが変わります。

FAQ

これはブラウザーで動きますか?

はい。js-beautify ライブラリは「整形」をクリックするかライブモードを有効にした最初の 1 回だけ遅延ロードされ、その後はキャッシュされます。CSS はページを離れません——サーバーへの通信もアップロードもありません。

整形とアンミニファイは同じですか?

可読なフォーマット(インデント・改行・間隔)は復元できますが、ミニファイ時に削除されたコメントや、ファイルに存在しなかった構造は取り戻せません。ファイルに残っている宣言とセレクターを再フォーマットするだけです。

整形するとスタイルのレンダリングが変わりますか?

変わりません。整形は空白と改行の追加・削除のみを行い、カスケードはそのままでページはまったく同じようにレンダリングされます。プロパティの順序・詳細度・値はすべて書いたとおりに保たれます。

ブレーススタイルのオプションとは何ですか?

「同行(Collapse)」は開き括弧をセレクターと同じ行に置きます(a {)——CSS では一般的なスタイルです。「改行(Expand)」はすべての開き括弧を独立した行に置きます。空行と 1 セレクター 1 行のトグルは、ルールブロック間の間隔と h1, h2, h3 のようなグループ化されたセレクターのレイアウトを制御します。

ブラウザーサイドの CSS 整形は、ビルドステップやアップロードなしで可読なスタイルシートを提供します。圧縮または雑然としたファイルを貼り付け、インデントとブレーススタイルを選び、結果をコピーまたはダウンロードしてください。コードはデバイスの外に出ず、アカウントも不要で、ライブラリはあなたが要求したときだけ読み込まれます——このページを開くコストは数キロバイトであり、数メガバイトではありません。