Tailwind CSS パターン (v4 - 2025)
CSS ネイティブ設定を備えたモダンなユーティリティファースト CSS。
使用するべき時
Tailwind v4 の設定、CSS ファースト テーマとデザイントークンの使用、またはコンテナクエリとモダン Tailwind パターンの実装時にこのスキルを使用してください。
1. Tailwind v4 アーキテクチャ
v3 からの変更点
| v3 (レガシー) | v4 (現在) |
|---|
tailwind.config.js | CSS ベースの @theme ディレクティブ |
| PostCSS プラグイン | Oxide エンジン (10 倍高速) |
| JIT モード | ネイティブ、常時有効 |
| プラグインシステム | CSS ネイティブ機能 |
@apply ディレクティブ | 動作するが非推奨 |
v4 コアコンセプト
| コンセプト | 説明 |
|---|
| CSS ファースト | JavaScript ではなく CSS での設定 |
| Oxide エンジン | Rust ベースのコンパイラ、大幅に高速化 |
| ネイティブネスティング | PostCSS なしの CSS ネスティング |
| CSS 変数 | すべてのトークンが --* 変数として公開 |
2. CSS ベースの設定
テーマ定義
@theme {
/* Colors - semantic names を使用 */
--color-primary: oklch(0.7 0.15 250);
--color-surface: oklch(0.98 0 0);
--color-surface-dark: oklch(0.15 0 0);
/* Spacing scale */
--spacing-xs: 0.25rem;
--spacing-sm: 0.5rem;
--spacing-md: 1rem;
--spacing-lg: 2rem;
/* Typography */
--font-sans: 'Inter', system-ui, sans-serif;
--font-mono: 'JetBrains Mono', monospace;
}
拡張と上書きの使い分け
| アクション | 使用する場合 |
|---|
| 拡張 | デフォルト値に加えて新しい値を追加 |
| 上書き | デフォルトスケール全体を置き換え |
| セマンティックトークン | プロジェクト固有の命名 (primary, surface) |
3. コンテナクエリ (v4 ネイティブ)
ブレークポイント vs コンテナ
| タイプ | 応答する対象 |
|---|
ブレークポイント (md:) | ビューポート幅 |
コンテナ (@container) | 親要素の幅 |
コンテナクエリの使用法
| パターン | クラス |
|---|
| コンテナの定義 | 親要素に @container |
| コンテナブレークポイント | 子要素に @sm:、@md:、@lg: |
| 名前付きコンテナ | 特異性のため @container/card |
使用する場合
| シナリオ | 使用 |
|---|
| ページレベルレイアウト | ビューポートブレークポイント |
| コンポーネントレベルのレスポンシブ | コンテナクエリ |
| 再利用可能なコンポーネント | コンテナクエリ (文脈独立) |
4. レスポンシブデザイン
ブレークポイントシステム
| プレフィックス | 最小幅 | ターゲット |
|---|
| (なし) | 0px | モバイルファーストベース |
sm: | 640px | 大型電話 / 小型タブレット |
md: | 768px | タブレット |
lg: | 1024px | ノートパソコン |
xl: | 1280px | デスクトップ |
2xl: | 1536px | 大型デスクトップ |
モバイルファースト原則
- 最初にモバイルスタイルを記述 (プレフィックスなし)
- プレフィックス付きで大きな画面のオーバーライドを追加
- 例:
w-full md:w-1/2 lg:w-1/3
5. ダークモード
設定戦略
| メソッド | 動作 | 使用する場合 |
|---|
class | .dark クラスで切り替え | 手動テーマスイッチャー |
media | システム設定に従う | ユーザーコントロールなし |
selector | カスタムセレクタ (v4) | 複雑なテーミング |
ダークモードパターン
| 要素 | ライト | ダーク |
|---|
| 背景 | bg-white | dark:bg-zinc-900 |
| テキスト | text-zinc-900 | dark:text-zinc-100 |
| ボーダー | border-zinc-200 | dark:border-zinc-700 |
6. モダンレイアウトパターン
Flexbox パターン
| パターン | クラス |
|---|
| センター (両軸) | flex items-center justify-center |
| 垂直スタック | flex flex-col gap-4 |
| 水平列 | flex gap-4 |
| スペース均等配置 | flex justify-between items-center |
| ラップグリッド | flex flex-wrap gap-4 |
グリッドパターン
| パターン | クラス |
|---|
| オートフィット レスポンシブ | grid grid-cols-[repeat(auto-fit,minmax(250px,1fr))] |
| 非対称 (Bento) | grid grid-cols-3 grid-rows-2 (スパン付き) |
| サイドバーレイアウト | grid grid-cols-[auto_1fr] |
注: 対称的な 3 カラムグリッドより、非対称/Bento レイアウトを推奨します。
7. モダンカラーシステム
OKLCH vs RGB/HSL
| フォーマット | 利点 |
|---|
| OKLCH | 知覚的に均一、デザインに最適 |
| HSL | 直感的な色相/彩度 |
| RGB | レガシー互換性 |
カラートークンアーキテクチャ
| レイヤー | 例 | 目的 |
|---|
| プリミティブ | --blue-500 | 生色値 |
| セマンティック | --color-primary | 目的ベースの命名 |
| コンポーネント | --button-bg | コンポーネント固有 |
8. タイポグラフィシステム
フォントスタックパターン
| タイプ | 推奨 |
|---|
| Sans | 'Inter', 'SF Pro', system-ui, sans-serif |
| Mono | 'JetBrains Mono', 'Fira Code', monospace |
| Display | 'Outfit', 'Poppins', sans-serif |
タイプスケール
| クラス | サイズ | 用途 |
|---|
text-xs | 0.75rem | ラベル、キャプション |
text-sm | 0.875rem | セカンダリテキスト |
text-base | 1rem | 本文 |
text-lg | 1.125rem | リードテキスト |
text-xl+ | 1.25rem+ | 見出し |
9. アニメーション & トランジション
ビルトインアニメーション
| クラス | エフェクト |
|---|
animate-spin | 連続回転 |
animate-ping | 注目パルス |
animate-pulse | 微細な不透明度パルス |
animate-bounce | バウンスエフェクト |
トランジションパターン
| パターン | クラス |
|---|
| すべてのプロパティ | transition-all duration-200 |
| 特定 | transition-colors duration-150 |
| イージング付き | ease-out または ease-in-out |
| ホバーエフェクト | hover:scale-105 transition-transform |
10. コンポーネント抽出
抽出するべき時
| シグナル | アクション |
|---|
| 同じクラス組み合わせが 3 回以上 | コンポーネント抽出 |
| 複雑な状態バリアント | コンポーネント抽出 |
| デザインシステム要素 | 抽出 + ドキュメント化 |
抽出メソッド
| メソッド | 使用する場合 |
|---|
| React/Vue コンポーネント | 動的、JavaScript 必要 |
CSS の @apply | 静的、JavaScript 不要 |
| デザイントークン | 再利用可能な値 |
11. アンチパターン
| 避けること | やること |
|---|
| あちこちで arbitrary values を使用 | デザインシステムスケールを使用 |
!important | 特異性を正しく修正 |
インライン style= | ユーティリティを使用 |
| 長いクラスリストの重複 | コンポーネント抽出 |
| v3 設定を v4 と混在 | CSS ファースト に完全に移行 |
@apply を多用 | コンポーネントを優先 |
12. パフォーマンス原則
| 原則 | 実装 |
|---|
| 未使用を削除 | v4 で自動 |
| ダイナミズムを避ける | テンプレート文字列クラスなし |
| Oxide を使用 | v4 で デフォルト、10 倍高速 |
| ビルドをキャッシュ | CI/CD キャッシング |
覚えておいて: Tailwind v4 は CSS ファースト。CSS 変数、コンテナクエリ、ネイティブ機能を活用してください。設定ファイルはオプショナルになりました。
制限事項
- このスキルは上記で説明されているスコープに明確に一致する場合にのみ使用してください。
- 出力を環境固有の検証、テスト、または専門家のレビューの代替として扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、一度停止して説明を求めてください。