Tailwind CSSCSS前端開發v42026

Tailwind CSS 4.0 升級指南:CSS-first 時代來臨

Tailwind CSS 4.0 完整攻略!@theme CSS-first 配置、Oxide 引擎、v4.2 新功能、v3 遷移教學。2026 年工程師必看的 CSS 框架升級指南!

· 4 分鐘閱讀

Tailwind CSS 4.0 的最大變化,不是「多了一百個新 utility class」——而是配置方式的根本改變。過去 Tailwind CSS 的配置在 tailwind.config.js 裡,用 JavaScript 定義你的設計系統。4.0 把這個配置帶到了 CSS 裡,用 @theme directive 來定義。這不是一個微小的語法變化——這是 Tailwind 團隊對「CSS 應該如何工作」的理解的改變。


為什麼 Tailwind CSS 4.0 值得關注

過去的痛點

Tailwind CSS v3 的配置需要在一個獨立的 JS 檔案裡管理:

// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  theme: {
    extend: {
      colors: {
        brand: '#4f46e5',
      },
      fontFamily: {
        sans: ['Inter', 'system-ui', 'sans-serif'],
      },
    },
  },
  plugins: [],
};

這個方式的問題:

  1. 配置和樣式分離:你在 CSS 裡寫 class,在 JS 裡配置設計系統
  2. 編譯速度瓶頸:v3 的編譯在大型專案裡開始變慢
  3. CSS 功能受限:某些 CSS 功能(如 @layer)需要繞過 JS 配置

4.0 的回答

Tailwind CSS 4.0 選擇將配置帶回 CSS:

/* 4.0:所有配置都在 CSS 裡 */
@import "tailwindcss";

@theme {
  --color-brand: #4f46e5;
  --font-sans: "Inter", system-ui, sans-serif;
}

這個改變的意義:CSS-first。當你在一個 CSS 檔案裡工作時,你的配置就在同一個地方。


@theme:設計系統的 CSS 表達

@theme directive

@import "tailwindcss";

@theme {
  /* 顏色 */
  --color-brand-50: #eef2ff;
  --color-brand-100: #e0e7ff;
  --color-brand-500: #4f46e5;
  --color-brand-900: #312e81;

  /* 字體 */
  --font-sans: "Inter", system-ui, sans-serif;
  --font-display: "Inter", system-ui, sans-serif;

  /* 間距 */
  --spacing-128: 32rem;

  /* 圓角 */
  --radius-xl: 1rem;
  --radius-2xl: 1.5rem;

  /* 陰影 */
  --shadow-card: 0 4px 6px -1px rgb(0 0 0 / 0.1);
}

使用自訂主題

<!-- 直接使用你定義的 token -->
<button class="bg-brand-500 text-white font-sans rounded-xl shadow-card">
  Button
</button>

與 v3 的 extend 語法對比

// v3:extend 在 JS 裡
module.exports = {
  theme: {
    extend: {
      colors: {
        brand: '#4f46e5',
      },
    },
  },
};
/* v4:@theme 在 CSS 裡,覆蓋而非合併 */
@theme {
  --color-brand: #4f46e5;
}

Oxide 引擎:效能提升

編譯速度

4.0 的 Oxide 引擎讓編譯速度大幅提升:

專案規模v3 編譯時間v4 編譯時間提升
小型(50 個 CSS 檔案)200ms50ms4x
中型(200 個 CSS 檔案)800ms120ms6.6x
大型(1000 個 CSS 檔案)4s400ms10x

這個提升來自 Oxide 引擎的重寫——使用 Rust 開發的解析器和編譯器。

對開發者的影響

# 大型專案的時間節省
# v3:等待編譯
# 估計每週浪费 3-5 小時等待時間

# v4:几乎即时
# 同樣等待時間减少到接近零

Tailwind CSS v4.2 新功能

@tailwindcss/webpack 支援

// webpack 配置
// v4.2 原生支援 webpack,不需要額外設定
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['@tailwindcss/webpack'],
      },
    ],
  },
};

4 個新色彩面板

@theme {
  /* 新增的 color palette */
  --color-amber-50: #fffbeb;
  --color-amber-100: #fef3c7;
  /* ... */

  /* 現在支援 12 個語意化色彩 */
  --color-success: oklch(70% 0.15 145);
  --color-warning: oklch(75% 0.18 85);
  --color-error: oklch(65% 0.25 25);
}

Logical Property Utilities

<!-- 邏輯屬性:支援 RTL 和 LTR -->
<div class="ms-4 me-4 ps-4 pe-4">
  <!-- ms = margin-inline-start -->
  <!-- me = margin-inline-end -->
  <!-- ps = padding-inline-start -->
  <!-- pe = padding-inline-end -->
</div>

Inline/Block Size Utilities

/* 新增的 size utilities */
<div class="inline-size-[200px] block-size-[100px]">
  <!-- inline-size = width in horizontal writing -->
  <!-- block-size = height -->
</div>

遷移到 v4:實際步驟

官方升級工具

# 1. 安裝官方升級工具
npx @tailwindcss/upgrade@latest

# 2. 執行升級
# 工具會自動:
# - 將 tailwind.config.js 轉換為 @theme 語法
# - 更新相依性
# - 處理大多數 breaking changes

# 3. 驗證
npm run dev

自動處理的項目

  • @apply 語法
  • tailwind.config.jstheme.extend 轉換
  • Plugin 配置
  • 常用 patterns

需要手動調整的項目

/* 複雜的 CSS-in-JS 配置可能需要手動處理 */

/* v3 */
module.exports = {
  theme: {
    extend: {
      backgroundImage: {
        'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
      },
    },
  },
};

/* v4 */
@theme {
  --gradient-radial: radial-gradient(var(--tw-gradient-stops));
}

複雜專案的遷移策略

# 1. 先升級到 v3 的最新版本
npm install tailwindcss@3

# 2. 確保所有測試通過
npm test

# 3. 使用官方工具升級
npx @tailwindcss/upgrade@latest

# 4. 處理任何 breaking changes
# 查閱官方 Migration Guide

# 5. 驗證所有視覺效果
npm run dev

結語:CSS-first 的意義

Tailwind CSS 4.0 的 CSS-first 轉變,代表了一個更廣的趨勢:配置正在回歸 CSS

過去十年,前端工具傾向於把配置放在 JavaScript 裡——webpack config、babel config、postcss config、tailwind config。這個方式的優點是「強大的程式化配置能力」,缺點是「配置和樣式分離」。

CSS-first 的回歸,是對「樣式應該在 CSS 裡定義」這個基本原則的重新確認。Tailwind CSS 4.0 的 @theme 語法,讓設計系統的配置成為 CSS 檔案的一部分,而不是一個獨立的 JS 檔案。

對於正在使用 Tailwind CSS v3 的專案,v4 的升級成本已經大幅降低——官方升級工具可以自動處理大部分遷移工作。對於新專案,v4 是更推薦的選擇。


延伸閱讀

本文是「2026 CSS 實用技術」系列文章之一。