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

Sun PochinSun Pochin
2 min read

以下內容會用 9 歲小朋友也能懂的方式,介紹 UnoCSS 是什麼、為什麼好用,以及它最特別的地方。

重點摘要

想像你在玩樂高,原本要先把所有積木都準備好,才能開始拼;但 UnoCSS 就像有個魔法盒子,當你需要紅色積木才去拿紅色積木,需要藍色積木才去拿藍色積木,省下很多不知道要不要準備的時間和空間。它是一種「即用即取」的原子化 CSS 工具,只要你在 HTML 上寫一個小小的 class,對應的樣式就會立刻出現,讓網頁變得又快又輕盈,而且還很好客製化。


1. CSS 和 「原子化」是什麼?

  1. CSS(網頁樣式)

    • 就像為網頁穿衣服,決定它的顏色、大小、位置。

    • 傳統做法是先寫一大堆衣服(樣式),再提醒每個元素穿哪一套。

  2. 原子化 CSS(Atomic CSS)

    • 把每種樣式拆成「最小單位」的積木(例如:紅色、20px、粗體字)。

    • 你想要什麼效果,就組合對應的小積木,像『紅色+20px』。

    • 這樣做可以重複使用,且不會寫到很多重複的程式。


2. UnoCSS 怎麼幫助我們?

  1. 即用即取(On-Demand)

    • 只要你在程式裡寫到 text-red-500(紅色文字)或 p-4(四邊都內距 1rem),就會立刻生成那個樣式,其他沒用到的就不會準備,網頁更輕巧unocss.dev
  2. 速度超快

    • 它沒有複雜的分析和掃描步驟,只要看到 class 就生成,據說執行速度比 Tailwind CSS JIT 還快三到五倍unocss.dev
  3. 超輕量

    • 壓縮後大概只有 6KB 左右,就像只帶了一個小口袋,而不是大大厚厚的衣服箱unocss.dev
  4. 客製化拼積木(Presets & Shortcuts)

    • 除了內建的積木,你可以自己定義新的積木。

    • 例如把 btn 這個短名,對應到一整套按鈕樣式,再寫 <button class="btn"> 就完成囉GitHub


3. 簡單比喻:魔法樂高盒

  • 傳統方式

    • 你得先把紅的、藍的、黃的、綠的積木都準備好,才知道要拼什麼。
  • UnoCSS

    • 當你要紅色時,魔法盒馬上送來紅色;要藍色時,馬上送藍色,其他都留在盒子裡,不佔空間。

    • 想要多大的尺寸、粗細,就寫在 class 名裡,例如 w-8 h-8(寬高都是 2rem),它就幫你現做。


4. 怎麼開始玩 UnoCSS?

  1. 安裝

    • 用 npm:npm install -D unocss

    • 或者直接用 CDN,一行就能引用,不用建專案GitHub

  2. 設定

    • 在專案裡加一個小小的設定檔,告訴 UnoCSS 你的檔案位置、你想要的客製積木。
  3. 使用

    • 在 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 是什麼?

UnoCSS 是什麼

  1. 同樣的理念

  2. 語法相似

  3. UnoCSS 是 superset

  4. 漸進式遷移

總結

想像 TailwindCSS 是一盒經典樂高,而 UnoCSS 則是在那樂高上增加了魔法鈕,只要你需要新積木它就瞬間跑出來,還可以更快速、更省空間地幫你拼出好看的網頁。因為 UnoCSS 支援 TailwindCSS 的語法,兩者可以一起玩,也能慢慢把 TailwindCSS 的積木替換成 UnoCSS 的超級積木,讓開發更靈活、更高效。

Gemini

好的,想像一下你在玩樂高積木!

平常我們在幫網站「打扮」,讓它看起來漂漂亮亮的,會用到一種叫做 CSS 的東西。CSS 就像是一本很大本的「服裝目錄」,裡面有很多很多種衣服、褲子、帽子、顏色、款式等等。

問題來了:

如果你只是想幫你的樂高小人戴一頂紅色的帽子,但你卻要抱著整本超厚的「服裝目錄」去找那頂紅色的帽子,是不是很重又很慢?而且目錄裡大部分的衣服你根本也用不到。

UnoCSS 就像一個超級聰明的樂高積木小幫手!

你不用先拿到一大堆你可能用不到的積木或服裝。

你只要跟這個小幫手說:

這個 UnoCSS 小幫手非常厲害,它會立刻只把你說到的、你真正用到的那些積木「變」出來給你。它不會給你一整箱你沒說要的積木。

這樣做有什麼好處呢?

  1. 速度快:因為你不用拿著整本厚厚的「服裝目錄」,網站(你的樂高作品)只需要知道你實際用到的那幾件衣服或積木,所以它「穿衣服」或「蓋起來」的速度就會比較快!

  2. 不浪費:只產生你需要的東西,不會有一堆沒用到的「服裝」或「積木」佔空間。

  3. 很方便:你可以像念咒語一樣,用很短的指令 (像 <code>bg-red-500</code> 這樣) 就能快速改變東西的樣子,不用寫一大堆複雜的規定。

所以,UnoCSS 就是一個很聰明的小幫手,它讓我們用更簡單、更快速的方法,只拿出我們真正需要的「樂高積木」或「服裝」,來幫網站打扮得漂漂亮亮,而且不會讓我們拿到一大堆用不到的東西,讓網站跑起來更快!

就像你只挑選你最喜歡的幾塊樂高,就能拼出你想要的酷酷模型一樣!

1
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.