カスタマイズ
tailwind.config.jsでプロジェクトに合わせて設定
設定ファイル
tailwind.config.js
基本的な設定ファイル構造
javascript
/** @type {import('tailwindcss').Config} */
export default {
// スキャン対象のファイル
content: [
'./src/**/*.{html,js,svelte,ts}',
],
// ダークモードの方式
darkMode: 'class',
// テーマのカスタマイズ
theme: {
extend: {
// ここに追加
}
},
// プラグイン
plugins: [],
}プレビュー
content: スキャン対象
darkMode: ダークモード設定
theme: テーマカスタマイズ
plugins: プラグイン追加
カスタムカラー
色の追加
独自のブランドカラーを定義
javascript
// tailwind.config.js
export default {
theme: {
extend: {
colors: {
// シンプルな追加
brand: '#ff6b35',
// パレット形式
primary: {
50: '#f0f9ff',
100: '#e0f2fe',
200: '#bae6fd',
300: '#7dd3fc',
400: '#38bdf8',
500: '#0ea5e9',
600: '#0284c7',
700: '#0369a1',
800: '#075985',
900: '#0c4a6e',
},
},
},
},
}
// 使用例
// <div class="bg-brand">ブランドカラー</div>
// <div class="text-primary-500">プライマリ500</div>プレビュー
bg-brand
フォント
フォントファミリー
カスタムフォントを追加
javascript
// tailwind.config.js
export default {
theme: {
extend: {
fontFamily: {
// カスタムフォント
sans: ['Inter', 'sans-serif'],
display: ['Poppins', 'sans-serif'],
mono: ['JetBrains Mono', 'monospace'],
jp: ['Noto Sans JP', 'sans-serif'],
},
},
},
}
// 使用例
// <p class="font-sans">基本フォント</p>
// <h1 class="font-display">見出し用</h1>
// <code class="font-mono">コード</code>プレビュー
font-sans: 本文テキスト
font-display: 見出し
font-mono: コードスペーシング
カスタムスペーシング
独自の値を追加
javascript
// tailwind.config.js
export default {
theme: {
extend: {
spacing: {
'18': '4.5rem', // 72px
'88': '22rem', // 352px
'128': '32rem', // 512px
},
},
},
}
// 使用例
// <div class="p-18">padding 72px</div>
// <div class="w-88">width 352px</div>
// <div class="mt-128">margin-top 512px</div>プレビュー
p-18 → 4.5rem (72px)
w-88 → 22rem (352px)
mt-128 → 32rem (512px)
ブレークポイント
カスタムブレークポイント
独自の画面幅を設定
javascript
// tailwind.config.js
export default {
theme: {
// 完全に上書き
screens: {
'sm': '640px',
'md': '768px',
'lg': '1024px',
'xl': '1280px',
'2xl': '1536px',
},
// または extend で追加
extend: {
screens: {
'xs': '475px', // 追加
'3xl': '1920px', // 追加
},
},
},
}
// 使用例
// <div class="xs:text-sm">475px以上で適用</div>プレビュー
xs: 475px // カスタム追加
sm: 640px
md: 768px
lg: 1024px
xl: 1280px
2xl: 1536px
3xl: 1920px // カスタム追加
アニメーション
カスタムアニメーション
独自のアニメーションを追加
javascript
// tailwind.config.js
export default {
theme: {
extend: {
animation: {
'fade-in': 'fadeIn 0.5s ease-out',
'slide-up': 'slideUp 0.3s ease-out',
'bounce-slow': 'bounce 2s infinite',
},
keyframes: {
fadeIn: {
'0%': { opacity: '0' },
'100%': { opacity: '1' },
},
slideUp: {
'0%': { transform: 'translateY(20px)', opacity: '0' },
'100%': { transform: 'translateY(0)', opacity: '1' },
},
},
},
},
}
// 使用例
// <div class="animate-fade-in">フェードイン</div>プレビュー
animate-pulse
animate-fade-in
プラグイン
公式プラグイン
追加機能を有効化
javascript
// インストール
// npm install @tailwindcss/typography
// npm install @tailwindcss/forms
// tailwind.config.js
export default {
plugins: [
require('@tailwindcss/typography'),
require('@tailwindcss/forms'),
require('@tailwindcss/aspect-ratio'),
],
}
// Typography プラグインの使用例
// <article class="prose lg:prose-xl">
// <h1>見出し</h1>
// <p>本文...</p>
// </article>プレビュー
@tailwindcss/typography
// 記事スタイル(prose)
@tailwindcss/forms
// フォーム要素のリセット
セーフリスト
動的クラスを保持
JSで生成するクラスを削除しない
javascript
// tailwind.config.js
export default {
// 常に含めるクラス
safelist: [
'bg-red-500',
'bg-green-500',
'bg-blue-500',
// パターンマッチ
{
pattern: /bg-(red|green|blue)-(100|500|900)/,
},
],
}
// これで動的クラスも動作する
// const color = 'red';
// <div class={`bg-${color}-500`}>動的カラー</div>プレビュー
// Tailwindは使用されていないクラスを削除
// safelistで常に残すクラスを指定