<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tailwindcss on BenzHub</title><link>https://benzhub.github.io/tags/tailwindcss/</link><description>Recent content in Tailwindcss on BenzHub</description><generator>Hugo</generator><language>zh-TW</language><lastBuildDate>Sun, 09 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://benzhub.github.io/tags/tailwindcss/index.xml" rel="self" type="application/rss+xml"/><item><title>TailwindCSS Flexbox 完整指南：flex、justify、align、gap 一次搞定 | TailwindCSS 完整教學</title><link>https://benzhub.github.io/post/tailwindcss/009-flexbox/</link><pubDate>Sun, 09 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/tailwindcss/009-flexbox/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;TailwindCSS&lt;/strong&gt; 裡，&lt;strong&gt;Flexbox&lt;/strong&gt; 是最常用、也最值得先練熟的一維版面引擎——只要對容器寫上 &lt;code&gt;flex&lt;/code&gt;，再搭配 &lt;code&gt;justify-*&lt;/code&gt; 決定主軸怎麼分配、&lt;code&gt;items-*&lt;/code&gt; 決定交軸怎麼對齊、&lt;code&gt;gap-*&lt;/code&gt; 拉開間距、&lt;code&gt;flex-1&lt;/code&gt; 讓子項等分空間，就能一組 utility 搞定置中、等分、換行這些每天都在寫的版面需求。這是 &lt;strong&gt;TailwindCSS 完整教學&lt;/strong&gt; 系列的第九篇，我們會把整套 Flexbox 工具類從容器到子項一次講透，並以 v4 為預設、標註與 v3 的差異。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>TailwindCSS Layout 與 Display：block、flex、grid、overflow、object-fit 全解析 | TailwindCSS 完整教學</title><link>https://benzhub.github.io/post/tailwindcss/008-layout-display/</link><pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/tailwindcss/008-layout-display/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;TailwindCSS&lt;/strong&gt; 裡，&lt;strong&gt;Layout&lt;/strong&gt; 與 &lt;strong&gt;display&lt;/strong&gt; 是版面的骨架——&lt;code&gt;block&lt;/code&gt;、&lt;code&gt;inline&lt;/code&gt;、&lt;code&gt;flex&lt;/code&gt;、&lt;code&gt;grid&lt;/code&gt; 決定元素怎麼排列，&lt;code&gt;hidden&lt;/code&gt; 決定它出不出現，&lt;code&gt;overflow&lt;/code&gt; 決定內容溢出時怎麼處理，&lt;code&gt;object-fit&lt;/code&gt; 決定圖片如何填滿容器。這篇是 &lt;strong&gt;TailwindCSS 完整教學&lt;/strong&gt; 系列的第八篇，也是版面章節（TW-3）的開場，我們會把這一整組「掌控排列方式」的工具類一次講透，並以 v4 為預設、標註每一項與 v3 的差異。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>TailwindCSS 排版與文字完整指南：font 字體、text 字級、leading 行高、tracking 字距、text-wrap 與 v4 text-shadow、line-clamp、truncate | TailwindCSS 完整教學</title><link>https://benzhub.github.io/post/tailwindcss/007-typography/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/tailwindcss/007-typography/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;TailwindCSS&lt;/strong&gt; 裡，排版（Typography）是你每天都會碰到的第一組工具類——字體、字級、行高、字距、字重、對齊、截斷，幾乎每個畫面元素都少不了。這篇是 &lt;strong&gt;TailwindCSS 完整教學&lt;/strong&gt; 系列的第七篇，我們會把 &lt;code&gt;font-*&lt;/code&gt;、&lt;code&gt;text-*&lt;/code&gt;、&lt;code&gt;leading-*&lt;/code&gt;、&lt;code&gt;tracking-*&lt;/code&gt; 這些 &lt;strong&gt;text 工具類&lt;/strong&gt; 一次講透，包含 v4 新增的 &lt;code&gt;text-wrap&lt;/code&gt; 智慧換行與 &lt;code&gt;text-shadow&lt;/code&gt; 文字陰影，並帶你用可執行的範例把設計系統的字級 Token 真正落到畫面上。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>TailwindCSS v4 遷移指南：從 v3 升級的破壞性變更、@tailwindcss/upgrade 自動遷移與漸進策略完整教學 | TailwindCSS 完整教學</title><link>https://benzhub.github.io/post/tailwindcss/006-v4-migration/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/tailwindcss/006-v4-migration/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TailwindCSS&lt;/strong&gt; v4 是一次根本性的架構重設計：設定從 JavaScript 搬進 CSS、核心引擎用 Rust 重寫、&lt;code&gt;@tailwind&lt;/code&gt; 三行換成一行 &lt;code&gt;@import&lt;/code&gt;，還有一整批 utility 被系統性重新命名。這些&lt;strong&gt;破壞性變更（breaking changes）&lt;strong&gt;讓從 v3 直接升級不是「換個版本號」那麼簡單。這篇是 &lt;strong&gt;TailwindCSS 完整教學&lt;/strong&gt; 系列的第六篇，我們把前幾篇散落的 v3/v4 差異收攏起來，帶你走一遍完整的 &lt;strong&gt;v4 遷移&lt;/strong&gt; 流程——從自動遷移工具 &lt;code&gt;npx @tailwindcss/upgrade&lt;/code&gt;、逐項破壞性變更對照，到大型專案的漸進&lt;/strong&gt;升級&lt;/strong&gt;策略。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>TailwindCSS 指令與函式全解析：@import、@layer、@apply、@utility 與 theme()/--alpha() 完整教學 | TailwindCSS 完整教學</title><link>https://benzhub.github.io/post/tailwindcss/005-directives-functions/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/tailwindcss/005-directives-functions/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;TailwindCSS&lt;/strong&gt; v4 裡，指令（directives）與函式（functions）是你在 CSS 檔案裡「動用」設計系統的工具箱。從一行 &lt;strong&gt;&lt;code&gt;@import &amp;quot;tailwindcss&amp;quot;&lt;/code&gt;&lt;/strong&gt; 載入整套框架，到用 &lt;strong&gt;&lt;code&gt;@layer&lt;/code&gt;&lt;/strong&gt; 控制優先級、&lt;strong&gt;&lt;code&gt;@apply&lt;/code&gt;&lt;/strong&gt; 提取 utility、&lt;strong&gt;&lt;code&gt;@utility&lt;/code&gt;&lt;/strong&gt; 定義自訂 utility、&lt;strong&gt;&lt;code&gt;@custom-variant&lt;/code&gt;&lt;/strong&gt; 造出新變體，再到 &lt;code&gt;theme()&lt;/code&gt;、&lt;code&gt;--alpha()&lt;/code&gt;、&lt;code&gt;--spacing()&lt;/code&gt; 這些函式取用 Token——這篇是 &lt;strong&gt;TailwindCSS 完整教學&lt;/strong&gt; 系列的第五篇，帶你一次看懂 v4 的指令與函式語彙，並標註它與 v3 的關鍵差異。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>TailwindCSS 配置系統：@theme CSS-first 設定完整解析與 tailwind.config.js 遷移 | TailwindCSS 完整教學</title><link>https://benzhub.github.io/post/tailwindcss/004-configuration/</link><pubDate>Tue, 04 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/tailwindcss/004-configuration/</guid><description>&lt;blockquote&gt;
&lt;p&gt;在 &lt;strong&gt;TailwindCSS&lt;/strong&gt; v4 裡，「配置」不再是一個獨立的 JavaScript 檔案，而是直接寫進你的 CSS。核心是 &lt;strong&gt;&lt;code&gt;@theme&lt;/code&gt;&lt;/strong&gt; 指令——你在裡面定義的每一個設計 Token，會同時變成一個 &lt;strong&gt;CSS 變數&lt;/strong&gt;，並自動生成對應的 utility class。這是 &lt;strong&gt;TailwindCSS 完整教學&lt;/strong&gt; 系列的第四篇，帶你看懂 &lt;code&gt;@theme&lt;/code&gt; 如何運作、&lt;code&gt;extend&lt;/code&gt; 擴充與覆寫的分界、常見設定項的命名空間規則，以及如何從 &lt;code&gt;tailwind.config.js&lt;/code&gt; 的思維遷移過來。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>TailwindCSS 類別偵測機制：內容掃描、safelist 與動態 class 陷阱完整解析 | TailwindCSS 完整教學</title><link>https://benzhub.github.io/post/tailwindcss/003-class-detection/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/tailwindcss/003-class-detection/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TailwindCSS&lt;/strong&gt; 最讓新手困惑的一件事，往往是「我明明寫了 class，樣式卻憑空消失」。答案藏在它的&lt;strong&gt;類別偵測（class detection）&lt;strong&gt;機制裡——Tailwind 靠的是&lt;/strong&gt;內容掃描（content scanning）&lt;/strong&gt;，一種字串層級的搜尋，而不是執行你的程式碼。這是 &lt;strong&gt;TailwindCSS 完整教學&lt;/strong&gt; 系列的第三篇，帶你看懂掃描器怎麼「讀」你的原始碼，並徹底避開 &lt;code&gt;text-${color}&lt;/code&gt; 這類動態拼接的陷阱。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>TailwindCSS 架構與 Oxide 引擎：JIT、Rust 與 CSS 處理管線完整解析 | TailwindCSS 完整教學</title><link>https://benzhub.github.io/post/tailwindcss/002-architecture-jit-oxide/</link><pubDate>Sun, 02 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/tailwindcss/002-architecture-jit-oxide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TailwindCSS v4&lt;/strong&gt; 最大的改變不在你寫的 class，而在你看不到的引擎。這篇文章帶你打開引擎蓋，看看以 &lt;strong&gt;Rust&lt;/strong&gt; 重寫的 &lt;strong&gt;Oxide&lt;/strong&gt; 引擎如何運作：它怎麼掃描你的原始碼、按需產生 CSS，又為什麼建構速度能比 v3 快上一個數量級。這是 &lt;strong&gt;TailwindCSS 完整教學&lt;/strong&gt; 系列的第二篇，也是理解整個框架運作原理的關鍵。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Utility-First 是什麼？TailwindCSS 核心哲學完整解析 | TailwindCSS 完整教學</title><link>https://benzhub.github.io/post/tailwindcss/001-utility-first-philosophy/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/tailwindcss/001-utility-first-philosophy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;為什麼 &lt;strong&gt;TailwindCSS&lt;/strong&gt; 要你在 HTML 裡塞一堆像 &lt;code&gt;p-4&lt;/code&gt;、&lt;code&gt;bg-white&lt;/code&gt;、&lt;code&gt;rounded-lg&lt;/code&gt; 的小 class，而不是好好寫一個 &lt;code&gt;.card&lt;/code&gt;？這篇文章帶你理解 &lt;strong&gt;Utility-First&lt;/strong&gt; 這套核心哲學：它如何顛覆傳統的「關注點分離」，解決了哪些真實痛點，又付出了什麼代價。這是 &lt;strong&gt;TailwindCSS 完整教學&lt;/strong&gt; 系列的第一篇，也是理解整個框架的思維起點。&lt;/p&gt;
&lt;/blockquote&gt;</description></item></channel></rss>