請用 9 歲孩童能理解的方式,講解 UnoCSS 跟 TailwindCSS 讓我了解?

以下內容會用 9 歲小朋友也能懂的方式,介紹 UnoCSS 是什麼、為什麼好用,以及它最特別的地方。
重點摘要
想像你在玩樂高,原本要先把所有積木都準備好,才能開始拼;但 UnoCSS 就像有個魔法盒子,當你需要紅色積木才去拿紅色積木,需要藍色積木才去拿藍色積木,省下很多不知道要不要準備的時間和空間。它是一種「即用即取」的原子化 CSS 工具,只要你在 HTML 上寫一個小小的 class,對應的樣式就會立刻出現,讓網頁變得又快又輕盈,而且還很好客製化。
1. CSS 和 「原子化」是什麼?
CSS(網頁樣式):
就像為網頁穿衣服,決定它的顏色、大小、位置。
傳統做法是先寫一大堆衣服(樣式),再提醒每個元素穿哪一套。
原子化 CSS(Atomic CSS):
把每種樣式拆成「最小單位」的積木(例如:紅色、20px、粗體字)。
你想要什麼效果,就組合對應的小積木,像『紅色+20px』。
這樣做可以重複使用,且不會寫到很多重複的程式。
2. UnoCSS 怎麼幫助我們?
即用即取(On-Demand):
- 只要你在程式裡寫到
text-red-500
(紅色文字)或p-4
(四邊都內距 1rem),就會立刻生成那個樣式,其他沒用到的就不會準備,網頁更輕巧unocss.dev。
- 只要你在程式裡寫到
速度超快:
- 它沒有複雜的分析和掃描步驟,只要看到 class 就生成,據說執行速度比 Tailwind CSS JIT 還快三到五倍unocss.dev。
超輕量:
- 壓縮後大概只有 6KB 左右,就像只帶了一個小口袋,而不是大大厚厚的衣服箱unocss.dev。
客製化拼積木(Presets & Shortcuts):
除了內建的積木,你可以自己定義新的積木。
例如把
btn
這個短名,對應到一整套按鈕樣式,再寫<button class="btn">
就完成囉GitHub。
3. 簡單比喻:魔法樂高盒
傳統方式:
- 你得先把紅的、藍的、黃的、綠的積木都準備好,才知道要拼什麼。
UnoCSS:
當你要紅色時,魔法盒馬上送來紅色;要藍色時,馬上送藍色,其他都留在盒子裡,不佔空間。
想要多大的尺寸、粗細,就寫在 class 名裡,例如
w-8 h-8
(寬高都是 2rem),它就幫你現做。
4. 怎麼開始玩 UnoCSS?
安裝:
用 npm:
npm install -D unocss
或者直接用 CDN,一行就能引用,不用建專案GitHub。
設定:
- 在專案裡加一個小小的設定檔,告訴 UnoCSS 你的檔案位置、你想要的客製積木。
使用:
在 HTML、Vue、React、Svelte 等上寫 class,如同平常寫 Tailwind CSS。
開發時,看到 class 就能立刻在視覺上測試效果。
小結
UnoCSS 就像魔法樂高盒,能「即用即取」、超快、超輕量,還可以自己定義積木(presets、shortcuts)。對初學者來說,只要記得「在 class 裡寫想要的樣式名稱」,就能輕鬆打造好看又快的網頁!
希望這樣的比喻,能幫助你像組樂高一樣,快樂地玩轉 UnoCSS!
UnoCSS 跟 TailwindCSS 有什麼關聯?一樣九歲能懂方式
ChatGPT
以下內容將用最簡單的方式,告訴你 TailwindCSS 和 UnoCSS 之間的關係,就像在說故事一樣,讓 9 歲小朋友也能聽懂。
概要
TailwindCSS 和 UnoCSS 都是幫助我們寫網頁樣式(CSS)的工具,它們都用「小積木」方式(utility-first)來拼出想要的樣子。UnoCSS 是在 TailwindCSS 的基礎上加了更多魔法功能,所以可以把它當成 TailwindCSS 的「超級進化版」來用 GitHub。
TailwindCSS 是什麼?
TailwindCSS 就像一盒已經分好顏色和形狀的樂高積木,你可以直接拿紅色、拿邊距、拿字體大小來拼網頁 LinkedIn。
如果你要客製化,你可以打開它的設定檔(
tailwind.config.js
),自己加新的積木,變出獨一無二的樣式 LinkedIn。
UnoCSS 是什麼?
UnoCSS 也是一種「原子化」的 CSS 工具,但它有個魔法:只要你在程式裡寫到某個 class,它才會去生成對應的樣式,沒用到的就不會放進去,讓網頁更輕盈 DEV Community。
壓縮後通常只有不到 10KB,很像只帶最小體積的口袋,省下很多空間 DEV Community。
你還可以自己定義「快捷積木」(shortcuts),一次就召喚出一整套常用樣式,例如寫
<button class="btn">
就有一整套按鈕樣式 DEV Community。
它們之間的關係
語法相似:
UnoCSS 是 superset:
漸進式遷移:
- 如果你專案裡已經用了 TailwindCSS,只要把 UnoCSS 加進去,就能同時用到兩邊的積木,慢慢把舊的程式改成新的就好,不用一次全部重寫 DEV Community。
總結
想像 TailwindCSS 是一盒經典樂高,而 UnoCSS 則是在那盒樂高上增加了魔法按鈕,只要你需要新積木它就瞬間跑出來,還可以更快速、更省空間地幫你拼出好看的網頁。因為 UnoCSS 支援 TailwindCSS 的語法,兩者可以一起玩,也能慢慢把 TailwindCSS 的積木替換成 UnoCSS 的超級積木,讓開發更靈活、更高效。
Gemini
平常我們在幫網站「打扮」,讓它看起來漂漂亮亮的,會用到一種叫做 CSS 的東西。CSS 就像是一本很大本的「服裝目錄」,裡面有很多很多種衣服、褲子、帽子、顏色、款式等等。
問題來了:
如果你只是想幫你的樂高小人戴一頂紅色的帽子,但你卻要抱著整本超厚的「服裝目錄」去找那頂紅色的帽子,是不是很重又很慢?而且目錄裡大部分的衣服你根本也用不到。
UnoCSS 就像一個超級聰明的樂高積木小幫手!
你不用先拿到一大堆你可能用不到的積木或服裝。
你只要跟這個小幫手說:
「我想要一塊紅色的積木!」(例如你寫 <code>bg-red-500</code>)
「我想要讓這段文字變大一點!」(例如你寫 <code>text-lg</code>)
「我想要在這個東西旁邊多一點空間!」(例如你寫 <code>p-4</code>)
這個 UnoCSS 小幫手非常厲害,它會立刻只把你說到的、你真正用到的那些積木「變」出來給你。它不會給你一整箱你沒說要的積木。
這樣做有什麼好處呢?
速度快:因為你不用拿著整本厚厚的「服裝目錄」,網站(你的樂高作品)只需要知道你實際用到的那幾件衣服或積木,所以它「穿衣服」或「蓋起來」的速度就會比較快!
不浪費:只產生你需要的東西,不會有一堆沒用到的「服裝」或「積木」佔空間。
很方便:你可以像念咒語一樣,用很短的指令 (像 <code>bg-red-500</code> 這樣) 就能快速改變東西的樣子,不用寫一大堆複雜的規定。
所以,UnoCSS 就是一個很聰明的小幫手,它讓我們用更簡單、更快速的方法,只拿出我們真正需要的「樂高積木」或「服裝」,來幫網站打扮得漂漂亮亮,而且不會讓我們拿到一大堆用不到的東西,讓網站跑起來更快!
就像你只挑選你最喜歡的幾塊樂高,就能拼出你想要的酷酷模型一樣!
Subscribe to my newsletter
Read articles from Sun Pochin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Sun Pochin
Sun Pochin
I was the main web front-end engineer responsible for developing and maintaining the customer-facing platform for WisdomHall (品學堂) in 2024 Q3 Q4, code reviewed by CTO and a senior engineer. http://learning.wisdomhall.com.tw has total active 257k users, according to their Facebook post: https://www.facebook.com/share/p/1MnjbwZxCV/ My tech stack includes JavaScript, Vue 2, Nuxt 2, git, and Docker.