随笔
さよなら、tailwind.config.js: Tailwind v4 では何が変わりますか? (Tailwindconfigjs Tailwind V4)
Tailwind CSS v4 によってもたらされた革新的な変更をご覧ください: JavaScript 構成から CSS への移行、新しい Oxide エンジン、自動コンテンツ…
Tailwind CSS v4 が登場しました。これは単なるバージョン更新をはるかに超えています。ここにあるのは、開発者エクスペリエンス (DX) を根本的に変える再設計されたエンジンと哲学です。 v4 は、Tailwind が JavaScript エコシステムのルーツから脱却し、「Oxide」と呼ばれる新しいエンジンで CSS の中心に直接移行するという復活を表しています。
このリリースでは、パフォーマンスから構成方法に至るまで、Tailwind の使用方法が再構築されています。この記事では、v4 に伴う、すべての開発者が知っておくべき最も影響力のある変更について詳しく説明します。
最も重要な変更: JavaScript 構成から CSS への切り替え
おそらく最も根本的な変更は、構成プロセスが tailwind.config.js からメイン CSS ファイルに直接移動されたことです。すべてのカスタマイズ、プラグイン、テーマ設定を 1 つの CSS ファイルで管理できるようになります。
これは戦略的な動きです。 Tailwind の作成者である Adam Wathan は次のように述べています。
「Tailwind CSS v4.0 の主な目標の 1 つは、フレームワークを JavaScript ライブラリではなく CSS ネイティブに感じさせることです。」
この「CSS ネイティブ」アプローチでは、すべての構造化が CSS 構文内でどのように処理されるかを見てみましょう。
@theme の紹介: 新しい構成センター
テーマのカスタマイズ (色、ブレークポイント、フォント) は、@theme ブロック内の CSS カスタム プロパティを使用して行われるようになりました。これは単なる構文の変更ではありません。また、実行時に JavaScript からすべてのデザイン トークン (--color-neon-pink など) にアクセスできるようになります。
Tailwind v3 (tailwind.config.js):```javascript
module.exports = {
theme: {
extend: {
colors: {
'neon-pink': '#ff00ff',
},
screens: {
'3xl': '1920px',
},
},
},
}
#### Tailwind v4 (メイン CSS ファイル内):css
@theme {
--color-neon-pink: #ff00ff;
--breakpoint-3xl: 1920px;
}
```この移行により、一部の命名が標準になりました。v3 の screens は v4 では --breakpoint-* になり、colors は --color-* に更新されました。このアプローチにより、設定がより直感的になり、CSS フローに準拠したものになります。
新しい「Oxide」エンジン: パフォーマンス革命
Tailwind v4 の中心には、パフォーマンスを最大化するために一から書かれた「Oxide」と呼ばれる新しいエンジンがあります。このエンジンはハイブリッド アプローチを採用しています。
- Rust: 最もパフォーマンスが重要で並列化可能なタスク (CSS 解析など) は Rust で書かれています。
- TypeScript: フレームワークのコア ロジックと拡張性 (プラグイン API) は TypeScript に残ります。
この新しいアーキテクチャでは、PostCSS への依存性が排除され、Lightning CSS をネイティブに使用するオールインワン ツールチェーンが提供されます。 @import 処理やブラウザー プレフィックス (自動プレフィックス) のための追加ツールはもう必要ありません。
パフォーマンス指標
結果は印象的です:
- 最大 5 倍 高速なフルビルド
- 100 倍以上 高速な増分ビルド (通常はマイクロ秒単位で測定)
- 35% 以上 小さい設置サイズ
この速度の向上により、特に大規模なプロジェクトでコンパイル時間の待機がなくなり、開発プロセスがよりスムーズになります。
ゼロ構成: 自動コンテンツ検出
v3 では、フレームワークが content 配列内でどのファイルをスキャンするかを手動で指定する必要がありました。 v4 ではこの義務がなくなりました。
Tailwind v3 アプローチ```javascript
// tailwind.config.js (TAILWIND v3)
module.exports = { /**
- BURASI ZORUNLUYDU:
- Projedeki tüm şablon dosyalarının yollarını manuel olarak
- glob desenleri (patterns) kullanarak belirtmeniz gerekiyordu. / content: [ './src/pages/**/.{js,ts,jsx,tsx,mdx}', './src/components//*.{js,ts,jsx,tsx,mdx}', './src/app//*.{js,ts,jsx,tsx,mdx}', './public/index.html', // Yeni bir klasör eklerseniz (örn: './src/layouts/'), burayı güncellemeniz gerekirdi. ],
theme: { extend: { // ... }, },
plugins: [],
}
### Tailwind v4 アプローチcss
/* main.css (TAILWIND v4) */
/*
- Tailwind'i içe aktarıyoruz. */ @import "tailwindcss";
/*
- Temamızı yapılandırıyoruz.
- DİKKAT:
- Gördüğünüz gibi, 'content' veya 'source' ile ilgili HİÇBİR ayar yok.
- v4, projenizi otomatik olarak tarar.
- Yeni bir klasör (örn: /src/layouts) eklediğinizde
- hiçbir yapılandırma dosyasına dokunmanıza gerek kalmaz. */ @theme { --color-brand-primary: #FF00FF; --breakpoint-4xl: 2100px; }
/*
- Gerekirse özel katmanlarınızı eklersiniz. */ @layer utilities { .my-utility { padding: 1rem; } }
```これで、プロジェクトが自動的にスキャンされ、テンプレート ファイルが検索されます。このプロセスでは、.gitignore ファイル内のパスとバイナリをインテリジェントに無視して、パフォーマンスを最適化します。
マニュアルソース仕様
Vite プラグインを使用すると、このプロセスはさらにスマートになります。Tailwind は、プロジェクトのモジュール グラフで実際に使用されるファイルのみをスキャンすることで、最大のパフォーマンスを保証します。必要になることはほとんどありませんが、@source ディレクティブを使用して、この自動検出をオーバーライドできます。```css
@import "tailwindcss";
/**
- Otomatik taramanın bulamadığı,
- CMS'ten gelen sınıfları içeren dosyayı manuel olarak ekliyoruz.
- Glob desenleri (wildcards) kullanabiliriz. / @source "./src/cms-templates/**/.html";
@theme { /* ... tema ayarlarınız ... */ }
/* ... */
以前のバージョンでは、`group-has-*` などのバリアントの組み合わせはフレームワーク内で手動でエンコードされていました。このため柔軟性が制限されていました。
v4 は、この問題を完全に排除するコンポーザブル バリアント アーキテクチャを提供します。 `group-*`、`has-*`、`peer-*`、`focus` などのバリアントを自由に組み合わせられるようになりました。
### 使用例
たとえば、グループとその中の子要素の上にマウスを移動したときにスタイルを適用することは、次のように簡単になりました。```html
<div class="group">
<button class="group-hover:has-focus:opacity-100">
Click me
</button>
</div>
```このアーキテクチャは、v4 に付属する新しい `not-*` バリアントなど、他のバリアントと連鎖させることもできます。 `group-not-has-peer-not-data-active:underline` のような、非常に具体的だが完全に有効なセレクターを作成できるようになりました。
## 最新の CSS 機能の統合
v4 には、最新の Web プラットフォームが提供する最新の CSS 機能がコアに組み込まれています。
### ローカル ステップ レイヤー (@layer)
v4 は実際の CSS `@layer` ルールを使用して機能します。これにより、古いバージョンで発生した特異性の問題の多くが解決されます。
### コンテナクエリ
`@tailwindcss/container-queries` プラグインは必要なくなりました。 `@container` クラスと、`@lg:`、`@min-md:` などのバリアントがカーネルに含まれるようになりました。
### モダンカラーパレット (P3)
デフォルトのカラー パレットは、oklch カラー スペースを使用して最新化され、より鮮やかで豊かなカラーを提供します。
### 高度な CSS サポート
`@property` (グラデーションの遷移などのアニメーションを可能にする) や `color-mix()` (不透明度修飾子を容易にする) などの最新の CSS 関数が完全にサポートされるようになりました。
## 重要な基本的な変更 (重大な変更)
v4 では、最新の CSS デフォルトに適切に対応できるように、いくつかのコア ヘルパー クラスの動作が変更されました。切り替えるときは次の点に注意する必要があります。
### 境界クラス
以前のバージョンでは、`border` クラスはデフォルトでグレー 200 色を適用していました。 v4 では、この動作は、ブラウザーのネイティブ動作である `currentColor` (現在のテキストの色) に変更されました。枠線はテキストの色を継承するようになります。
###リングクラス同様に、`ring` クラスはデフォルトで 3 ピクセルの青いリングを作成するのではなく、サイズが 1 ピクセルで `currentColor` を使用するリングを作成します。
### 自動アップグレードツール
幸いなことに、Tailwind チームは、この移行を容易にする自動アップグレード ツールもリリースしました。```bash
npx @tailwindcss/upgrade
```## v4.0 以降: v4.1 の新機能
v4 の安定版リリース後も開発は減速せず、v4.1 では次の待望の機能が追加されました。
### 新機能
- **text-shadow-***: テキストに影を追加するユーティリティ クラス
- **mask-***: 画像とグラデーションで要素をマスクするための新しい API
- **prettier-plugin-tailwindcss アップデート**: プラグインは、クラス リスト内の不要なスペースと重複したクラスを自動的にクリーンアップするようになりました。
## ベストプラクティス
1. **CSS ネイティブのアプローチを採用**: 新しい `@theme` 構造を使用して、構成を CSS に保持します。
2. **自動スキャンに依存**: 本当に必要な場合にのみ `@source` ディレクティブを使用します。
3. **最新の CSS 機能を活用する**: プロジェクトでコンテナ クエリと新しいカラー パレットを積極的に使用します。
4. **バリアントを自由に組み合わせる**: v4 のコンポーザブル バリアント アーキテクチャが提供する柔軟性を活用します。
5. **移行ツールを使用する**: 移行に自動ツールを活用します。
## よくある間違い
- `tailwind.config.js` を削除する前に、すべての設定を CSS に移動しない
- `@theme` ブロックで古い命名規則 (`colors` ではなく `--color-*`) を使用することを忘れている
- クラス `border` および `ring` の新しい動作を無視する
- 自動コンテンツ検出では `node_modules` やその他の不要なフォルダーがすでに無視されていることを忘れて、手動構成を実行します
## ツールとリソース
- [Tailwind CSS v4 公式ドキュメント](https://tailwindcss.com/docs)
- [Tailwind CSS v4 アップグレード ガイド](https://tailwindcss.com/docs/upgrade-guide)- [Oxide Engine GitHub リポジトリ](https://github.com/tailwindlabs/tailwindcss)
- [Tailwind Play](https://play.tailwindcss.com/) - オンラインプレイグラウンド
- [@tailwindcss/upgrade](https://www.npmjs.com/package/@tailwindcss/upgrade) - 自動アップグレード ツール
## 未来への展望
Tailwind CSS v4 は単なるアップデートではなく、フレームワークの中核となる哲学を再定義するステップです。新しい Oxide エンジンのおかげで、速度が向上しただけではありません。また、よりシンプルで直感的で、CSS の自然な流れに沿ったものになっています。
`tailwind.config.js` の廃止、「ゼロ構成」アプローチ、コンポーザブル バリアントなどの革新により、開発者のエクスペリエンスは間違いなく向上します。 Tailwind の CSS 中心の革命は、自身の将来を確固たるものにするだけでなく、フロントエンド エコシステム全体に疑問を投げかけています。未来のツールはどの程度 CSS に特化できるのでしょうか?
FAQ
Frequently asked questions
「さようなら、tailwind.config.js: Tailwind v4 では何が変わりますか?」それは何と言っていますか?
Tailwind CSS v4 によってもたらされた革新的な変更をご覧ください: JavaScript 構成から CSS への移行、新しい Oxide エンジン、自動コンテンツ…
主なポイントは何ですか?
Tailwind CSS v4 によってもたらされた革新的な変更をご覧ください: JavaScript 構成から CSS への移行、新しい Oxide エンジン、自動コンテンツ…
この記事は誰に向けたものですか?
ソフトウェア アーキテクチャ、配信、生産に関する意思決定を実装するエンジニアおよび技術リーダー向け。
继续阅读
继续阅读
相关文章
为什么性能就是用户体验
性能与用户体验并不分离。了解速度、等待心理、核心网络生命、RAIL 和包容性设计如何决定信任和任务完成。
相关文章
衡量什么:以用户为中心的绩效的关键指标
以用户为中心的绩效衡量;它结合了行为、感知、保留和技术指标。通过 Lab 了解现场、核心 Web Vitals(LCP、INP、CLS)、RUM 和预算真正重要的因素。
相关文章
内側からの垂直スライスはどのように機能しますか?
垂直スライスは、リクエストから検証、ハンドラーから集計、アウトボックス イベントからモデルの読み取り、そしてクラウド コストまで、内部的にどのように流れるのでしょうか? CQRS…