CSS 架構的選擇:為 2026 年的複雜性做準備

更新 發佈閱讀 11 分鐘

一個有經驗的前端工程師評估一個新專案,通常做兩件事:打開 package.json 看一下依賴,再打開 styles/ 目錄聞一下味道。後者比前者更能預測這個專案六個月後會變成什麼樣子。

CSS 架構是那種「立竿見影」不明顯,但「後果爆發」很嚴重的事情。一開始隨便寫寫感覺沒什麼,等到 Design System 有三十個元件、二十個頁面、七個開發者同時在上面動工時,CSS 的技術債才開始以失控的速度累積。

為什麼 CSS 架構問題在 2026 年變得更尖銳

過去兩年,CSS 的能力邊界經歷了幾次重大擴展:Cascade Layers、Container Queries、:has() 選擇器——這三個功能加在一起,讓很多過去必須靠 JavaScript 或後端處理的響應式邏輯,現在純 CSS 就能做到。

但能力的擴展也帶來了複雜性的上升。當你可以用 @layer 控制優先順序、用 @container 讓元件自己響應父容器、用 :has() 查詢子元素狀態時,你的 CSS 架構決策空間變得比以往任何時候都大——相應地,決策錯誤的代價也變得更高。

舉例來說:如果你的設計系統一開始沒有规划好 @layer 的結構,後來加入任何第三方 UI 框架時,你就會發現你的樣式被別人的 !important 吃得死死的,而且根本沒有乾淨的方式解套。

Cascade Layers:設計系統的「分區自治」

Cascade Layers(@layer)是 CSS 2022 年就推出的功能,但一直到 2025 年才開始被多數台灣前端團隊實際採用。原因很簡單:在那之前,用 !important 或特定的 class 命名規範(像是 BEM)也能解決大部分優先順序問題。

但 !important 不是辦法,BEM 也有極限。當你的設計系統要同時容納「基礎樣式」、「元件庫」、「主題層」、「頁面特定樣式」這四個不同優先順序的群組時,@layer 提供的是語法層級的解決方案,而不是約定層面的。

實際的做法大概是這樣:

@layer base, components, patterns, utilities, overrides;

@layer base {
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, sans-serif; }
}

@layer components {
.btn { padding: 0.75rem 1.5rem; border-radius: 6px; }
.card { background: white; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
}

@layer patterns {
.product-grid { display: grid; gap: 1.5rem; }
}

@layer utilities {
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; }
}

@layer overrides {
/* 第三方外掛或特殊頁面的覆蓋,放在最後 */
}

這樣的結構下,任何第三方程式庫只要寫進 overrides layer,就不會干擾你的 components 和 patterns。而當你需要強制覆蓋任何東西時,你可以用 @layer overrides 裡的 !important——因為你知道這個覆蓋是有範圍的。

Container Queries 正在改變「響應式元件」的定義

在 Container Queries 出現之前,「響應式設計」的邊界是視窗(viewport)。你要嘛讓整個頁面的佈局響應視窗寬度,要嘛用 JavaScript 動態計算父容器寬度再手動切換 class。

Container Queries 把響應式設計的邊界,從「視窗」擴展到了「任意父容器」。這件事看起來是 CSS 語法的改進,實際上是元件化開發的一個重大突破。

過去同一張卡片元件,要同時在側邊欄(全寬)、主內容區(雙欄)、首頁 Hero 區(三欄)呈現,你需要對每一個使用情境寫不同的 HTML class 或包不同的 wrapper。現在只需要這樣:

.card-wrapper {
container-type: inline-size;
container-name: card;
}

.card {
display: flex;
flex-direction: column;
}

@container card (min-width: 480px) {
.card { flex-direction: row; }
.card-image { width: 40%; }
}

@container card (min-width: 720px) {
.card { display: grid; grid-template-columns: 1fr 2fr; }
}

同一個 HTML 元件,在任何父容器下都自動響應——不需要 JavaScript,不需要多個 class,只需要 CSS 的父容器查詢能力。

設計 Token:用 Custom Properties 把設計決策集中化

一個網站的設計系統,如果所有的間距、顏色、圓角、陰影都直接寫死在元件 CSS 裡,每次調整品牌視覺都是一場噩夢。你需要全域搜尋 replace,而且很容易漏掉某些極端情況。

CSS Custom Properties(又稱 CSS Variables)提供了解決這個問題的標準機制。很多設計系統(如 IBM Carbon、Shopify Polaris)都已經用 Custom Properties 做設計 token,但多數中小型專案還是把具體數值直接寫進樣式裡。

一個基本的設計 token 系統大概長這樣:

:root {
--space-1: 0.25rem; --space-2: 0.5rem; --space-3: 1rem;
--space-4: 1.5rem; --space-5: 2rem; --space-6: 3rem;
--color-brand-50: #eff6ff; --color-brand-500: #3b82f6;
--color-brand-900: #1e3a8a;
--color-neutral-100: #f5f5f5; --color-neutral-900: #171717;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
--shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1);
--shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1);
--radius-sm: 4px; --radius-md: 8px;
--radius-lg: 12px; --radius-full: 9999px;
}

設計 token 的核心價值不在於「現在」讓你少寫幾個數字,而在於「未來」讓你能以最小成本調整整站的視覺系統。如果你知道 --color-brand-500 控制了網站裡所有主要按鈕的背景色、Logo 的主色、Selected 狀態的高亮,那麼「品牌主色從藍色換成綠色」這件事,影響範圍是清楚可控的。

架構選擇的實際代價:當你選了錯誤的路

我曾經看過一個電子商務網站,用 Sass @extend 語法建立了大量元件變體。剛開始看起來很整潔,但當他們需要支援「白色星期五」促銷主題時,發現沒有乾淨的方式注入另一套色彩系統。最後的解法是在每個相關 class 裡加 !important,然後再用另一層 CSS 覆蓋回來——代價是樣式表從 3,000 行膨脹到 12,000 行,三個工程師同時修改開始出現 conflict。

另一個例子是一個 SaaS 後台系統,從第一天就採用 CSS Custom Properties 做設計 token,加上 @layer 控制層級。兩年內設計系統從 20 個元件擴展到 80 個,中間經歷了三次品牌重塑,每次調整的技術債都接近零——因為所有色彩、間距、圓角都集中在一個 token 檔案裡。

這兩個故事說的是同一件事:CSS 架構的代價不是「當下」的,是「六個月後」的。現在選對路,未來節省的是整個團隊的時間。

從今天開始的具體行動

如果你的專案現在沒有任何 CSS 架構可言,從今天開始不需要急著重寫。選一個最實際的切入點:

第一步:建立設計 token。把網站目前使用的顏色、間距、字體大小全部抽出來,寫成一組 CSS Custom Properties。這個工作不需要動到任何現有樣式,只是用變數把現有值包起來,但這是所有後續改進的基礎。

第二步:選定一個簡單元件(例如按鈕或輸入框),把其中的魔法數字(像是 padding: 13px、margin-bottom: 47px)換成你的 token 變數。體會一下改了一個 --space-3 的值,該元件自動跟著調整的感覺。

第三步:引進一個 @layer 結構。把你的 styles 分成 base、components、utilities 三層,用 @layer 宣告優先順序。之後加入任何新樣式時,都放在 components 或 utilities 層。

這三步不需要任何新工具,不需要學任何新框架——瀏覽器 DevTools 就是你現成的 CSS 架構視覺化工具。Cascade Layers、Container Queries、Custom Properties——這些語法在 2026 年已經是所有主流瀏覽器的基本配備。

留言
avatar-img
古拉迪亞特爾里克的沙龍
0會員
13內容數
曾經與程式毫無關聯的大叔,在人生中途踏入IT世界。 從零開始、跌跌撞撞,在無數錯誤與崩潰中重建自己。 這不只是轉職的故事,而是一場屬於大叔的逆襲之戰。
2026/04/04
曾任 Azure Core 工程師的文章在 Hacker News 引發熱議,揭露微軟內部「商業決策」如何犧牲「工程價值」,導致雲端平臺穩定性與使用者信任受損。文章探討了工程紀律與商業現實的衝突,並為臺灣企業提供瞭如何評估雲端供應商工程文化、建立備案的重要啟示,強調不應假設平臺永遠正常。
Thumbnail
2026/04/04
曾任 Azure Core 工程師的文章在 Hacker News 引發熱議,揭露微軟內部「商業決策」如何犧牲「工程價值」,導致雲端平臺穩定性與使用者信任受損。文章探討了工程紀律與商業現實的衝突,並為臺灣企業提供瞭如何評估雲端供應商工程文化、建立備案的重要啟示,強調不應假設平臺永遠正常。
Thumbnail
2026/04/03
本文探討了為何有些網站能吸引使用者停留,有些則迅速流失,並提出運用動漫敘事的底層邏輯,分析「情緒節奏」如何在網站設計中應用,透過建立、升高、釋放的模式,以及角色設定、建立日常、給予留白、具體化痛點等技巧,優化使用者體驗,將網站從「說明書」轉化為引人入勝的「連載漫畫」。
Thumbnail
2026/04/03
本文探討了為何有些網站能吸引使用者停留,有些則迅速流失,並提出運用動漫敘事的底層邏輯,分析「情緒節奏」如何在網站設計中應用,透過建立、升高、釋放的模式,以及角色設定、建立日常、給予留白、具體化痛點等技巧,優化使用者體驗,將網站從「說明書」轉化為引人入勝的「連載漫畫」。
Thumbnail
2026/04/02
前言:一個數字改變了工程師對AI coding tool的期待 2026年4月1日,Anthropic官方的Claude Code在GitHub上的stars數字突破了97,199。同一時間,OpenAI的Codex拿到了71,116顆,Microsoft的VibeVoice拿到了33,983顆。
Thumbnail
2026/04/02
前言:一個數字改變了工程師對AI coding tool的期待 2026年4月1日,Anthropic官方的Claude Code在GitHub上的stars數字突破了97,199。同一時間,OpenAI的Codex拿到了71,116顆,Microsoft的VibeVoice拿到了33,983顆。
Thumbnail
看更多
你可能也想看
Thumbnail
經常在社群上看到有人詢問為什麼我的「網站名稱」是網址?要如何修改出現在搜尋結果頁上的網站名稱?因此,本篇文章將解釋什麼是網站名稱、如何撰寫及新增網站名稱。
Thumbnail
經常在社群上看到有人詢問為什麼我的「網站名稱」是網址?要如何修改出現在搜尋結果頁上的網站名稱?因此,本篇文章將解釋什麼是網站名稱、如何撰寫及新增網站名稱。
Thumbnail
在數位時代,SEO(搜尋引擎優化)已成為創業者提升網站排名、吸引流量的關鍵工具。網站結構的優化對於SEO的影響不可小覷,它能直接決定網站在搜尋引擎結果中的位置。本文將探討如何利用網站結構優化來提升排名,並介紹如何借助專業的SEO公司服務,進一步增強數位行銷的效果。 一、網站結構優化的重要性
Thumbnail
在數位時代,SEO(搜尋引擎優化)已成為創業者提升網站排名、吸引流量的關鍵工具。網站結構的優化對於SEO的影響不可小覷,它能直接決定網站在搜尋引擎結果中的位置。本文將探討如何利用網站結構優化來提升排名,並介紹如何借助專業的SEO公司服務,進一步增強數位行銷的效果。 一、網站結構優化的重要性
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
網站速度優化至少可以從主機位置、減少HTTP Requests次數、壓縮網頁程式碼、移除未使用的CSS、JS、HTML、精簡圖片大小、減少HTML元素、延遲載入、善用CDN服務、伺服器端程式演算法和資料庫表單欄位結構等10個面向進行。
Thumbnail
網站速度優化至少可以從主機位置、減少HTTP Requests次數、壓縮網頁程式碼、移除未使用的CSS、JS、HTML、精簡圖片大小、減少HTML元素、延遲載入、善用CDN服務、伺服器端程式演算法和資料庫表單欄位結構等10個面向進行。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
SEO Service - 香港ALL IN SEO公司專業SEO推廣服務 SEO Service:提升網站排名的最佳方案 在數位時代,SEO(搜尋引擎優化)已成為每個企業的必需策略。香港ALL IN SEO公司專注於提供專業的SEO服務,助您提升網站搜尋排名,實現流量增長與業務突破。 無論您
Thumbnail
SEO Service - 香港ALL IN SEO公司專業SEO推廣服務 SEO Service:提升網站排名的最佳方案 在數位時代,SEO(搜尋引擎優化)已成為每個企業的必需策略。香港ALL IN SEO公司專注於提供專業的SEO服務,助您提升網站搜尋排名,實現流量增長與業務突破。 無論您
Thumbnail
在競爭激烈的網絡世界中,行銷人需要使用各種強大的SEO工具來提升他們的網站排名。Title/Description編輯器是一個受歡迎的SEO工具,它提供了自動生成Google結構化標記、url-rewrite、網站sitemap.xml產生器、301轉址工具和可編輯圖片alt(替代文字)等功能。
Thumbnail
在競爭激烈的網絡世界中,行銷人需要使用各種強大的SEO工具來提升他們的網站排名。Title/Description編輯器是一個受歡迎的SEO工具,它提供了自動生成Google結構化標記、url-rewrite、網站sitemap.xml產生器、301轉址工具和可編輯圖片alt(替代文字)等功能。
Thumbnail
本文記錄 1/27~1/28 參加臺南青年職涯發展中心舉辦的 「SEO不只是入門-進階實際應用班」講座。講座內容相當扎實,包含SEO概念與內容佈局,進階SEO技術,以及數據分析應用。另外,文章也提到了SEO的工作內容和目標,以及關於SEO演算法因素和網站架構的相關資訊。
Thumbnail
本文記錄 1/27~1/28 參加臺南青年職涯發展中心舉辦的 「SEO不只是入門-進階實際應用班」講座。講座內容相當扎實,包含SEO概念與內容佈局,進階SEO技術,以及數據分析應用。另外,文章也提到了SEO的工作內容和目標,以及關於SEO演算法因素和網站架構的相關資訊。
Thumbnail
當設計一頁式引流網頁時,需要考慮關鍵字研究和優化、內容優化、結構化數據標記、網頁速度優化、高品質的外部連結以及衡量和優化的策略。這些策略有助於提高網頁在搜索引擎中的排名和吸引目標用戶。
Thumbnail
當設計一頁式引流網頁時,需要考慮關鍵字研究和優化、內容優化、結構化數據標記、網頁速度優化、高品質的外部連結以及衡量和優化的策略。這些策略有助於提高網頁在搜索引擎中的排名和吸引目標用戶。
Thumbnail
網頁的 `<head>` 標籤就像是網站的「大腦」,雖然使用者看不到,但它包含了影響搜尋引擎索引、社群分享預覽以及網頁運作方式的關鍵元數據 (Metadata)。本文將深入探討 `<head>` 標籤的組成、重要性,以及初學者常犯的錯誤,讓你掌握建置健康網站的基礎。
Thumbnail
網頁的 `<head>` 標籤就像是網站的「大腦」,雖然使用者看不到,但它包含了影響搜尋引擎索引、社群分享預覽以及網頁運作方式的關鍵元數據 (Metadata)。本文將深入探討 `<head>` 標籤的組成、重要性,以及初學者常犯的錯誤,讓你掌握建置健康網站的基礎。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News