CSS text-wrap プレイグラウンド
text-wrap: balance / pretty / wrap / nowrap を、フォントサイズと幅をスライダーで操作しながら4列同時に比較できるプレイグラウンド。
このツールについて
モダンCSSの text-wrap プロパティには wrap、nowrap、balance、pretty という4つの便利な値が用意されていますが、実際に並べて見比べないと違いがわかりにくいのが本音です。このプレイグラウンドは、同じテキストを4つのモードで同時にレンダリングするので、見出し・段落・ボタン・カードなど、シーン別に最適な値を判断できます。
操作はシンプルです。任意のテキストを入力し、フォントサイズスライダー(12px〜32px)とコンテナ幅スライダー(200px〜800px)をドラッグするだけで4つの列がライブで再レイアウトされます。問題が起きている画面幅をピンポイントで再現できるので、デバッグにも使えます。行末マーカートグルをONにすると各行末に薄い水平線が重なって表示されるので、行数のカウントや「未亡人(orphan/widow)」の検出が一目で行えます。「生成されたCSS」パネルは、選択中のバリアントのスニペットをコピー可能な形で出力し、CSS.supports('text-wrap', 'pretty') を使ったブラウザサポートバナーで現在の環境がフォールバックするかどうかを警告します。
balance は、折り返したすべての行で文字数を均等に近づけます。見出し、カードタイトル、ヒーローコピー、ツールチップなど 1〜6行 程度の短いテキストに最適です。ブラウザは複数の改行候補を試して最もラギネス(凹凸)が少ないものを選ぶため、計算量は改行候補数に対して O(n²) になります。多くのエンジンが balance を 6行までに制限しているのはこのためです。一方 pretty は段落の 最後の数行 だけを最適化して未亡人(1単語だけが取り残された行)を防ぎ、ハイフネーションの位置も改善します。長文に対しても性能上のペナルティが小さいのが特徴です。
レイアウトの細かい確認には、要素サイズに応じた挙動を試せるContainer Query Builder、よく使われるデバイス幅で検証するViewport Size Reference、そしてフォントの組み合わせから決めるGoogle Fonts Pair Finderと一緒に使うと効果的です。子孫要素にだけ text-wrap を適用したい場合はCSSセレクターリファレンスも参考になります。
すべての処理はクライアントサイドで完結します。テキストはブラウザの外に出ず、入力に紐づくアナリティクスもありません。一度読み込めばオフラインでも動作するので、永続的なリファレンスとしてブックマーク可能です。
使い方
- テキスト入力欄に実際の見出し・段落・ラベルなどを貼り付けます。または「Marketing headline」「Product description」「Card title」「Long paragraph」のサンプルチップを1クリックで読み込みます。
- Font size スライダー(12〜32px)でデザインシステムのタイポグラフィスケールに合わせます。
- Container width スライダー(200〜800px)で、テキストを配置する親要素の幅(カード、サイドバー、モーダル、ヒーローバナーなど)をシミュレートします。
nowrap/wrap(デフォルト)/balance/prettyの4列を見比べます。同じテキストがtext-wrapの値ごとにどう改行されるかを確認できます。- 行末マーカーを有効にすると各行末に水平線が重なって表示されるので、行数や未亡人を一目で確認できます。
- 任意の列のヘッダーをクリックすると、その値が「アクティブ」となり、生成されたCSSパネルがそのバリアントのスニペットに更新されます。
- Copy ボタンまたは
Ctrl+Shift+Cショートカットで、生成されたCSSをクリップボードへコピーします。
代表的なユースケース
よくある質問
CSSのtext-wrapプロパティとは何ですか?
text-wrapは2023年に登場したCSSプロパティで、ブロック内テキストの折り返し方をブラウザに指示します。値はwrap(デフォルトの貪欲法)、nowrap(強制1行)、balance(行幅を均等化、見出し向け)、pretty(段落の最終数行を最適化して未亡人を防ぐ)、stable(ライブ編集時にも改行位置を安定化)の5種類です。これにより、これまで <wbr>、 、JavaScriptライブラリで手動修正していた見出しのバランス調整がCSSだけで完結します。
text-wrap: balance と pretty の違いは?
balance はブロック全体を最適化し、折り返した各行の幅をほぼ均等にします。見出し・カードタイトル・ツールチップなど **1〜6行** 程度の短文に最適です。pretty は長めの段落の **最後の数行** だけを最適化し、未亡人(最終行に残る1単語)を防いでハイフネーションも改善します。見出しには balance、本文には pretty が原則です。内部的には balance が改行候補数に対して O(n²) と計算量が大きいため、ブラウザは6行程度までしか balance を効かせません。pretty は長文にもスケールするよう設計されています。
text-wrap: pretty と balance はどのブラウザでサポートされていますか?
text-wrap: balance は Chrome 114(2023年5月)、Edge 114、Firefox 121(2023年12月)、Safari 17.5(2024年5月)で実装されました。text-wrap: pretty は新しめで Chrome 117(2023年9月)、Edge 117、Safari 17.5 で利用可能ですが、Firefox は2026年初頭時点でも未対応で、デフォルトの折り返しにフォールバックします。balance / pretty は常にプログレッシブエンハンスメントとして扱い、値が無視されてもレイアウトが破綻しないようにしてください。本ページ上部のサポートバナーは CSS.supports('text-wrap', 'pretty') を使って現在のブラウザがフォールバックするかをリアルタイムに警告します。
text-wrap: balance はどんな場面で使うべきですか?
ラギネス(行頭・行末の凹凸)が目立つと素人っぽく見えるような短くて目立つテキストに最適です。具体的には H1・H2 見出し、グリッド内のカードタイトル、ヒーローのサブタイトル、モーダルタイトル、ツールチップ本文、2行に折り返るボタンラベル、フォーム入力上のラベルなど。逆に避けるべきは本文段落(代わりに pretty)、6行を超えるテキスト(ブラウザが balance を諦める)、頻繁にアニメーションするテキスト(毎フレーム再計算のコストがパフォーマンスを下げる)です。
text-wrap のパフォーマンスへの影響は?
あるが、限定的です。text-wrap: balance は改行候補数に対して O(n²) なので、ブラウザは折り返しを6行程度(Chrome デフォルトは6、Firefox は10)に制限し、それを超える場合は最適化をスキップします。text-wrap: pretty はかなり安価で、デフォルトでは段落の最後の4行だけを再評価するため、段落の長さに関わらずコストはほぼ一定です。静的コンテンツでは無視できる程度ですが、キーストロークやアニメーションフレームごとに再レイアウトされるコンテンツでは balance より pretty を選ぶか、見出し要素にだけ balance を適用してください。
text-wrap と hyphens / white-space / overflow-wrap の関係は?
text-wrap は **どこで** 改行できるかを制御し、他の3つは **どう単語を分割** するかを制御します。本文には hyphens: auto と text-wrap: pretty を組み合わせるのがベストです。pretty は未亡人を最小化するハイフネーション位置を選んでくれます。white-space: nowrap は古い時代の text-wrap: nowrap 相当で、今でも有効です。overflow-wrap: anywhere は、URL や長いIDなど分割不能な長い文字列を、text-wrap の値に関わらず単語の途中で改行する最後の砦です。4つは競合ではなく補完関係にあります。
データは安全ですか?
はい。このプレイグラウンドは純粋なCSSとReactのステートだけでブラウザ内で完結します。テキスト、スライダーの値、生成されたCSSがサーバーに送信されることは一切ありません。ブラウザサポートバナーはローカルの CSS.supports() API を使っており、外部の機能検出サービスは利用しません。入力に紐づくアナリティクスもなく、一度読み込めばオフラインでも動作するため、未公開のドラフトコピーや未発表の製品名を貼り付けても痕跡を残しません。
関連ツール
CSSセレクターリファレンス
CSSセレクターの完全なインタラクティブリファレンス。詳細度計算、ライブプレビュー、ブラウザサポート情報付き。
CSSコンテナクエリビルダー
コンテナタイプ、名前、サイズ条件でCSSコンテナクエリをビジュアルに構築します。
ビューポートサイズリファレンス
レスポンシブWebデザイン用の60以上のデバイスビューポートサイズを閲覧します。iPhone、iPad、Android、ノートPC、デスクトップ、TVの画面寸法を比較。
Google Fontsペアリング
見出しと本文に最適な組み合わせのGoogle Fontsペアを検索・プレビューします。
カラーコンバーター
HEX、RGB、HSL間でカラーを変換し、コントラストチェックやパレット生成も行えます。
View Transitions API ジェネレーター
View Transitions API の CSS を生成。cross-fade / slide / scale / カスタム keyframes と document.startViewTransition() の実機プレビュー。
CSS アンカーポジショニング ジェネレーター
CSS Anchor Positioning(anchor-name / position-anchor / anchor() / position-area / position-try-fallbacks)をビジュアルに生成。ライブプレビューとコピペ可能なCSS出力。