Tailwind CSS のヒントとコツ
公開日 2025年7月24日 著者 Remy
このドキュメントは継続的に更新されます。
レスポンシブデザインのヒント
モバイルファーストアプローチ
Tailwind CSS はモバイルファーストアプローチを採用しています。常に最小画面から設計を始めます:
<!-- モバイル:全幅、タブレット:半分幅、デスクトップ:三分の一幅 -->
<div class="w-full md:w-1/2 lg:w-1/3">
コンテンツ
</div>
要素の非表示/表示
<!-- モバイルで非表示、デスクトップで表示 -->
<div class="hidden lg:block">
デスクトップコンテンツ
</div>
<!-- モバイルで表示、デスクトップで非表示 -->
<div class="block lg:hidden">
モバイルコンテンツ
</div>
レイアウトのヒント
完璧な中央揃え
<!-- 水平および垂直中央揃え -->
<div class="flex items-center justify-center min-h-screen">
<div>中央揃えコンテンツ</div>
</div>
<!-- Grid を使用した中央揃え -->
<div class="grid place-items-center min-h-screen">
<div>中央揃えコンテンツ</div>
</div>
スティッキーフッター
<div class="min-h-screen flex flex-col">
<header class="bg-blue-500 p-4">ヘッダー</header>
<main class="flex-1 p-4">メインコンテンツ</main>
<footer class="bg-gray-800 text-white p-4">フッター</footer>
</div>
カードグリッド
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<div class="bg-white rounded-lg shadow-md p-6">カード 1</div>
<div class="bg-white rounded-lg shadow-md p-6">カード 2</div>
<div class="bg-white rounded-lg shadow-md p-6">カード 3</div>
</div>
コンポーネントスタイル
ボタンバリエーション
<!-- プライマリボタン -->
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
プライマリボタン
</button>
<!-- セカンダリボタン -->
<button class="bg-transparent hover:bg-blue-500 text-blue-700 font-semibold hover:text-white py-2 px-4 border border-blue-500 hover:border-transparent rounded">
セカンダリボタン
</button>
<!-- 危険ボタン -->
<button class="bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded">
削除
</button>
入力フィールドスタイル
<!-- 基本入力フィールド -->
<input class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" type="text" placeholder="ユーザー名">
<!-- アイコン付き入力フィールド -->
<div class="relative">
<input class="pl-10 pr-4 py-2 border rounded-lg w-full" type="text" placeholder="検索...">
<div class="absolute inset-y-0 left-0 pl-3 flex items-center">
<svg class="h-5 w-5 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
</svg>
</div>
</div>
ユーティリティ
テキストの切り詰め
<!-- 単行切り詰め -->
<p class="truncate">これは長いテキストで、切り詰められます...</p>
<!-- 複数行切り詰め(カスタム CSS が必要) -->
<p class="line-clamp-3">これは長いテキストで、3行後に切り詰められます...</p>
グラデーション背景
<div class="bg-gradient-to-r from-blue-500 to-purple-600">
グラデーション背景
</div>
<div class="bg-gradient-to-br from-pink-500 via-red-500 to-yellow-500">
多色グラデーション
</div>
シャドウエフェクト
<!-- 異なるレベルのシャドウ -->
<div class="shadow-sm">小さいシャドウ</div>
<div class="shadow">デフォルトシャドウ</div>
<div class="shadow-lg">大きいシャドウ</div>
<div class="shadow-xl">超大シャドウ</div>
<div class="shadow-2xl">最大シャドウ</div>
<!-- カラーシャドウ -->
<div class="shadow-lg shadow-blue-500/50">ブルーシャドウ</div>
アニメーションとトランジション
ホバーエフェクト
<button class="transform hover:scale-105 transition duration-300 ease-in-out">
ホバーで拡大
</button>
<div class="hover:shadow-lg transition-shadow duration-300">
ホバーシャドウ
</div>
ローディングアニメーション
<!-- スピンアニメーション -->
<div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500"></div>
<!-- パルスアニメーション -->
<div class="animate-pulse bg-gray-300 h-4 rounded"></div>
<!-- バウンスアニメーション -->
<div class="animate-bounce bg-blue-500 h-6 w-6 rounded-full"></div>
ダークモード
基本的なダークモード
<!-- HTML タグに dark クラスを追加 -->
<div class="bg-white dark:bg-gray-800 text-black dark:text-white">
ダークモード対応コンテンツ
</div>
ダークモードの切り替え
// ダークモード切り替えの JavaScript
function toggleDarkMode() {
document.documentElement.classList.toggle('dark');
}
パフォーマンス最適化
未使用スタイルのパージ
tailwind.config.js でパージ設定:
module.exports = {
content: [
'./src/**/*.{html,js,jsx,ts,tsx}',
'./public/index.html',
],
// ...
}
カスタムユーティリティクラス
// tailwind.config.js
module.exports = {
theme: {
extend: {
spacing: {
'72': '18rem',
'84': '21rem',
'96': '24rem',
}
}
}
}
デバッグのヒント
ボーダーデバッグ
<!-- レイアウトデバッグのために素早くボーダーを追加 -->
<div class="border border-red-500">
デバッグコンテナ
</div>
背景色デバッグ
<!-- 異なる背景色を使用してレイアウトを可視化 -->
<div class="bg-red-100">
<div class="bg-blue-100">
<div class="bg-green-100">
ネストされたコンテナ
</div>
</div>
</div>
一般的なパターン
カードコンポーネント
<div class="max-w-sm rounded overflow-hidden shadow-lg">
<img class="w-full" src="image.jpg" alt="画像">
<div class="px-6 py-4">
<div class="font-bold text-xl mb-2">タイトル</div>
<p class="text-gray-700 text-base">
説明テキスト...
</p>
</div>
<div class="px-6 pt-4 pb-2">
<span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2">#タグ</span>
</div>
</div>
ナビゲーションバー
<nav class="bg-blue-500 p-6">
<div class="flex items-center justify-between">
<div class="flex items-center flex-shrink-0 text-white mr-6">
<span class="font-semibold text-xl tracking-tight">ブランド</span>
</div>
<div class="block lg:hidden">
<button class="flex items-center px-3 py-2 border rounded text-blue-200 border-blue-400 hover:text-white hover:border-white">
<svg class="fill-current h-3 w-3" viewBox="0 0 20 20">
<title>メニュー</title>
<path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z"/>
</svg>
</button>
</div>
</div>
</nav>
これらのヒントは、Tailwind CSS をより効果的に使用するのに役立つはずです。練習がこれらのテクニックをマスターする最良の方法であることを忘れないでください!