【初心者向け】tailwind.config.jsが見当たらない理由とCSSファースト時代の正しい使い方

tailwind-config-js css

「Tailwind config js ない」と検索して、この記事にたどり着いた方は、きっとこんな疑問や不安を感じているのではないでしょうか?

「Tailwind CSSを導入したのに、tailwind.config.jsファイルが見当たらない…」

「設定ファイルがないけど、ちゃんとカスタマイズできるの?」

実はその疑問、とても自然なものなんです。

Tailwind CSS v4からは大きな仕様変更があり、これまで当たり前だったtailwind.config.jsが”なくても使える”ようになりました。とはいえ、突然の変化に戸惑う方も多いはず。特に、v3以前の経験がある方や、プラグインを使いたい場合には、「本当にこのままで大丈夫?」と感じてしまうのも無理はありません。

この記事では、そんな不安を解消するために、Tailwind CSSの設定方法がどのように変わったのかをわかりやすく解説しています。

CSSファーストの新しい考え方から、設定ファイルなしでもテーマや色を管理する方法、旧バージョンからの移行手順、さらには設定ファイルが必要になるケースまで、幅広くカバーしています。

記事のポイント

  • tailwind.config.js が見当たらない理由とその背景を丁寧に解説
  • Tailwind CSS v4の「CSSファースト」設計について紹介
  • 設定ファイルなしでカスタマイズする方法をステップ付きで解説
  • v3以前のプロジェクトからのマイグレーション手順
  • 実際に設定ファイルが必要になるケースやその対応策

はじめに:なぜ「tailwind.config.js」がないのか?

Tailwind CSS を使って開発を始めようとしたとき、真っ先に「tailwind.config.js がない」という状態に戸惑った方も多いのではないでしょうか。特に、他のプロジェクトやチュートリアルではこの設定ファイルが存在していたのに、自分のプロジェクトには見当たらない……。このような状況は、Tailwind CSS のバージョン変更初期設定の変化が原因であることがほとんどです。

あなたのプロジェクトにtailwind.config.jsがない理由

Tailwind CSS を導入する方法はいくつかありますが、最近では CDN 経由や PostCSS 経由、さらにはフレームワーク統合など、選択肢が非常に広がっています。これにより、「tailwind.config.js」を必ずしも手動で作成しない構成が一般化しています。

以下のようなケースでは、設定ファイルが自動生成されなかったり、そもそも不要な場合もあります。

よくある原因

  • npx tailwindcss init を実行していない(初期化されていない)
  • CDN バージョンで使用している(設定ファイルは使われない)
  • Tailwind CSS v4以降を使っている(CSSファースト設定により config.js が不要になる場合あり)
  • Next.js や Vite などのツールチェーンで自動構成されている

解決方法:まずは初期化してみる

まず、tailwind.config.js を生成したい場合は、以下のコマンドを実行してください。

npx tailwindcss init -p

このコマンドで、以下の2つのファイルが生成されます:

  • tailwind.config.js — Tailwind の設定ファイル
  • postcss.config.js — Tailwind をビルドに統合するためのPostCSS設定
// tailwind.config.js(初期生成時の内容)
module.exports = {
  content: [
    "./index.html",
    "./src/**/*.{js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}

解説:

  • content: Tailwind がクラスを検出する対象ファイル
  • theme: テーマのカスタマイズ領域(カラー、フォントなど)
  • plugins: プラグインを読み込む場合に指定する配列

旧バージョン(v3以前)におけるtailwind.config.jsの役割と標準的な配置パス

Tailwind CSS v3 までは、tailwind.config.js は非常に重要な役割を果たしていました。このファイルは以下のような用途に使用されていました。

  • 独自のカラーパレットの定義
  • レスポンシブブレークポイントの変更
  • フォントファミリーやスペーシングの調整
  • プラグインの読み込みと設定

通常の配置パス

ほとんどの場合、tailwind.config.js はプロジェクトルートに置かれます。例えば以下のような構成です:

my-project/
├── tailwind.config.js
├── postcss.config.js
├── src/
│   └── index.css
├── package.json
└── ...

役割の例

// tailwind.config.js のカスタムテーマ例
module.exports = {
  theme: {
    extend: {
      colors: {
        primary: '#1da1f2',
        secondary: '#14171a',
      },
      fontFamily: {
        sans: ['Helvetica', 'Arial', 'sans-serif'],
      },
    },
  },
}

補足:公式ドキュメントも確認しよう

設定ファイルやバージョンごとの違いに関しては、公式ドキュメントの確認が最も信頼できます。以下のリンクから、使用中のバージョンに応じた設定方法を参照してください。

Tailwind CSS v4での大きな仕様変更:CSSファースト設定とは?

Tailwind CSS v4 の登場は、これまでの開発スタイルに大きな転換をもたらしました。特に注目すべきなのは、「CSSファースト設定」という新しい思想です。この変更によって、Tailwind の運用において tailwind.config.js が不要なケースが増え、「tailwind.config.js ない」という状態がむしろ自然な構成となる場面もあります。

ここでは、このCSSファースト設定の背景と、Tailwind CSS v4 において tailwind.config.js がなぜ不要になったのか、その理由を詳しく解説します。

Tailwind CSS v4でtailwind.config.jsが不要になった理由

v4 からは、これまで設定ファイルで行っていたスタイルのカスタマイズを、CSSファイル内に直接記述できるようになりました。これにより、Tailwind CSS の設定がより直感的かつ柔軟に扱えるようになっています。

主な変更点

  • @theme@source@plugin などの ディレクティブをCSS内で使用可能
  • カスタムカラーやフォントなどを CSS変数で柔軟に定義
  • tailwind.config.js はオプション扱いに

つまり、設定ファイルをわざわざ用意しなくても、スタイルはCSSに集約して完結できるのです。

CSSファースト設定の概要とメリット

CSSファーストとは?

CSSファースト設定とは、Tailwind CSS の構成を JavaScript(tailwind.config.js)ではなく、CSSファイル内で直接記述するアプローチのことです。

これは、これまでの「設定はJavaScript、スタイルはCSS」という分離型アーキテクチャから、「設定とスタイルをCSSに統合する」という方向へとシフトしたことを意味します。

主なメリット

学習コストが下がる

初心者でも CSS ファイルの中でそのまま設定できるため、Tailwind の導入障壁が下がります。

ファイル構成がシンプルに

tailwind.config.js を作らずに済むため、ファイル数が減り、プロジェクト構成がスッキリします。

コンポーネント志向との親和性が高い

CSS モジュールや CSS-in-JS などとの併用もしやすくなり、より柔軟な構成が可能になります。

CSSファースト設定を使った基本例

以下のように、index.css などのメインCSSファイル内にテーマやカスタマイズを記述します。

/* index.css */

@tailwind base;
@tailwind components;
@tailwind utilities;

/* カスタムカラーとフォントの定義 */
@theme {
  colors: {
    primary: #1da1f2;
    secondary: #14171a;
  };
  fontFamily: {
    sans: ['Helvetica', 'Arial', 'sans-serif'];
  };
}

解説:

  • @theme: CSS内でカスタムテーマを宣言できる新ディレクティブ
  • Tailwind がこの情報をもとにユーティリティクラスを自動生成

このように、従来の設定内容を tailwind.config.js に書かなくても、すべてCSSファイル内で完結できるのが v4 の大きな特徴です。

注意点と補足

  • Tailwind CSS v4 を使用しているかどうかは、package.json の依存関係から確認できます。
  • 一部の Tailwind プラグインはまだ tailwind.config.js を前提としている場合があります(詳しくは後述の FAQ セクションで解説)。
// package.json の例
"devDependencies": {
  "tailwindcss": "^4.0.0",
  ...
}

参考リンク(信頼性の高いリソース)

Tailwind CSS v4の新しい設定方法

Tailwind CSS v4 では、「CSSファースト」な設定方式が導入され、従来の tailwind.config.js を使わずとも、CSS ファイル内だけで柔軟にスタイルをカスタマイズできるようになりました。特に @theme@source@plugin などの新しいディレクティブの登場により、Tailwind の拡張性と保守性はさらに向上しています。

このセクションでは、それぞれのディレクティブの使い方と、CSS 変数を用いたカスタマイズ手法について、具体的なコード例を交えて解説していきます。

@themeディレクティブを使ったテーマ設定の具体例

@theme ディレクティブは、Tailwind CSS v4 で導入された最も基本的かつ強力なディレクティブの1つです。カラー、フォント、ブレークポイントなど、これまで tailwind.config.js で記述していたテーマ設定を、CSS ファイル内で直接定義できるようになります。

使用例:カスタムカラーとフォントを設定

/* index.css */

@tailwind base;
@tailwind components;
@tailwind utilities;

@theme {
  colors: {
    primary: #1da1f2;
    accent: #ff5e57;
  };
  fontFamily: {
    sans: ['"Open Sans"', 'sans-serif'];
  };
}

解説:

  • colorsprimaryaccent を追加
  • fontFamily にカスタムフォント "Open Sans" を追加
  • Tailwind はこれを元に text-primarybg-accent のようなクラスを自動生成

@sourceや@pluginディレクティブの基本的な使い方

@source ディレクティブとは?

Tailwind CSS のコンパイル対象となるファイルを CSS で定義できるのが @source ディレクティブです。これは従来の content 配列に相当する役割を果たします。

使用例:

@source {
  "./index.html";
  "./src/**/*.{js,ts,jsx,tsx}";
}

これにより、Tailwind は上記のファイル群からクラス名を抽出して、使用されているユーティリティクラスのみを出力します。

@plugin ディレクティブとは?

Tailwind CSS のプラグインを CSS 側で読み込むためのディレクティブです。tailwind.config.js を使わなくても、CSS 上で完結してプラグインの登録が可能になります。

使用例:

@plugin require('@tailwindcss/typography');

この例では、公式の @tailwindcss/typography プラグインを読み込んでいます。これにより、.prose クラスなどが使用可能になります。

CSS変数を活用したカラーやフォントのカスタマイズ

Tailwind CSS v4 では、CSS カスタムプロパティ(変数)と連携することで、より柔軟なデザイン変更が可能になりました。テーマに CSS 変数を組み込むことで、ダークモード対応動的テーマ切り替えなどにも対応しやすくなります。

使用例:CSS変数でダークモード対応

:root {
  --color-primary: #1da1f2;
  --color-background: #ffffff;
}

.dark {
  --color-primary: #0a84ff;
  --color-background: #0d1117;
}

@theme {
  colors: {
    primary: var(--color-primary);
    background: var(--color-background);
  };
}

ポイント:

  • :root でデフォルトのテーマカラーを定義
  • .dark クラスでオーバーライド(JSやフレームワークで動的切り替え可能)
  • Tailwind のユーティリティクラス(例:bg-primary)がこれらの変数を参照するようになる

カスタムユーティリティと併用する例

@layer utilities {
  .text-shadow {
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
  }
}

このように、v4 では CSS 自体を中心に Tailwind をカスタマイズできるようになり、設定とスタイルの一体化がより簡潔に行えるようになっています。

旧バージョンからv4へのマイグレーションガイド

Tailwind CSS v4 のリリースに伴い、多くのプロジェクトで「tailwind.config.js がない状態」や「CSS内での設定記述」への移行が求められるようになりました。

このセクションでは、Tailwind CSS v3 以前から v4 への具体的な移行手順と、移行時に起こりがちなトラブルの回避方法を詳しく解説します。

旧設定ファイルの内容をCSSファイルに移行する手順

v3 以前では、主に tailwind.config.js に記述していた設定項目(themeplugins など)を、v4 では CSS ファイル内に直接書けるようになりました。

以下は、旧ファイルから新形式へ移行するステップバイステップガイドです。

Step 1:旧設定ファイルのバックアップを取る

まずは現在の設定ファイルをコピーして保管しておきましょう。

cp tailwind.config.js tailwind.config.backup.js

Step 2:新しいCSS構成ファイルを用意する

v4では、index.cssapp.css のようなメインCSSファイルに設定を統合します。

/* styles.css */

@tailwind base;
@tailwind components;
@tailwind utilities;

@theme {
  colors: {
    primary: #1da1f2;
    accent: #ff5e57;
  };
  fontFamily: {
    sans: ['"Open Sans"', 'sans-serif'];
  };
}

@plugin require('@tailwindcss/forms');

解説:

  • @theme:旧configファイルの theme 相当
  • @plugin:旧configの plugins 相当

Step 3:@source を使ってパージ対象を指定

tailwind.config.jscontent 配列は、v4 では CSS内の @source で記述します。

@source {
  "./index.html";
  "./src/**/*.{js,ts,jsx,tsx}";
}

これにより、v4 のJITエンジンが最適化対象を正しく把握できるようになります。

Step 4:不要になった tailwind.config.js を削除(任意)

すべての設定をCSS内に移行し終えたら、tailwind.config.js を削除して構成をシンプルにできます。

rm tailwind.config.js

ただし、使用しているライブラリやプラグインが tailwind.config.js を必要とする場合はこの限りではありません。

よくあるトラブルとその解決策

Tailwind CSS v4 への移行でよく見られるトラブルと、その対処法を以下にまとめます。

@theme が無視される・クラスが反映されない

原因: Tailwind v4 を使用していない、またはCSS構成に誤りがある

対策:

  • package.json を確認して、Tailwindのバージョンが ^4.0.0 以上であることを確認
  • postcss.config.js が適切に設定されていることを確認

@plugin ディレクティブで読み込みエラーが出る

原因: プラグインの依存関係が正しくインストールされていない

対策:

npm install @tailwindcss/forms

CSS内で読み込む場合でも、npmyarn での事前インストールは必要です。

クラスが生成されない・未使用扱いされる

原因: @source の指定に誤りがある

対策:

  • パスの記述ミスをチェック(例:./src/** ではなく ./src/**/*
  • JSX / TSX などの拡張子を正しく指定する
@source {
  "./src/**/*.{js,ts,jsx,tsx,html}";
}

実際のコード例とコマンド

以下は、v3 プロジェクトから v4 に移行する基本的な構成の全体像です。

旧tailwind.config.js(v3)

module.exports = {
  content: ["./src/**/*.{js,ts,jsx,tsx}"],
  theme: {
    extend: {
      colors: {
        primary: '#1da1f2',
      },
    },
    fontFamily: {
      sans: ['"Open Sans"', 'sans-serif'],
    },
  },
  plugins: [require('@tailwindcss/forms')],
};

新しいCSSファイル(v4)

/* styles.css */

@tailwind base;
@tailwind components;
@tailwind utilities;

@theme {
  colors: {
    primary: #1da1f2;
  };
  fontFamily: {
    sans: ['"Open Sans"', 'sans-serif'];
  };
}

@plugin require('@tailwindcss/forms');

@source {
  "./src/**/*.{js,ts,jsx,tsx}";
}

tailwind.config.js をどうしても再生成したい場合

npx tailwindcss init -p

このコマンドで、tailwind.config.jspostcss.config.js の雛形を再生成できます。

ただし v4 ではこれらのファイルはオプション扱いであることを忘れないようにしましょう。

保守性と拡張性を考えたベストプラクティス

Tailwind CSS v4では tailwind.config.js が不要になったとはいえ、プロジェクトの規模やチーム構成によっては、あえて設定ファイルを使う方が保守性・拡張性に優れるケースもあります。

このセクションでは、CSSファーストの利点を活かしつつ、状況に応じて設定ファイルを併用する戦略や、フレームワーク(Vite / Next.js / Astro など)との連携時に注意すべきポイントを解説します。

必要なときだけ設定ファイルを導入する判断基準

Tailwind CSS v4 では、小〜中規模のプロジェクトであれば CSS のみで設定を完結できるようになりましたが、以下のようなケースでは tailwind.config.js明示的に再導入することを推奨します。

導入を検討すべきケース:

  • プラグインが JS 設定を要求する(例:tailwind-variants など)
  • チームでテーマ設定を共有・拡張したい
  • 設定の再利用性や型安全性を担保したい(TypeScript化)
  • 設定値を JS 内で読み込みたい(resolveConfigの利用)

併用戦略の例

// tailwind.config.js

module.exports = {
  theme: {
    extend: {
      colors: {
        brand: '#f472b6',
      },
    },
  },
  plugins: [],
};

/* styles.css */

@tailwind base;
@tailwind components;
@tailwind utilities;

@theme {
  colors: {
    primary: #1da1f2;
  };
}

このように、@themetailwind.config.js を併用して、柔軟にスタイル管理を行うことが可能です。

@theme と tailwind.config.js の併用戦略

Tailwind v4 では、CSS 内の @theme で上書きした値が優先されます。

つまり、tailwind.config.js で定義した colors があっても、@theme で同じキーを定義すれば CSS 側の設定が反映されます。

優先順位の例

// tailwind.config.js
module.exports = {
  theme: {
    colors: {
      primary: '#000000',
    },
  },
};

/* styles.css */

@theme {
  colors: {
    primary: #1da1f2;
  };
}

結果:text-primary#1da1f2(CSS側)が適用される

この仕組みにより、既存のTailwind設定を維持しつつ、プロジェクト単位で部分的にテーマ変更が可能になります。

Vite、Next.js、Astroなどとの連携での注意点

各種ビルドツールやフレームワークとの連携時にも、設定方法が v3 以前と異なるため注意が必要です。

Viteとの連携

注意点:

  • postcss.config.js を用意する必要がある
  • tailwind.config.js を使わない場合も vite.config.js 内で CSS を明示的に読み込む
// vite.config.js
import postcss from './postcss.config.js';

export default {
  css: {
    postcss,
  },
};

// postcss.config.js
module.exports = {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  },
};

Next.jsとの連携

Next.js はビルド環境が複雑なため、tailwind.config.js が前提のプラグインも少なくありません。

  • tailwind.config.js を導入して安定動作を担保
  • globals.css@theme を併用することで柔軟性を保つ

Astroとの連携

Astro は CSS ファースト設計との相性が非常に良く、v4のメリットを最大限に活かせます。

  • CSS ファイル内の @theme で完結できる
  • Astro コンポーネント単位で柔軟にテーマを適用できる
  • グローバル設定が不要な小規模サイトにも最適

おすすめのベストプラクティスまとめ

シチュエーションベストな戦略
小規模・静的サイトCSSのみで完結(@theme中心)
中〜大規模SPAtailwind.config.js + @theme併用
ダークモードや動的テーマCSS変数 + @theme
フレームワーク統合各フレームワークに合わせて柔軟対応

よくある質問(FAQ)

Q1. tailwind.config.ts って何?TypeScriptで設定できるの?

はい、Tailwind CSS v3以降、公式には tailwind.config.ts をサポートしています。これは設定ファイルを TypeScript で記述できるというもので、型安全性や補完の向上が期待できます。

// tailwind.config.ts

import type { Config } from 'tailwindcss';

const config: Config = {
  content: ['./src/**/*.{html,js,ts,jsx,tsx}'],
  theme: {
    extend: {
      colors: {
        primary: '#1da1f2',
      },
    },
  },
  plugins: [],
};

export default config;

注意点

  • ts-node をプロジェクトにインストールしておく必要があります。
  • tailwind.config.ts を使うと、CSSファースト構成(v4)の軽快さはやや損なわれるため、小規模プロジェクトでは非推奨。

Q2. プラグインが設定ファイルを前提としているときの対処法は?

一部の Tailwind プラグインは、従来の tailwind.config.js に依存しています。たとえば以下のようなケースです:

  • tailwindcss-animate
  • tailwind-variants
  • カスタムプラグインで addUtilities 等を使用するもの

対処法

  • 必要に応じて tailwind.config.js をプロジェクトルートに追加します。
  • v4の CSS 構成と併用することで、柔軟に運用可能です。
// tailwind.config.js
module.exports = {
  plugins: [require('tailwindcss-animate')],
};

CSS側には従来通りの設定を残すことができます。

Q3. CSSファイルに設定を書くだけで本当に大丈夫?

結論から言えば、小規模〜中規模のプロジェクトではCSSだけで十分です。Tailwind v4 では以下のような利点が得られます:

  • 設定の即時反映(ホットリロード)
  • ファイル数の削減
  • 記述場所がスタイルファイルに集約されて保守性アップ

ただし、次のような場合には従来の設定ファイルとの併用も視野に入れましょう。

  • 設定の再利用が多い
  • チームで設定値のレビューを行う
  • プロジェクトがモノレポで構成されている

Q4. tailwind.config.js が見つからないと怒られるのはなぜ?

一部のパッケージやビルドツールが tailwind.config.js の存在を前提にしている場合、エラーになることがあります。

例:npx tailwindcss build 実行時

Error: Cannot find module './tailwind.config.js'

解決策:

  • tailwind.config.js を一時的に作成しておく
  • 空の設定ファイルでもOK:
// tailwind.config.js
module.exports = {};

  • あるいは CLI 実行時に -config オプションで明示的に指定
npx tailwindcss --config ./styles.css

Q5. @source の書き方を間違えたらどうなる?

@source に誤ったパスやファイル形式を記述すると、Tailwind の JIT が対象ファイルを読み込めず、ユーティリティクラスが生成されない原因となります。

よくある間違い

@source {
  './src/**'; /* ❌ 不完全なglob指定 */
}

正しい記述例:

@source {
  './src/**/*.{js,ts,jsx,tsx,html}';
}

対応のヒント:

  • glob構文に不慣れな場合は fast-glob のドキュメントを参考にすると良いでしょう。
  • エディタの補完やLSPで静的チェックされないため、書き間違いに注意。

Q6. 最新情報を追いたいときはどこを見るべき?

Tailwind CSS はアップデートが頻繁なため、公式情報を定期的に確認する習慣が重要です

まとめ:tailwind.config.js がなくても大丈夫。必要に応じて使い分けよう

Tailwind CSS v4では、これまで当たり前のように使われていた tailwind.config.js が、必須ではなくなりました

Tailwind CSSがv4から取り入れた「CSSファースト」な設計により、テーマの設定やカスタマイズがCSSファイルだけで完結できるようになりました。これにより、学習コストやファイルの管理がグッと楽になります。

でも、すべてのケースで設定ファイルが不要になるわけではないんですよね。

特にプラグインを使いたいときや、チーム開発・大規模なサイトでは、tailwind.config.js必要に応じて併用する柔軟さが求められます。

まずはCSSだけで試してみて、物足りなくなったら設定ファイルを導入してみましょう。

ポイント

  • Tailwind CSS v4では、tailwind.config.js なしでも使える設計に進化
  • テーマやカラー設定はCSS内の @theme で直接記述可能
  • プラグイン利用や複雑な設定では tailwind.config.js を併用すべき
  • ViteやNext.jsなどフレームワークによって最適な構成が異なる
  • トラブルが起きたときは、設定ファイルを仮で用意するのもアリ
Tailwind CSSで要素・テキストを右寄せする最適解|初心者でもわかる使い分け&実践例付き
TailwindCSSで右寄せを実装する方法をお探しですか?テキスト右寄せ、要素全体、さらにFlexやGridを使った右寄せの違いまで解説しています。ボタンや画像の右寄せ、複数要素のUI実装、トラブル対処法やレスポンシブ対応のテクニックまで、初心者から使えるTailwindの右寄せテクニックをマスターできます。
Tailwind CSSで「display: none」にしたい?非表示にする方法を解説!
Tailwind CSSで「display: none」を実現するには、基本的に「hidden」クラスを使います。本記事では、hiddenの具体的な使い方やレスポンシブ対応で画面サイズごとに非表示にする方法等を解説します。Tailwindで効率よくUIを制御したい方に役立つ内容です。
2手で完了!? Astroフレームワークにtailwindcssを追加する方法
はじめに静的サイトジェネレーターAstroフレームワークにCSSフレームtailwindcssを導入する方法を記します。tailwindcssの導入によってクラス名に悩んだりメディアクエリを無駄に増やすことを避けられて制作がスムーズに進められます。前提node.jsは既にインストールされている状態を想定しています。※n...
tailwindcssの使い方をさくっと説明 - ざっくり入門したい人向け
tailwindcssはcssフレームワークです。他のCSSフレームワークとの違いはtailwindcssはユーティリティークラスの集まりだということです。CSSフレームワークの代表的な存在の「Twitter Bootstrap」はユーティリティークラスの他にデザインされたコンポーネントを使用することができます。Twi...
タイトルとURLをコピーしました