PixelCake PixelCake
設計思考與基礎

產品團隊的元件庫建立方法:命名規範、分類與設計前端治理流程

元件庫建立不只是整理按鈕與卡片,而是先定義元件命名規範、分類邏輯、成熟度與維護責任。掌握盤點流程、命名範例與治理檢查表,讓設計與前端團隊能穩定共用元件。

元件庫是什麼?先釐清它和設計系統、素材庫的差別

元件庫是把可重複使用的 UI 或程式碼元件集中管理,讓團隊能搜尋、引用、更新與維護的共用系統。它不只是放檔案的資料夾,也不等於完整設計系統;重點在於讓元件可以被正確使用,並在跨專案時保持一致。

元件庫的基本定義

對產品團隊來說,元件庫通常包含按鈕、輸入框、卡片、導覽列、表單欄位、提示訊息、彈窗等共用元件。設計端可能以 Figma library 管理 Main Component、Instance 與 Variants,開發端則可能以 React component、Vue component 或 Flutter widget 管理程式碼元件庫。

我會建議先把元件庫視為「共用規格」,再決定工具。工具換了,命名、分類、文件與維護規則仍然會留下來。

元件庫、設計系統、素材庫差在哪

項目 主要內容 團隊用途
元件庫 可重複使用的 UI 元件或程式碼元件 降低重複製作,維持跨專案一致性
設計系統 品牌、設計原則、design token、元件、內容規範與流程 建立產品體驗與協作規則
素材庫 圖示、圖片、插畫、範本、品牌檔案 提供可取用的視覺素材

UI 元件庫、前端元件庫、低程式碼元件庫的差異

設計元件庫偏向定義畫面規格,例如狀態、尺寸、間距、變體與使用情境。程式碼元件庫偏向可執行與可測試,例如 props、CSS variables、theme config、可及性與版本管理。Power Apps Component Library 這類低程式碼平台元件庫,則偏向在平台內重複使用控制項與邏輯。

三者可以互補,但不能混成同一份文件處理。設計師需要知道元件怎麼用,工程師需要知道 props 怎麼接,PM 需要知道誰能改、何時發布、影響哪些專案。

什麼情況適合建立元件庫?建立前先做盤點

適合做元件庫建立的時機,是同一類元件已經在多個畫面或專案重複出現,且團隊開始因命名、樣式、狀態或維護方式不同而增加溝通成本。還沒有重複使用需求時,先整理規則比急著建庫更實際。

值得抽成元件庫的 5 種訊號

  • 同一種按鈕、卡片、表單欄位在多個專案反覆出現。
  • 設計稿中有相似元件,但尺寸、色彩、狀態不一致。
  • 工程端重複實作相同 UI,且每次都要重新確認規格。
  • 新成員找不到該用哪個元件,只能複製舊畫面。
  • 產品已有多個頁面或模組,未來會持續擴充。

暫時不該放進元件庫的元件

只出現一次、仍在大量驗證、依賴單一活動頁、規格尚未穩定的元件,不適合太早納入正式元件庫。過早抽象會讓元件庫變成限制,而不是效率工具。

一個實務判斷是:如果團隊還不能說清楚它的用途、變體、狀態與不可使用情境,就先放在候選區,不要直接標成正式元件。

元件成熟度:草稿、候選、正式、棄用

成熟度 狀態說明 建議處理
草稿 正在探索,規格未穩定 只供特定專案使用
候選 可能重複使用,但還缺文件或測試 限制使用範圍,補齊規格
正式 已確認用途、狀態、owner 與版本 可跨專案引用
棄用 不再建議新專案使用 提供替代元件與 migration guide

元件庫建立流程:從盤點到發布的 7 個步驟

元件庫建立應從盤點開始,再進入抽取、分類、命名、補狀態、文件化、測試與發布。順序很重要,因為沒有盤點就命名,容易留下個人習慣;沒有文件就發布,團隊仍然會用錯。

Step 1 盤點現有畫面與重複元件

先從已上線產品、設計稿與前端頁面盤點,不要只看最新專案。把重複出現的按鈕、欄位、卡片、導覽、提示、表格列出來,標記它們出現在哪些頁面、有哪些差異、是否有互動狀態。

Step 2 抽出可重複使用的主元件

主元件應該代表穩定規格,而不是某個頁面的複製品。若一個卡片元件只因文案長短不同而變化,可以抽成同一個元件;若資訊架構完全不同,就不該硬合併。

Step 3 設定分類、命名與屬性

分類處理「放在哪裡」,命名處理「叫什麼」,屬性處理「怎麼被搜尋與維護」。這一步要一起做,否則會出現資料夾看似整齊,但搜尋不到元件的問題。

Step 4 補齊狀態、尺寸與變體

常見狀態包含 default、hover、focus、disabled、error、loading。尺寸可能有 small、medium、large。變體則可能對應 primary、secondary、danger、ghost 等語意用途。缺狀態的元件上線後通常會被各專案自行補洞,最後變成多個版本。

Step 5 撰寫元件文件與使用規則

每個正式元件至少要寫用途、適用情境、不適用情境、狀態、內容規則、可及性注意事項、開發對應與變更紀錄。文件不需要一開始就很長,但要足以讓不在原專案的人正確使用。

Step 6 測試可及性、響應式與一致性

元件庫不只要看起來一致,也要在鍵盤操作、螢幕閱讀器、不同裝置寬度與互動狀態下可用。設計端可以檢查狀態是否完整,工程端則應補上可及性與視覺回歸測試。

Step 7 發布、通知與追蹤使用情況

發布時要說明新增了哪些元件、修改了哪些規則、是否有破壞性變更、哪些專案需要跟進。後續可以追蹤 Figma library 使用量、程式碼引用次數、issue 類型與棄用元件殘留情況。

元件命名規範怎麼訂?用階層、語意與狀態命名

元件命名規範應該先描述元件用途,再補上變體、狀態與尺寸。好的命名能讓設計師找得到、工程師接得上、PM 看得懂影響範圍;不要用顏色、個人縮寫或臨時版本當主要名稱。

命名應該先描述用途,而不是視覺外觀

「Primary Button」比「Blue Button」穩定,因為藍色可能因品牌更新而改變,但主要行動的語意不會隨便變。元件命名規範的第一個原則,是把名稱綁在用途與語意上,而不是當下的視覺樣式。

建議格式:類型 / 用途 / 變體 / 狀態 / 尺寸

欄位 用途 範例
類型 說明元件大類 Button、Input、Card、Modal
用途 說明使用情境 Submit、Search、Product、Confirm
變體 說明語意層級 Primary、Secondary、Danger
狀態 說明互動狀態 Default、Hover、Disabled、Error
尺寸 說明規格大小 Small、Medium、Large

Figma 元件命名範例

Figma 可用階層式命名,例如 Button/Primary/Default/Medium、Input/Search/Error/Large、Card/Product/Default。這種命名方式能讓 library 面板自動形成群組,也方便設計師從大類一路縮小到可用變體。

前端 component 命名範例

前端 component 建議使用語意清楚的 PascalCase,例如 PrimaryButton、SearchInput、ProductCard、ConfirmModal。Props 則對應設計端變體,例如 variant="primary"、size="md"、state="loading"。命名不一定要完全複製 Figma,但語意要能對齊。

常見錯誤:顏色命名、版本命名、個人習慣命名

  • 用 BlueButton、RedTag 命名,品牌改版後名稱失準。
  • 用 ButtonNew、ButtonFinal、ButtonV3 命名,沒有人知道差異。
  • 用 AliceCard、PMBanner 命名,離開原情境後不可維護。
  • 同一元件在設計端叫 CTA,在程式碼端叫 MainAction,文件又叫主要按鈕。

元件分類:資料夾、標籤與欄位篩選怎麼搭配

元件分類不能只靠資料夾,因為元件常同時具有平台、狀態、owner、版本與使用情境。比較穩定的做法,是用資料夾管理大類,用標籤與 metadata 管理多重屬性,再用穩定 ID 維持跨工具對應。

資料夾適合放「大類」,標籤適合放「多重屬性」

資料夾適合放 Actions、Forms、Navigation、Feedback、Data Display 這類大分類。標籤適合標記 mobile、desktop、checkout、admin、deprecated、accessibility-reviewed 這類多重屬性。

為每個元件建立穩定識別碼

穩定 ID 是元件在不同工具之間的共同識別。例如 button.primary.submit 可以同時出現在 Figma 文件、Storybook、程式碼元件、設計規範與 changelog。名稱可以微調,ID 則應避免頻繁變更。

很多團隊失控的原因不是元件做太少,而是找不到同一個元件在不同系統中的對應關係。

建議欄位:owner、狀態、平台、版本、可用情境

欄位 用途 範例
owner 確認誰負責維護與審核 Design System Team、Frontend Chapter
狀態 判斷能否正式使用 draft、candidate、stable、deprecated
平台 標記可用範圍 Web、iOS、Android、Admin
版本 追蹤變更 1.2.0、2026.05
可用情境 降低誤用 表單送出、危險操作確認、商品列表

用主元件、實例與變體管理 UI 狀態

設計元件庫應用主元件管理標準,用實例承接頁面使用情境,用變體管理狀態、尺寸與語意用途。這樣能減少重複元件,也能讓設計稿更新時保持一致。

主元件負責標準,實例負責使用場景

Main Component 應該放標準結構,例如按鈕的高度、內距、字級、圓角、icon 位置與互動狀態。Instance 則放在實際畫面中,調整文字、內容或允許的屬性。

變體應該對應狀態、尺寸與語意用途

Variants 適合管理 primary、secondary、danger、disabled、loading、small、medium、large 這類可預期差異。若差異會影響使用語意,就應該寫進變體規則;若只是單一頁面的特殊排版,通常不該升級成正式變體。

不要為每個微小差異建立新元件

元件庫最怕看起來很完整,實際上每個元件只解決一個頁面。若 Button/Primary、Button/Main、Button/CTA 其實是同一用途,就應合併語意。反過來,若兩個卡片承載的資訊決策完全不同,即使外觀接近,也不一定要合併。

從設計元件庫到程式碼元件庫:如何保持同步

設計開發同步要靠共同語意,而不是靠人工口頭提醒。Figma variants 應對應 component props,design token 應對應 CSS variables 或 theme config,Storybook 則作為設計、工程與產品都能檢查的共同文件。

Figma variants 如何對應 component props

設計端 程式碼端 同步重點
Variant: primary variant="primary" 語意一致,避免只用顏色對應
Size: medium size="md" 尺寸命名需有對照表
State: loading loading=true 互動狀態需包含可及性行為
Disabled disabled=true 需同時處理樣式與不可操作狀態

Design tokens 如何對應 CSS variables 或 theme config

Design token 用來描述色彩、字級、間距、陰影、圓角等基礎值。設計端可用 token 命名管理樣式,工程端可轉成 CSS variables、theme config 或平台樣式設定。若 token 名稱不穩定,元件命名規範再漂亮也會被樣式例外拖垮。

Storybook 或文件站作為共同語言

Storybook 不是唯一選擇,但它很適合展示程式碼元件庫的狀態、props、互動與文件。PM 可以確認元件是否符合情境,設計師可以比對設計稿,工程師可以檢查 props 與行為。這種共同檢查點,比單靠設計交付檔可靠。

元件文件應該寫什麼?讓團隊知道何時該用、何時不該用

元件文件至少要說明用途、適用情境、不適用情境、狀態、變體、內容規則、可及性與開發對應。文件的目標不是把元件講得很漂亮,而是讓團隊少問一次、少用錯一次。

每個元件至少要有的 8 個欄位

欄位 應回答的問題
元件名稱與穩定 ID 這是哪一個元件?跨工具怎麼對應?
用途 它解決什麼介面需求?
適用情境 哪些頁面或任務可以使用?
不適用情境 何時應改用其他元件?
狀態與變體 有哪些互動與尺寸規格?
內容規則 文字、icon、錯誤訊息要怎麼放?
可及性 鍵盤、焦點、對比與語意標籤是否完整?
開發對應 對應哪個 component、props 與版本?

正確用法與錯誤用法都要寫

只寫正確用法,通常不足以阻止誤用。文件應明確列出「不要把 danger button 用在一般送出」、「不要用 toast 承載需要使用者決策的資訊」、「不要把表格卡片拿去做行銷版位」這類限制。

可及性與互動狀態不可省略

按鈕是否可用鍵盤操作、輸入錯誤是否被螢幕閱讀器讀到、焦點樣式是否清楚、disabled 狀態是否還能被誤點,這些都要進文件。可及性不是最後補的項目,它會影響元件本身的設計與程式碼。

元件庫治理:新增、修改、棄用與版本發布

元件庫治理是規定誰能新增、誰要審核、修改前如何確認影響範圍、棄用時怎麼提供替代方案,以及版本發布如何記錄。沒有治理,元件庫很快會回到各做各的狀態。

誰可以新增元件?誰負責審核?

新增元件不一定只能由設計系統團隊提出,但每個正式元件都應有 owner。小團隊可以用一位設計負責人加一位前端負責人共同審核;成熟團隊則可建立固定 review 節奏。

修改元件前要先確認影響範圍

修改正式元件前,先確認它被哪些畫面、專案或套件版本使用。視覺微調可能影響產品辨識,props 調整可能造成破壞性變更,token 修改則可能牽動大量元件。

棄用元件要提供替代方案與 migration guide

棄用不等於刪除。標記 deprecated 後,要說明替代元件、差異、遷移步驟與建議完成時間。沒有 migration guide 的棄用流程,通常只會讓新舊元件長期並存。

版本發布要附變更紀錄

變更類型 紀錄內容 是否需通知
新增 元件用途、狀態、使用方式 需要
修正 修正內容與影響範圍 視影響程度
破壞性變更 受影響元件、替代方式、遷移步驟 必須
棄用 棄用原因、替代元件、期限 必須

元件庫品質檢查:不要只看畫面像不像

元件庫品質檢查應涵蓋可及性、響應式、互動狀態、視覺回歸測試、單元測試與 token 一致性。只看畫面像不像,很容易漏掉鍵盤操作、狀態缺失與跨裝置問題。

可及性檢查

  • 互動元件是否可用鍵盤操作。
  • 焦點狀態是否清楚可見。
  • 文字與背景對比是否足夠。
  • 錯誤訊息是否能被輔助工具辨識。
  • icon-only button 是否有可讀名稱。

響應式與互動狀態檢查

元件要在手機、平板、桌機與容器寬度變化下都能維持結構。表單錯誤、loading、hover、focus、disabled、empty state 也要一起檢查。台灣產品團隊常忽略後台與行動版的同一元件差異,這會在維護期放大成本。

視覺回歸與單元測試

視覺回歸測試用來檢查 UI 是否被非預期改動,單元測試則檢查 props、事件、狀態與輸出是否正確。小團隊可以先從高使用量元件開始,例如 Button、Input、Modal、Table,不必一開始追求全部覆蓋。

Token 一致性檢查

Token 一致性檢查要確認元件是否使用正式色彩、字級、間距與圓角,而不是寫死臨時值。若設計元件庫和程式碼元件庫都依賴同一組 design token,後續改版會穩定很多。

元件庫建立能自動化嗎?

元件庫建立可以部分自動化,例如文件產生、changelog、測試、使用量追蹤與欄位同步。但命名原則、抽象邊界、元件是否值得共用,仍需要人做判斷。

可自動化的項目

  • 從程式碼註解或 props 產生 component documentation。
  • 從版本提交或 PR 產生 changelog 草稿。
  • 在 CI 中執行可及性、單元測試與視覺回歸測試。
  • 追蹤元件被哪些專案引用。
  • 同步 metadata、owner、版本與 deprecated 狀態。

不建議過早自動化的項目

不要太早自動判斷哪些元件應該合併、拆分或棄用。這些決策需要理解產品情境、使用者任務與團隊維護能力。自動化能幫忙發現訊號,但不應取代 owner 的判斷。

小團隊的最低自動化配置

小團隊可先做三件事:用固定模板寫元件文件、用 changelog 記錄每次版本變更、讓重要元件有基本測試。等元件量與跨專案需求增加,再導入 Storybook、使用量追蹤與 token 檢查。

常見失敗原因:為什麼元件庫建完沒人用?

元件庫建完沒人用,通常不是工具問題,而是分類、命名、owner、文件、版本與設計開發同步沒有處理好。元件庫若讓團隊找不到、用不對、改不了,就會被舊習慣取代。

元件太多但沒有分類

元件越多,越不能只靠人記憶。沒有資料夾、標籤、metadata 與穩定 ID,成員會直接複製最近看過的元件。修正方式是先合併重複項,再補上大類與可搜尋欄位。

命名看得懂,但找不到

有些命名在原專案內看得懂,跨團隊就失效。例如 PromoCard、InfoBlock、NewModal 都缺少清楚用途。元件命名規範應和搜尋習慣一起設計,讓使用者能用任務、類型、狀態找到元件。

沒有 owner,沒人敢改

沒有 owner 的元件會出現兩種結果:沒人敢修改,或每個人都自行修改。兩者都會降低信任。正式元件至少要有設計 owner、開發 owner 或共同維護窗口。

設計端和開發端長期不同步

若 Figma 顯示一套狀態,程式碼卻只有部分 props,團隊很快會失去信任。設計開發同步要靠 token、props、Storybook、版本與變更紀錄串起來。元件庫建立的真正成果,是讓元件找得到、用得對、改得動、能維護。

元件庫和設計系統差在哪?

元件庫是設計系統的一部分,主要管理可重複使用的元件。設計系統範圍更大,還包含品牌原則、design token、內容規範、互動原則與治理流程。若團隊規模還小,可以先做元件庫建立,再逐步補成完整設計系統。

小團隊需要建立元件庫嗎?

需要,但不一定要做得很重。小團隊可以先整理最常用的按鈕、表單、卡片與導覽,建立基本元件命名規範、文件模板與 owner。等跨專案使用變多,再擴充治理與自動化。

元件庫要先從 Figma 做,還是先從程式碼做?

如果問題主要在設計稿重複與視覺不一致,可以先從 Figma library 開始。如果問題主要在前端重複實作與版本維護,可以先從程式碼元件庫開始。最理想的做法,是兩邊用相同語意、token 與版本規則逐步對齊。

元件命名可以用中文嗎?

設計文件與團隊說明可以用中文,尤其是使用情境與限制。但 Figma component、React component、Vue component 與 token 名稱通常建議用英文,方便跨工具、跨程式碼與未來維護。重點是建立一致對照,而不是中英文混用到無法搜尋。

什麼元件不適合放進元件庫?

只用一次、仍在驗證、依賴單一活動頁、規格常改、沒有明確用途的元件,不適合直接放入正式元件庫。可以先放在草稿或候選狀態,等重複使用需求與規格穩定後再升級。

元件庫可以管理替代元件或替代版本嗎?

可以,而且建議要管理。當元件被棄用時,文件應標出替代元件、差異、遷移方式與版本期限。這能避免團隊同時使用新舊元件,也能讓專案有時間逐步調整。

元件太多時要怎麼整理?

先找出重複元件與低使用量元件,再用大類、標籤、metadata 與穩定 ID 重新整理。不要只靠改資料夾名稱,因為團隊通常是用用途、狀態、平台與情境來搜尋元件。

如何避免新舊元件混用?

要有清楚的 deprecated 標記、替代元件、migration guide 與版本發布紀錄。設計端可以在元件名稱或文件中標示棄用,工程端則可用警告、lint 規則或文件站提醒減少誤用。

Storybook 是元件庫嗎?

Storybook 本身比較像程式碼元件的展示與文件環境,不等於完整元件庫。它可以展示元件狀態、props、互動與範例,因此常被用來支援程式碼元件庫與設計開發同步。

元件庫多久應該檢查一次?

固定產品團隊可每月檢查候選元件、棄用元件與高使用量元件;大型改版或跨專案發布前,應做額外檢查。檢查重點包含命名、文件、owner、版本、可及性、token 一致性與使用情況。

Power Apps component library 和設計元件庫差在哪?

Power Apps component library 是低程式碼平台中的共用元件機制,偏向在平台內重複使用控制項與邏輯。設計元件庫則偏向管理 UI 規格、狀態、變體與使用規則。兩者都需要命名、分類與維護,但工具範圍不同。

元件庫一定要自己開發平台嗎?

不一定。多數團隊可以用 Figma library、Storybook、文件站、套件管理工具與表格先建立可維護流程。真正需要自建平台的情況,通常是元件量大、跨產品線多、metadata 與權限流程已經超出一般工具能處理的範圍。