什麼是 Tailwind CSS?給應用程式建置者的白話指南
Tailwind CSS 是用於設計網站樣式的工具組。你不必在獨立的檔案中撰寫樣式規則,而是為每個元素加上簡短、現成的 class 名稱:bg-white 代表白色背景、p-4 代表內距、text-lg 代表較大的文字、rounded-xl 代表圓角,然後 Tailwind 會產生瀏覽器需要的 CSS。它是免費的開放原始碼,也是現代網頁應用程式最常見的樣式方式之一。
為什麼用 AI 建置時要了解 Tailwind
如果你使用 AI 應用程式建置工具來開發網頁應用程式,你的應用程式很可能是以 Tailwind 設計樣式的。以 Mythex 為例,除非你另外指定,新專案預設使用 Vite + React + TypeScript + Tailwind (技術選擇的方式)。
這對你有三方面的影響:
- 設計調整成本低。 因為樣式就緊挨著每個按鈕、卡片和標題,AI 可以在一處修改幾個 class 名稱,來實現「讓卡片不要那麼擁擠」這類要求。
- 你看得懂。 Tailwind 的 class 很接近白話英文。即使你從沒寫過程式,
text-center font-bold text-2xl也不難理解。 - 外觀保持一致。 Tailwind 提供固定的尺寸、間距和顏色級距,可以避免應用程式出現 14 種略有差異的灰色。
日常比喻
想像一下粉刷房子。
原生 CSS 就像每面牆都自己調製油漆。你擁有完全的自由,但過一段時間,客廳是「暖白」,走廊是「偏暖的白」,而且沒人記得為什麼。
Tailwind 則像油漆行的色卡,加上一組有標籤的貼紙。每面牆都貼上一張貼紙,寫著「白色、霧面、兩層漆」,而色卡只提供精選的色調。你會失去一點自由,但所有參與施工的人只要看貼紙,就知道每面牆該是什麼樣子。
Tailwind 如何運作
網頁由 HTML(內容與結構)和 CSS(外觀)組成。通常 CSS 會放在獨立的檔案中,規則像這樣:
.card {
background: white;
padding: 1rem;
border-radius: 0.75rem;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
使用 Tailwind 時,你不必撰寫那條規則,而是直接把工具型 class 放在元素上:
<div class="bg-white p-4 rounded-xl shadow-sm">
Your booking is confirmed
</div>
每個 class 只負責一項小工作。應用程式建置時,Tailwind 會掃描你的檔案,找出實際使用到的 class,只產生這些 class 的 CSS。這樣最終的樣式表會保持小巧。
目前的主要版本 Tailwind 4 只需要很少的設定:安裝後,把它的外掛加入建置工具,並在 CSS 檔案頂端加上 @import "tailwindcss";。品牌顏色和字型等自訂內容,會以設計權杖(design tokens)的形式在 CSS 中定義,而不是像舊版本那樣寫在龐大的 JavaScript 設定檔中。如果你讀到提到 tailwind.config.js 的舊教學,原因就在這裡。
實例:一張定價卡片
假設你請 AI 建置工具做一個定價頁面,並希望「Pro」方案的卡片更醒目。卡片的程式碼可能像這樣(在 React 元件中,class 要寫成 className):
<div className="rounded-2xl border border-gray-200 p-6">
<h3 className="text-lg font-semibold">Pro</h3>
<p className="mt-2 text-4xl font-bold">$25</p>
<button className="mt-6 w-full rounded-lg bg-gray-900 px-4 py-2 text-white">
Start trial
</button>
</div>
由左至右閱讀:
| Class | 作用 |
|---|---|
rounded-2xl | 大圓角 |
border border-gray-200 | 細的淺灰色邊框 |
p-6 | 卡片內部的內距 |
text-lg font-semibold | 稍大、半粗體的標題 |
mt-2、mt-6 | 元素上方的間距(「margin-top」) |
w-full | 填滿卡片的寬度 |
bg-gray-900 text-white | 深色按鈕搭配白色文字 |
如果你說「讓 Pro 卡片用藍色邊框和淡淡的陰影來突顯」,AI 可能會把 border-gray-200 改成 border-2 border-blue-600,並加上 shadow-lg。整個改動就是這些。
響應式設計與深色模式
Tailwind 為螢幕尺寸和狀態提供簡短的前綴:
md:grid-cols-3:在中型螢幕以上顯示三欄;在手機上則套用預設的單欄。Tailwind 採用行動裝置優先:沒有前綴的 class 適用於所有螢幕,有前綴的 class 則為較大的螢幕加上變化。hover:bg-gray-700:滑鼠移到按鈕上時,按鈕變成較深的顏色。dark:bg-gray-900:開啟深色模式時使用不同的背景。
這就是為什麼在 Tailwind 專案中,要求行動裝置響應式版面或深色模式通常很快就能完成。
關鍵術語
| 術語 | 意義 |
|---|---|
| CSS | 層疊樣式表(Cascading Style Sheets),瀏覽器用來設定版面、顏色、字型和間距的語言。 |
| 工具型 class(Utility class) | 只負責一項小型樣式工作的 class,例如 p-4 或 text-center。 |
| 工具優先(Utility-first) | Tailwind 的做法:主要使用工具型 class 設計樣式,而不是撰寫自訂的 CSS 規則。 |
| 斷點(Breakpoint) | 版面會改變的螢幕寬度,例如 sm、md、lg。 |
| 設計權杖/主題(Design tokens / theme) | 你定義的具名顏色、字型和尺寸,例如 brand 品牌色,可在各處重複使用。 |
| 元件庫(Component library) | 預先建置好的按鈕、對話框和選單。許多元件庫(例如 shadcn/ui)都以 Tailwind 設計樣式。 |
常見迷思
- 「Tailwind 就是一種設計風格。」 並不是。Tailwind 提供的是建構積木,而不是固定的外觀。兩個使用 Tailwind 的網站可以看起來完全不同。常見的「AI 應用程式風格」來自預設值,而非 Tailwind 本身,所以請給建置工具明確的設計方向。參見如何用 AI 設計美觀的應用程式。
- 「這和行內樣式一樣。」 不完全相同。Class 來自共用的級距,支援滑鼠懸停、深色模式和斷點,並會在建置時轉換成一般的 CSS。
- 「Tailwind 會讓頁面變得很肥大。」 建置時只會包含你實際使用的 class,所以提供給訪客的 CSS 通常很小。
- 「class 很長代表程式碼很亂。」 一開始看起來可能很雜,但元素的所有外觀都集中在同一處。重複的模式通常會被抽成元件,例如單一的
Button。 - 「用了 Tailwind 就不能寫自訂 CSS。」 你仍然可以在需要時撰寫一般的 CSS。
向 AI 建置工具提出的要求
- 「把品牌顏色和字型定義一次,作為主題權杖,並在各處使用,不要寫死顏色。」
- 「讓每張卡片、按鈕和輸入框都使用相同的圓角與間距。」
- 「以手機寬度檢查版面,修正任何溢出或太小而難以點擊的地方。」
- 「使用 Tailwind 的
dark:變體加入深色模式,並確保文字對比度仍然清楚易讀。」 - 「把重複的按鈕樣式抽成一個可重複使用的 Button 元件。」
- 「用白話解釋這個區塊上的 Tailwind class。」
Mythex 中的 Tailwind
新的 Mythex 專案預設會搭配 React 與 TypeScript 使用 Tailwind,因此你可以用白話要求視覺調整,並在即時預覽中看到結果。如果你想看程式碼,程式碼編輯器會顯示每個 class(免費版為唯讀,Pro 版可編輯)。如果你偏好原生 CSS 或其他設定,請在第一則提示中說明 — 文件說明了技術堆疊的選擇方式。
常見問題
用簡單的話來說,什麼是 Tailwind CSS?
Tailwind CSS 是用於網站樣式設計的工具組。你不必另外撰寫樣式規則,而是用 bg-white、p-4 或 text-lg 等簡短的 class 名稱描述每個元素的外觀,Tailwind 會把它們轉換成瀏覽器需要的 CSS。
Tailwind CSS 是免費的嗎?
是的。Tailwind CSS 本身是免費的開放原始碼專案,採用 MIT 授權。背後的公司也販售選用的付費產品,例如現成的 UI 元件套件,但使用 Tailwind 並不需要它們。
Tailwind 比原生 CSS 好嗎?
兩者各有優劣,沒有絕對的好壞。Tailwind 底層仍然是 CSS;它提供一致的尺寸、顏色和間距,並把樣式放在標記旁邊,讓建置與修改介面更快。原生 CSS 的自由度最高,但在大型專案中較容易出現風格不一致的情況。
為什麼 AI 產生的程式碼這麼常用 Tailwind?
Tailwind 的 class 直接放在元件程式碼中,因此 AI 只要編輯一個檔案,就能改變元素的外觀,不必翻找各個樣式表。它也非常普及,所以模型見過大量的 Tailwind 程式碼。
用 AI 建置應用程式需要學會 Tailwind 嗎?
不需要。你可以用白話描述想要的外觀。認識幾個 class 名稱,能幫助你讀懂程式碼、自己做小幅調整,並給出更精準的指示。