DevTools Japan トップへ

CSS clamp() 流体タイポ生成

最小・最大サイズからフルイドタイポグラフィのclamp()を自動計算

設定を入力

px
px
px
px
px
流体化の基準単位
生成された CSS(コピー可)
clamp(...)
最小値(rem)
-
最大値(rem)
-
切片(rem)
-
傾き(vw
-
ライブプレビュー(ブラウザ幅を変えると文字が伸縮します)

あア亜Aa 流体タイポグラフィ 123

最小値・最大値はアクセシビリティのためremで出力し、中間の傾きだけをvw(またはcqi/cqw)で表現します。cqi/cqwを選んだ場合はプレビューはvw換算で近似表示します。実装時は対象要素の祖先に container-type: inline-size; を指定してください。値は小数第4位で丸めています。

CSS clamp() 流体タイポ生成ツールの使い方

最小フォントサイズ・最大フォントサイズと、それぞれを適用したい最小ビューポート幅・最大ビューポート幅を入力するだけで、流体タイポグラフィ(フルイドタイポグラフィ)用の clamp() 式を自動生成する無料ツールです。画面幅が狭いときは小さく、広いときは大きく、その間は滑らかに文字サイズが変化し、下限と上限でしっかり頭打ちになります。すべての計算はブラウザ内で完結し、インストールや会員登録は不要です。

出力された clamp(最小rem, 切片rem + 傾きvw, 最大rem) をそのまま font-size に貼り付けるだけで使えます。単位トグルで vw(ビューポート幅基準)と cqi / cqw(コンテナクエリ単位)を切り替えられ、コンポーネント単位で文字を流体化したい場面にも対応します。ライブプレビューはブラウザの横幅を変えると実際にサイズが伸縮するので、生成前に効果を確かめられます。

なぜメディアクエリより clamp() なのか

従来は @media でブレークポイントごとに font-size を書き分けていましたが、境界で値が段階的に飛び、コードも増えがちでした。clamp() と vw/コンテナクエリ単位を組み合わせると、1行で連続的にサイズが変化し、どの画面幅でも読みやすいサイズを保てます。コンテナクエリ単位(cqi/cqw)はBaseline 2024で広くサポートされ、2025年時点ではメディアクエリを使わない流体タイポグラフィが一般的なパターンになっています。

clamp() の計算方法

本ツールは次の手順で式を組み立てます。まず最小・最大フォントサイズを rem 基準(既定16px)で rem に変換します。次に傾き(ビューポートが1px広がるごとにフォントが何px増えるか)を求め、1vw = ビューポート幅の1% であることから100倍して vw 係数にします。最後に、最小ビューポート幅のときにちょうど最小フォントになるよう切片(rem部分)を逆算します。

項目計算式説明
最小値(rem)最小px ÷ rem基準clamp の下限
最大値(rem)最大px ÷ rem基準clamp の上限
傾き(最大px − 最小px) ÷ (最大vw − 最小vw) × 100vw / cqi の係数
切片(rem)(最小px − 傾きpx × 最小vw) ÷ rem基準推奨値の定数部

計算例

最小16px(320pxのとき)・最大24px(1280pxのとき)、rem基準16pxの場合。最小値=16÷16=1rem、最大値=24÷16=1.5rem、傾き=(24−16)÷(1280−320)×100=0.8333vw、切片=(16−0.008333×320)÷16=0.8333rem。よって clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem) が生成されます。実際に320pxでは1rem(16px)、1280pxでは1.5rem(24px)にぴったり一致します。

よくある質問

clamp()で流体タイポグラフィを作るメリットは?
clamp(最小値, 推奨値, 最大値) は、ビューポート幅に応じてフォントサイズを滑らかに拡大縮小させつつ、下限と上限で頭打ちにできる関数です。従来のようにメディアクエリで複数のブレークポイントごとにfont-sizeを書き分ける必要がなく、1行で連続的にサイズが変化します。コード量が減り、どの画面幅でも読みやすいサイズを保てるため、2024〜2025年の流体タイポグラフィの標準的な手法になっています。
px→remの変換はなぜ必要?
clamp()の最小値・最大値をremで指定すると、ユーザーがブラウザの既定フォントサイズを変更した際にも文字サイズが追従し、アクセシビリティが向上します。本ツールはrem基準(既定16px)を使ってpx値をremへ変換します。例えば16pxは1rem、24pxは1.5remです。中間の傾きだけはビューポート幅に連動させたいのでvw(またはcqi)で表現します。
傾き(vwの係数)はどう計算する?
傾きは (最大フォント − 最小フォント) ÷ (最大ビューポート − 最小ビューポート) で求めます。この値は「ビューポートが1px広がるごとにフォントが何px増えるか」を表し、1vw = ビューポート幅の1%(=幅px÷100)なので、100倍するとvw係数になります。切片(rem部分)は、最小ビューポート幅のときにちょうど最小フォントになるよう逆算します。本ツールはこの計算を自動で行い、コピペ可能なclamp()式を出力します。
cqi / cqw とは何ですか?
cqi・cqw はコンテナクエリ単位で、ビューポートではなく親コンテナ(container-type を指定した要素)の幅を基準にサイズを決めます。cqi はインライン方向、cqw は幅方向のコンテナ幅の1%です。これらはBaseline 2024で広くサポートされ、カード内やサイドバー内など、画面幅ではなくコンポーネント幅に応じて文字を流体化したい場合に最適です。本ツールの単位トグルでvwとcqi/cqwを切り替えられます。
生成されたclamp()はそのまま使える?
はい。出力されたCSSはfont-sizeプロパティにそのまま貼り付けて使えます。cqi/cqwを選んだ場合は、対象要素の祖先に container-type: inline-size;(またはsize)を指定したコンテナが必要です。値は端数を小数第4位程度に丸めていますが、実用上の表示差はほぼありません。厳密な値が必要な場合は入力値を調整して再生成してください。

関連ツール

年齢・勤続年数計算カウントダウン計算和暦西暦変換