Tailwind は『デザインシステムを最短で実装するための言語』
Tailwind CSS はユーティリティファーストCSSフレームワークとして広く普及し、Next.js やReact エコシステムの定番です。本記事では編集部の視点で、運用フェーズで効くベストプラクティスを公開情報をもとに整理します。Next.js App Router 実践 もご参考に。
デザインシステム連携
(1) tailwind.config の theme でトークン定義:colors/spacing/fontSize。(2) Figma Variables との同期:CSS Variables 経由が現実解。(3) shadcn/ui:コンポーネント設計のベース。(4) カラーモード:dark/light の class 戦略。(5) レスポンシブの方針:mobile-first を徹底。
コンポーネント設計
(1) cn (clsx + twMerge):class 名のマージ。(2) cva (class-variance-authority):variant 管理。(3) @apply の濫用回避:再利用はコンポーネント化。(4) 命名規約:data 属性で状態管理。(5) Storybook 連携:UI レビューの基盤。
パフォーマンス
(1) Just-in-Time エンジン:使用クラスのみ生成。(2) content 設定:スキャン対象を絞り高速化。(3) Critical CSS:初回描画を最適化。(4) クラス文字列の動的生成回避:JIT が認識できない。(5) Safelist:動的クラスを保持する仕組み。Next.js 実践 でビルド最適化と組み合わせて。
運用で効くテクニック
(1) Prettier プラグイン:クラス順序を自動整形。(2) ESLint プラグイン:重複/typo 検出。(3) VS Code 拡張:IntelliSense / Color Preview。(4) カラー定義の一元化:tailwind.config 一本に。(5) マイグレーション戦略:v3→v4 等の対応(最新公式情報をご確認ください)。
大規模プロジェクトでの注意
(1) HTML の肥大化:class 数が増える。(2) アクセシビリティ:focus/aria/role 忘れに注意。(3) SSR と CSR の差分:dark mode 切替時の flicker 対策。(4) 独自プラグインの増殖:必要最小限に。(5) レビュー文化:見た目だけでなく設計も確認。
失敗しがちなパターン
(1) 同じUIで違う色やサイズが混在:トークン未統一。(2) レスポンシブが場当たり:ブレークポイント乱用。(3) 動的クラスでJIT外:bg-${color} 文字列補間。(4) @apply 多用でCSS肥大。(5) Storybook なし:UIレビューが目視のみ。対策は、(1)theme集約、(2)ブレークポイント方針、(3)動的クラスはSafelist、(4)コンポーネント化、(5)Storybook導入、です。