Tailwind CSSは、ユーティリティクラスをHTMLに直接書いてスタイリングする「ユーティリティファースト」のCSSフレームワークです。慣れるとCSS設計に悩む時間がほぼゼロになり、開発速度が大きく上がります。本記事では、Tailwindの基本の使い方から、現場で効く実践テクニックまでをまとめます。
Tailwind CSSとは
Tailwind CSSは p-4(padding)、text-lg(font-size)、flex(display:flex)のように、用途別に細かく分割されたユーティリティクラスを組み合わせてUIを構築するフレームワークです。Bootstrapのような「完成済みUIコンポーネント」とは思想が異なり、自由度を保ちながら高速にデザインを実装できます。
導入と基本セットアップ
Tailwind CSS v4以降は、設定がさらに簡素化されました。Next.jsやViteへの導入は次のような手順で行います。
# インストール
npm install tailwindcss @tailwindcss/postcss
# globals.css などに 1 行追加
@import "tailwindcss";
これだけでビルド時にユーティリティクラスが自動生成されるため、すぐに className="p-4 bg-gray-100" のような書き方が使えるようになります。
基本の書き方
<button class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition">
ボタン
</button>
上記だけで、パディング・背景色・テキスト色・角丸・ホバー時の色変化・トランジションが完成します。CSSファイルを別途書く必要はありません。
開発効率を爆上げする実践テクニック
1. レスポンシブはbreakpointプレフィックス
<div class="text-sm md:text-base lg:text-lg">
画面幅に応じてフォントサイズが変わる
</div>
sm: md: lg: xl: のプレフィックスでメディアクエリを書かずにレスポンシブが完結します。
2. ダークモード対応はdark:プレフィックス
<div class="bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100">
ダークモードでも見やすい配色
</div>
3. 任意の値は[]ブラケットで指定
<div class="top-[117px] bg-[#1da1f2] w-[42rem]">
デザインカンプ通りのピクセル指定も可能
</div>
4. clsx / cva でクラスを動的に組み立てる
props によってクラスを切り替える場合、clsx や class-variance-authority(cva)を使うと可読性が大きく上がります。
import { clsx } from 'clsx';
<button className={clsx(
'px-4 py-2 rounded',
variant === 'primary' && 'bg-blue-600 text-white',
variant === 'danger' && 'bg-red-600 text-white',
)}>
ボタン
</button>
5. @apply を乱用しない
Tailwindでは @apply でユーティリティをCSSにまとめられますが、これを多用すると「Tailwindを使う意味」がなくなります。共通化したい場合はReactコンポーネント単位で抽出するのが基本です。
6. 公式プラグインで効率化
- @tailwindcss/typography:記事本文(prose)のスタイリング
- @tailwindcss/forms:input/selectなどフォーム要素の整形
- @tailwindcss/aspect-ratio:縦横比の維持
7. IntelliSense拡張は必須
VS Code拡張「Tailwind CSS IntelliSense」を入れると、クラス補完・ホバーで適用CSSプレビュー・タイポ検知が一気に効くようになります。導入していない場合は最優先で入れましょう。
Tailwindが向いているケース
- 独自デザインのプロダクトを最短で形にしたい
- CSS設計(BEM等)の議論を減らしたい
- 少人数チームで一貫したUIを保ちたい
- React / Vue / Svelte などコンポーネント志向のフレームワークと組み合わせる
まとめ
Tailwind CSSは、最初のクラス名暗記コストさえ越えれば、CSSの命名・設計から解放される強力な選択肢です。「ユーティリティ → コンポーネント抽出 → デザイントークン」の順に段階的に整理していけば、保守性も自然と保てます。まずは公式の「Playground」で短いUIを書き起こしてみるところから始めるのがおすすめです。