基礎入門
Tailwind CSS v4CSS

樣式系統 (Styling)

Nuxt 4 與 Tailwind CSS v4 完美整合,提供了極致的開發體驗。本章將介紹如何建立可維護的 CSS 架構,以及如何善用現代 CSS 特性。

Tailwind CSS v4

Nuxt 4 專案預設支援 Tailwind CSS v4。與 v3 不同,v4 是一個從頭重寫的引擎,速度更快且無需 tailwind.config.js

Zero Configuration

所有的設定都直接在 CSS 檔案中使用 @theme 區塊定義,不再需要 JavaScript 設定檔。

Native Engine

基於 Rust (Lightning CSS) 的解析引擎,編譯速度提升 10 倍以上。

assets/css/main.css 中設定主題:

assets/css/main.css
@import 'tailwindcss';

@theme {
  /* 自定義顏色 */
  --color-brand-500: oklch(0.7 0.15 150);
  
  /* 自定義動畫 */
  --animate-fade-in: fade-in 0.5s ease-out;
  
  @keyframes fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
  }
}

CSS 架構

在 Nuxt 專案中,我們建議將全域樣式保持在最低限度。

Utility-First

優先使用 Tailwind Utility Classes。這能確保樣式的一致性並減少 CSS Bundle 大小。

Component Abstraction

如果一組樣式重複出現 (例如按鈕),請將其封裝為 Vue 元件 (AppButton.vue),而不是建立 CSS Class。


元件樣式 (Scoped Styles)

當你需要撰寫無法用 Tailwind 表達的複雜樣式時,請使用 <style scoped>

components/SpecialCard.vue
<template>
  <div class="card">
    <slot />
  </div>
</template>

<style scoped>
/* 這裡的樣式只會影響此元件 */
.card {
  /* 使用 Tailwind 的 theme() 函數存取變數 */
  background-color: theme('colors.slate.900');
  
  /* 複雜的 CSS 特性 */
  backdrop-filter: blur(12px);
  clip-path: polygon(0 0, 100% 0, 100% 85%, 90% 100%, 0 100%);
}
</style>