tailwind-best-practices について
Tailwind CSS v4 のパターンを適用するためのコーディングスキルです。開発者やコーディングエージェントに、現行の CSS ファースト設定とユーティリティ構文を示します。
主な機能
- 01CSS @import をエントリーポイントに使用
- 02@theme による CSS ファースト設定
- 03@tailwindcss/postcss プラグイン設定
- 04スラッシュ形式の不透明度指定
- 05コンテナクエリとカスタムユーティリティ
- 06グラデーションとユーティリティ名の更新
活用シーン
- 01Tailwind v3 のパターンからスタイルを更新
- 02Tailwind CSS v4 のデザイントークンを設定
- 03非推奨の不透明度ユーティリティを置換
- 04コンポーネント単位のレスポンシブスタイル作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ofershap/ tailwind-best-practices --skill tailwind-best-practicesインストール後、Claude Code で/tailwind-best-practicesを入力して読み込まれたか確認します。
詳細
使用する場面
Tailwind CSS コードを扱うときに、このスキルを使用します。AI エージェントは Tailwind v3 のデータでトレーニングされているため、誤った設定ファイル、非推奨のディレクティブ、削除済みのユーティリティ、冗長なクラスリストなど、古いパターンを一貫して生成します。このスキルでは、Tailwind CSS v4 のパターンを徹底します。
重要なルール
1. @tailwind ディレクティブの代わりに CSS の @import を使用する
誤り(エージェントがよく使うパターン):
@tailwind base;
@tailwind components;
@tailwind utilities;
正しい例:
@import "tailwindcss";
理由: Tailwind v4 では @tailwind ディレクティブが完全に削除されました。標準的な CSS の @import
文を使用してください。
2. @theme を使った CSS ファーストの設定を使用する
誤り(エージェントがよく使うパターン):
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
brand: "#3b82f6",
},
spacing: {
18: "4.5rem",
},
},
},
};
正しい例:
@import "tailwindcss";
@theme {
--color-brand: #3b82f6;
--spacing-18: 4.5rem;
}
理由: Tailwind v4 では、@theme ディレクティブを使った CSS ファーストの設定を使用します。ほとんどのプロジェクトでは
tailwind.config.js は必要ありません。
3. @tailwindcss/postcss プラグインを使用する
誤り(エージェントがよく使うパターン):
// postcss.config.mjs
export default {
plugins: {
"postcss-import": {},
tailwindcss: {},
autoprefixer: {},
},
};
正しい例:
// postcss.config.mjs
export default {
plugins: {
"@tailwindcss/postcss": {},
},
};
理由: v4 では、postcss-import と autoprefixer は自動的に処理されます。プラグインは
tailwindcss ではなく、@tailwindcss/postcss です。
4. モダンな不透明度の構文を使用する
誤り(エージェントがよく使うパターン):
<div class="bg-red-500 bg-opacity-50">
<div class="text-blue-600 text-opacity-75"></div>
</div>
正しい例:
<div class="bg-red-500/50">
<div class="text-blue-600/75"></div>
</div>
理由: bg-opacity-*、text-opacity-*、border-opacity-*、placeholder-opacity-*
ユーティリティは v4 で削除されました。スラッシュ修飾子の構文を使用してください。
5. カスタムカラーには CSS 変数を使用する
誤り(エージェントがよく使うパターン):
<div class="bg-[#3b82f6]"></div>
正しい例:
@theme {
--color-brand: #3b82f6;
}
<div class="bg-brand"></div>
理由: 任意の値(bg-[#3b82f6])は、できるだけ使用しないようにします。カスタムカラーを @theme で定義すると、
再利用でき、一貫性を保てます。
6. @container を使ってコンテナークエリを使用する
誤り(エージェントがよく使うパターン):
<div class="md:flex-row flex-col"></div>
正しい例(ビューポートではなく親要素のサイズに基づいてサイズを決める場合):
<div class="@container">
<div class="flex flex-col @md:flex-row">
</div>
</div>
理由: Tailwind v4 にはコンテナークエリのサポートが組み込まれています。親要素に @container を使い、
子要素に @sm:、@md:、@lg: バリアントを使うことで、コンポーネント単位のレスポンシブデザインを実現できます。
7. カスタムユーティリティには @utility を使用する
誤り(エージェントがよく使うパターン):
@layer utilities {
.content-auto {
content-visibility: auto;
}
}
正しい例:
@utility content-auto {
content-visibility: auto;
}
理由: Tailwind v4 では、カスタムユーティリティに @layer utilities ではなく @utility ディレクティブを使用します。
8. 正しい important 修飾子を使用する
誤り(エージェントがよく使うパターン):
// tailwind.config.js
module.exports = {
important: true,
};
正しい例:
@import "tailwindcss" important;
理由: v4 では important オプションの場所が設定ファイルから CSS の import 文に移動しました。
9. 名前が変更されたユーティリティを使用する
誤り(エージェントがよく使うパターン):
<div class="shadow-sm ring-1 ring-gray-900/5">
<div class="blur-sm">
<div class="rounded-sm"></div>
</div>
</div>
正しい例:
<div class="shadow-xs ring-1 ring-gray-900/5">
<div class="blur-xs">
<div class="rounded-xs"></div>
</div>
</div>
理由: v4 では、shadow-sm は shadow-xs に、shadow は shadow-sm に、blur-sm は
blur-xs に、rounded-sm は rounded-xs に変更されたほか、同様の変更が行われています。以前の -sm の値は、
以前のデフォルト値に対応するようになりました。
10. モダンなグラデーション構文を使用する
誤り(エージェントがよく使うパターン):
<div class="bg-gradient-to-r from-blue-500 to-purple-500"></div>
正しい例:
<div class="bg-linear-to-r from-blue-500 to-purple-500"></div>
理由: Tailwind v4 では bg-gradient-to-* が bg-linear-to-* に変更され、bg-conic-* や
bg-radial-* など、ほかの種類のグラデーションもサポートされました。
11. 否定には not-* バリアントを使用する
誤り(エージェントがよく使うパターン):
<div class="hover:bg-blue-500">
</div>
正しい例:
<div class="not-hover:opacity-75 hover:opacity-100"></div>
理由: Tailwind v4 では、条件に一致しない要素にスタイルを適用するための not-* バリアントが追加されました。
12. 表示時のアニメーションには @starting-style を使用する
誤り(エージェントがよく使うパターン):
.modal {
opacity: 0;
transition: opacity 0.3s;
}
.modal.open {
opacity: 1;
}
正しい例:
<div class="starting:opacity-0 opacity-100 transition-opacity duration-300"></div>
理由: Tailwind v4 では starting: バリアントを通じて @starting-style をサポートしており、JavaScript を使わずに
CSS のみで表示時のアニメーションを実現できます。
パターン
- カスタムデザイントークンはすべて
@themeブロックで定義する - エントリーポイントには
@import "tailwindcss"のみを使用する - コンポーネント単位のレスポンシブデザインにはコンテナークエリ(
@container+@md:)を使用する - 不透明度にはスラッシュ修飾子を使用する:
bg-blue-500/50、text-gray-900/75 - カスタムユーティリティには
@utility、カスタムバリアントには@variantを使用する - グラデーションには
bg-linear-to-*を使用する(bg-gradient-to-*は使用しない)
アンチパターン
- JavaScript ベースの動的設定が必要でない限り、
tailwind.config.jsは作成しないでください @tailwind base/components/utilitiesは使用せず、@import "tailwindcss"を使用してくださいbg-opacity-*、text-opacity-*は使用せず、スラッシュ修飾子の構文を使用してください- カスタムユーティリティに
@layer utilitiesは使用せず、@utilityを使用してください bg-gradient-to-*は使用せず、bg-linear-to-*を使用してください- v4 では組み込みのため、
postcss-importやautoprefixerは使用しないでください - 最小の影を指定する場合は
shadow-smを使用しないでください。現在はshadow-xsです