Fluid Typographyの作り方|vwとclampでレスポンシブ対応を自動化
CSS レスポンシブ フロントエンド UI
結論
clamp(最小値, 推奨値, 最大値) を使うのが現在の手法。ブレイクポイントごとにメディアクエリを大量に書く必要がなくなります。
従来のレスポンシブとの違い
これまでは「スマホなら16px、PCなら24px」と段階的に切り替えていましたが、Fluid Typographyでは「スマホからPCにかけて16px〜24pxの間を無段階に変化」させます。
clamp関数の書き方
h1 {
/* 最小32px、最大64px。その間は画面幅の5% + 1rem に追随 */
font-size: clamp(2rem, 5vw + 1rem, 4rem);
}
📏 この場でFluid Typographyを計算する
実装のコツ
- 最小値を設定する — 画面が極端に狭くなった時に文字が読めなくなるのを防ぎます。
- アクセシビリティに配慮 —
vwだけでなくremを加算(例:5vw + 1rem)することで、ブラウザのズーム機能が効くようにします。 - デザインの一貫性 — ページ全体ですべての要素をFluidにするのではなく、大きな見出し(Heading)から優先的に導入するのが効果的です。
関連記事
この記事は フロントエンド・CSS テーマの一環です。あわせて読むと理解が深まる関連記事をまとめました。
| トピック | 記事 |
|---|---|
| CSS Grid vs Flexbox | CSS Grid vs Flexbox|どっちを使う?使い分けと実戦レイアウト |
| CSS Container Queries 完全ガイド | CSS Container Queries 完全ガイド|@container・size vs inline-size・コンポーネント単位レスポンシブ |
| CSSですりガラス(Glassmorphism)を作る方法 | CSSですりガラス(Glassmorphism)を作る方法|backdrop-filterの使い方 |
| CSSで浮き出るカードを作る | CSSで浮き出るカードを作る|きれいなbox-shadowの数値設定 |
| CSSの単位はpxとremどちらが良い? | CSSの単位はpxとremどちらが良い?|基準16pxの理由と使い分け |
| line-height計算 - 読みやすい行間をフォントサイズから算出 | line-height計算 - 読みやすい行間をフォントサイズから算出 |
| Tailwind CSSでデザインシステムの色を管理する方法 | Tailwind CSSでデザインシステムの色を管理する方法 |
| 色のコントラストチェック | 色のコントラストチェック|color contrastの使い方と注意点 |
| React SSR Hydration Mismatch 原因と修正 | React SSR Hydration Mismatch 原因と修正|Next.js・Astro対応ガイド |
| HTML Popover API 完全ガイド | HTML Popover API 完全ガイド|popover・popovertarget・light dismiss・アクセシビリティ |
| Fluid Typography | Fluid Typography|clamp() で可変フォント |
| CSS Gradient 作り方 | CSS Gradient 作り方|linear・radial の指定 |