Skip to content

Tailwind CSS を使いこなそう(前編)

公開日:December 23, 2024更新日:December 23, 2024
TailwindCSS📄

この章では、Tailwind CSS をさらに使いこなし、自分のプロジェクトに最適な形にカスタマイズしていく方法を学びましょう。前編では、設定ファイル tailwind.config.js を編集して、デザインの基盤となる色、フォント、スペースを調整したり、独自のユーティリティクラスを追加したりする方法を解説します。

1. 設定ファイル(tailwind.config.js)をカスタマイズしよう

Tailwind CSS の大きな魅力の一つは、設定ファイル tailwind.config.js を使って、デザインを自由にカスタマイズできる ことです。このファイルを編集することで、デフォルトのユーティリティクラスを変更したり、新しいユーティリティクラスを追加したりすることができます。

まずは、tailwind.config.js の基本的な構造を見てみましょう。

javascript
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./*.html"], // Tailwind CSS を適用するファイルを指定
  theme: {
    extend: {
      // デフォルトのテーマを拡張する場合はここに記述
    },
  },
  plugins: [], // プラグインを使用する場合はここに記述
}

このファイルは、主に contentthemeplugins の 3 つのセクションで構成されています。

  • content: Tailwind CSS を適用するファイルを指定します。例えば、"./src/**/*.html" とすれば、src フォルダー内のすべての HTML ファイルが対象になります。
  • theme: 色、フォント、スペースなどのデザインの基本設定を記述します。
  • plugins: Tailwind CSS の機能を拡張するためのプラグインを指定します。

theme セクションの中には、extend というオブジェクトがあります。ここに追加した設定は、デフォルトのテーマにマージされます。 一方、extend の外に記述した設定は、デフォルトのテーマを上書きします。

2. 色、フォント、スペースを自分のプロジェクトに合わせて調整!

それでは、tailwind.config.js を使って、色、フォント、スペースを自分のプロジェクトに合わせて調整してみましょう。

色のカスタマイズ

デフォルトでは、Tailwind CSS には多くの色が用意されていますが、プロジェクトによっては、独自の色を使いたい場合もあるでしょう。tailwind.config.jstheme.extend.colors に新しい色を追加することで、オリジナルのカラーパレットを定義できます。

例えば、以下のように primarysecondary という名前の色を追加してみましょう。

javascript
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./*.html"],
  theme: {
    extend: {
      colors: {
        primary: '#007bff', // プライマリーカラー
        secondary: '#6c757d', // セカンダリーカラー
      },
    },
  },
  plugins: [],
}

これで、bg-primarytext-primaryborder-primary などのユーティリティクラスで、#007bff の色を使えるようになります。bg-secondarytext-secondary なども同様です。

フォントのカスタマイズ

同様に、theme.extend.fontFamily でフォントファミリーをカスタマイズすることもできます。

例えば、以下のように sans という名前のフォントファミリーを追加してみましょう。

javascript
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./*.html"],
  theme: {
    extend: {
      fontFamily: {
        sans: ['Inter', 'ui-sans-serif', 'system-ui', ...], // フォントファミリーを配列で指定
      },
    },
  },
  plugins: [],
}

これで、font-sans というユーティリティクラスで、Interui-sans-serifsystem-ui などのフォントを指定できるようになります。

スペースのカスタマイズ

theme.extend.spacing で、マージンやパディングなどのスペースに関する設定をカスタマイズすることもできます。

例えば、以下のように 80 という名前のスペースを追加してみましょう。

javascript
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./*.html"],
  theme: {
    extend: {
      spacing: {
        '80': '20rem', // 1rem = 16px なので、20rem は 320px に相当
      },
    },
  },
  plugins: [],
}

これで、m-80p-80w-80h-80 などのユーティリティクラスで、20rem のスペースを指定できるようになります。

これらの設定を変更したら、ターミナルで npm run build を実行して、CSS を再生成するのを忘れないでください。

3. 独自のユーティリティクラスを追加してみよう

tailwind.config.js では、既存のユーティリティクラスをカスタマイズするだけでなく、独自のユーティリティクラスを追加する こともできます。

例えば、text-gradient という、テキストにグラデーションを適用するユーティリティクラスを追加してみましょう。

javascript
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./*.html"],
  theme: {
    extend: {
      colors: {
        primary: '#007bff',
        secondary: '#6c757d',
      },
      fontFamily: {
        sans: ['Inter', 'ui-sans-serif', 'system-ui', ...],
      },
      spacing: {
        '80': '20rem',
      },
    },
  },
  plugins: [
    function ({ addUtilities }) {
      const newUtilities = {
        '.text-gradient': {
          background: 'linear-gradient(to right, #007bff, #6c757d)',
          '-webkit-background-clip': 'text',
          '-webkit-text-fill-color': 'transparent',
        },
      }
      addUtilities(newUtilities)
    }
  ],
}

ここでは、plugins セクションに、addUtilities 関数を使って新しいユーティリティクラスを追加しています。

text-gradient クラスは、以下のような CSS を生成します。

css
.text-gradient {
  background: linear-gradient(to right, #007bff, #6c757d);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

これで、index.htmltext-gradient クラスを使ってみましょう。

html
<h1 class="text-3xl font-bold underline mb-8 text-gradient">Tailwind CSS の練習</h1>

h1 タグに text-gradient クラスを追加しました。

ブラウザで index.html を表示すると、h1 タグのテキストにグラデーションが適用されているのが確認できるはずです。

このように、tailwind.config.js を使えば、自分のプロジェクトに必要なユーティリティクラスを自由に追加することができます。