tailwind-css について
tailwind-css は、Tailwind CSS v4 の実装やレビューに使うスキルです。最新ドキュメントと生成 CSS を確認し、ブラウザーでのレイアウト動作も検証します。
主な機能
- 01Tailwind CSS v4 のドキュメント確認
- 02ユーティリティクラスの記述規則
- 03生成 CSS の確認
- 04スクロール、オーバーレイ、フォーカスの検証
- 05ビルドと移行のチェック
活用シーン
- 01v4 のスタイル実装やレビュー
- 02ユーティリティクラスの欠落調査
- 03スクロールコンテナー内のオーバーレイ確認
- 04スタイル変更後のビルド検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ iliaal/ ai-skills --skill tailwind-cssインストール後、Claude Code で/tailwind-cssを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
SPEC.mdreferences/class-generation-and-composition.mdcomponent-patterns.mdconfiguration-and-migration.mdlayout-patterns.mdv3-to-v4-migration.md詳細
Tailwind CSS v4
実装前に確認すること:v4 固有の構文(@theme、@variant、CSS ファーストの設定)については、コードを書く前に Context7(query-docs)で最新のドキュメントを調べてください。Tailwind v4 は v3 から大幅に変更されているため、学習データが古い可能性があります。
作業ルール
- ユーティリティ名は完全なソースリテラルのままにし、対象ファイルがスキャンされていることを確認します。
- 共有のデザイントークンと、一貫した可視性の制御方法を使います。
- ソースや設定を変更した後は生成された CSS を確認します。JSX の文字列だけでは、ユーティリティが存在する証明になりません。
- レイアウトの包含関係を変更する場合は、ブラウザーでスクロール、オーバーレイ、フォーカスの動作をテストします。
コーディングルール
space-x/space-yよりgapを使う --gapは折り返しに対応しますが、space-*は折り返し時に正しく動作しません- 同じ寸法には
w-* h-*よりsize-*を使う min-h-screenよりmin-h-dvhを使う -- dvh はモバイルブラウザーのツールバーを考慮します- 不透明度修飾子(
bg-black/50)を使う --*-opacity-*ユーティリティは v4 で削除されています - 任意の値よりデザイントークンを使う --
[#hex]を使う前に@themeを確認します - クラスを動的に組み立てない --
text-${color}-500は検出されません。完全なクラス名を使います @layerと組み合わせた@applyより@utilityを使う -- v4 では、@layerクラスへの@applyは失敗します- 最後の子要素のマージンより、親要素のパディングを使う -- 最後の子要素に下マージンを設定するのではなく、コンテナーにパディングを設定します
overflow-x-autoは両軸のスクロールコンテナーになります -- このユーティリティが出力するのはoverflow-x: autoだけですが、CSS Overflow 3 では、どちらかの軸がスクロール可能になると、もう一方の軸のvisible値もautoに計算されます。そのため、横方向のパンを可能にする目的だけで追加したラッパーが、縦方向にはみ出す要素を気付かないうちにクリップしたりスクロールさせたりします。対象には、ポータル化されていないドロップダウン、ポップオーバー、ツールチップ、カスタムセレクト、フォーカスリングがあります。jsdom はレイアウトを行わないため、ユニットテストでは検出できません。新しいラッパー内にレンダリングされるコンポーネントをすべて列挙し、オーバーレイに類するものがラッパーの外に表示されることをそれぞれ確認します。ポータル化は明示的に有効にする必要があり、自動ではありません。Radix では*.Portalが*.Contentを囲む別個のパーツとして公開されているため、ライブラリが処理してくれると思い込まず、コンポーネントを確認してください。同じ計算値のルールは逆向きにも当てはまります。ページ全体のスクロールバーを疑う前に、すべての祖先要素のoverflowをたどり、実際にスクロールしている要素を特定します- ネイティブの
hidden属性と表示ユーティリティを併用して可視性を表現しない -- バージョンによって、両者は逆方向に解決されます。v4 の Preflight には[hidden]:where(:not([hidden="until-found"])) { display: none !important }が含まれているため、属性が優先され、表示されるはずの要素が非表示のままになります。一方、v3、または Preflight が無効化されているか読み込まれていない環境では、詳細度にかかわらず、作成者由来のユーティリティ(block、flex、grid)が UA 由来の[hidden]ルールより優先されるため、hiddenが設定されていても要素が画面に表示されます。切り替える仕組みは一つにします:clsx(base, open ? 'block' : 'hidden')。いずれの状態も jsdom のtoBeInTheDocumentでは検出できません。toBeVisibleまたは実際のブラウザーエンジンでのみ検出できます
確認
- エラーゼロでビルドが成功する(
npm run buildなど) - 変更したファイルに v3 のクラス名が残っていない(利用可能な場合は
@tailwindcss/upgrade --dry-runで確認) - 同じ要素に競合するクラスがない
参考資料
- コンポーネントのパターン -- tailwind-variants のスロット、CVA、複合コンポーネント
- レイアウトのパターン -- グリッド領域、コンテナークエリ、z-index の管理、流動的なタイポグラフィ
タスク固有のリファレンス
対応する動作を実装またはレビューする前に、関連するリファレンスを確認してください。
- テーマトークン、ビルド設定、バージョン移行、ダークモード、またはスタイルの欠落については、configuration-and-migration.md を参照してください。
- クラスのマージ、スキャン対象のパス、バリアント、または lint との連携については、class-generation-and-composition.md を参照してください。
対応するトピックに該当する場合は、既存の専門リファレンスも参照してください。
コメント
Markdown 対応