iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
Vibe Coding

看得懂、叫得出、驗得過:30 天 VibeCoding UI 元件實戰系列 第 2

Day 2|這些東西到底叫什麼?Component、Pattern、Layout 與 Template

  • 分享至 

  • xImage
  •  

Day 2|這些東西到底叫什麼?Component、Pattern、Layout 與 Template

安安~我是ChiYu~

昨天留下來的後台有一個很麻煩的問題。

我知道搜尋沒反應、手機版壞掉,停用按鈕也像裝飾品;真的要叫 AI 修改時,我卻只說得出:「那個東西幫我改一下。」

既然叫不出名字,我乾脆先請 AI 幫忙點名。還是同一張 LumenDesk 成員管理後台,這次先不看紅框,也不看昨天整理的答案:

模糊 Prompt 產生的 LumenDesk 成員管理後台

圖 1:先不要往下找答案。你會把這張畫面裡的哪些東西叫作「元件」?

我只給 AI 一句:

分析這張管理後台畫面有哪些元件。

AI 很快列出 Sidebar、搜尋欄、篩選按鈕、摘要卡、Data Table、Status Badge 和分頁。看到這裡都還算合理,接著它又把整張成員管理頁、版面配置,甚至顏色和間距一起放進「元件」清單。

每個詞單獨看都跟 UI 有關,排在同一層就開始不對勁了。這很像點名時把學生、分組活動、座位配置和整間教室全部算成同學。名單很完整,接下來卻不知道要叫誰上台。

名字列了一整排,修改範圍還是畫不出來

我先不研究定義,直接拿這份清單寫下一輪需求:

把成員管理元件改得更清楚。
調整搜尋區塊。
手機版把側邊欄收起來。

三句都像人話,也都不夠準。

第一句的「成員管理元件」可能是整頁、Data Table,或其中一張成員卡。第二句的「搜尋區塊」可能只改 Search Field,也可能連部門條件、結果數量、無結果和 Reset 一起改。

第三句更麻煩。「把 Sidebar 收起來」只描述眼前的東西消失了,沒有交代手機上的完整導覽要搬去哪裡。照字面實作,AI 很可能真的把它藏起來,然後恭喜我們得到一個沒有導覽的手機版。

三句話都還沒送出,我已經無法替它們畫出修改範圍。問題不是英文背得太少,而是我把不同責任全塞進同一個「元件」抽屜,現在連抽屜都快關不起來了。

AI 列出的項目 它真正負責的事 混在一起會發生什麼
Status Badge 顯示一筆帳號目前是啟用或停用 可能只改了顏色,卻沒有補狀態語意。
搜尋、篩選和結果清單 合作完成「找到成員」這項任務 可能只做出搜尋框,沒有 Reset、無結果與錯誤處理。
Sidebar 和內容區 決定整張頁面的版面關係 可能在修改一個欄位時,把手機導覽也一起改掉。
成員管理頁 同類管理頁可以共用的內容骨架 可能把整頁誤認成一顆可以到處搬動的元件。
藍色、間距和圓角 讓多個畫面共用一致的設計值 可能以為換一組 Token 就能解決操作流程。

這些項目都和 UI 有關,只是工作的尺度完全不同。Vibe Coding 時如果不先拆開,AI 每次修改都像拿著一張「整間都可以動」的施工許可。

模糊要求與具體分類要求的差別

圖 2:左邊只說要改得更清楚;右邊先指出資料表、搜尋流程與手機版各自屬於哪一層。

先抓四個層級:Component、Pattern、Layout、Page Template

我不打算替所有設計系統重新發身分證。這篇只需要一組後面 28 天都能使用的共同座標。

先抓四個會直接改變修改範圍的層級:

名稱 在 LumenDesk 裡的例子 描述需求時要說什麼
Component(元件) Button、Search Field、Status Badge、Data Table 這個控制或資訊單位負責什麼、有哪些狀態、操作後發生什麼。
Pattern(操作方式) 輸入關鍵字、加入部門條件、查看結果、清除條件 使用者怎麼完成一段任務,失敗後又從哪裡接回來。
Layout(版面) 左側導覽加右側內容區 各區域如何排列,以及桌面與 360px 手機版怎麼轉換。
Page Template(頁面骨架) 標題、篩選區、主要資料區與新增操作 同類頁面要共用哪些結構,哪些內容可以替換。

LumenDesk 畫面的責任地圖

圖 3:畫面上的虛線不是幾塊互不相干的區域。Search Field 是 Component,也會參與更大的搜尋組合與操作 Pattern。

這四個層級不是按照大小把畫面切成四塊,而是在回答四種問題。

Component:這顆東西自己負責什麼?

Component 是能單獨指出責任的控制或資訊單位。Button 觸發動作,Status Badge 顯示狀態,Search Field 接收搜尋文字。

元件不一定只由一個 HTML 標籤組成。只要它對外有清楚責任,內部可以再包含圖示、文字與狀態;我們真正需要的是能說清楚「這次只改哪個控制」。

有些團隊會把 Search Field、部門條件和 Reset 這種共用狀態的一組控制叫 Compound Component。這個名稱可以用,但它仍屬於元件組合,不代表整段搜尋任務已經完成。

Pattern:元件到齊,不代表工作做得完

Pattern 描述的是使用者完成事情的方法,不一定有一條剛剛好的框線可以圈起來。

搜尋欄是一個 Component;輸入關鍵字、加入部門條件、查看結果、遇到無結果,再清除條件,合起來才是一段搜尋與篩選 Pattern。

AI 只做出一顆有放大鏡的輸入框,頂多算道具到齊,流程還沒開演。

Layout:手機版不是把桌面零件一起壓窄

Layout 負責區域的位置與空間關係。昨天 360px 的問題就在這一層:Sidebar 沒有重新安排,只是照著桌面寬度站在原地,把主要內容擠到畫面外。

所以「手機版把 Sidebar 縮小」不是完整策略。我們還要決定導覽入口搬去哪裡、主要內容保留哪些資訊,以及使用者能不能回到其他頁面。

Page Template:同類頁面的骨架,不是另一顆超級元件

成員、專案與活動紀錄頁,都可能保留頁面標題、篩選區、主要資料區和新增操作。資料換了,這組結構仍然存在,這就是 Page Template 在處理的範圍。

如果我只是要調整成員資料表,卻叫 AI「重做成員管理頁」,它很可能連 Header、篩選區和其他同類頁面的骨架一起動。指出 Template,就是在告訴它哪些共同結構這次不要碰。

Token 統一外觀,不能替行為簽收

顏色、間距、圓角和字級通常會透過 Design Token 跨元件共用。把停用按鈕套上 color.danger,可以讓危險操作看起來一致。

不過紅色只負責提醒風險,不會自動長出 Confirmation Dialog,也不會替我們決定停用成功或失敗時要顯示什麼。看到 Danger Token 就以為危險操作已經完成,差不多像貼完警告貼紙就宣布消防驗收通過。

Token 很重要,只是它回答的是「共用什麼設計值」,不是「使用者如何完成工作」。Design System 的範圍又更大,還會包含元件、Token、互動規則、內容寫法與使用說明。這些概念可以晚一點再展開,今天先別把它們全部塞回「元件」清單。

不同團隊對 Component、Pattern 或 Template 的邊界可能不完全一樣。這篇採用的分層是後續溝通的共用座標,不是唯一標準。團隊有自己的叫法沒問題,只要名稱對得上責任與修改範圍。

補上責任層級後,三句需求終於能畫邊界

分完層後,我回頭重寫剛才那三句:

原本的說法 補上責任與邊界後
把成員管理元件改得更清楚 只調整 Data Table 的成員、部門、角色與狀態欄;Header、Sidebar 和整頁 Template 都不要改。
調整搜尋區塊 調整「搜尋與篩選 Pattern」:包含 Search Field、部門條件、結果數量、無結果與 Reset。
手機版把側邊欄收起來 重新設計 360px Layout:桌面 Sidebar 不保留在畫面上,完整導覽改由 Header 的選單入口開啟。

現在我可以在 AI 開始前先說「這次只動哪裡」,也能直接列出「哪些地方不要碰」。這才是分類真正帶來的好處。

英文名稱的用途是指出責任,不是增加 Prompt 的專業濃度。只把「那個東西」換成 Component,修改範圍仍然說不清楚,頂多是把模糊需求翻成英文。

叫 AI 改畫面前,先請它標出責任層級

如果你拿到一張參考圖,可以先忍住「照這張做」的衝動,請 AI 把畫面拆開:

請先分析這張成員管理頁,不要直接修改畫面。

請分開列出:
- Component:可單獨辨識的控制或資訊單位。
- Pattern:使用者完成搜尋、篩選或管理任務的操作流程。
- Layout:側欄與內容區的版面關係,以及 360px 時的轉換。
- Page Template:同類管理頁會保留的共同骨架。

若多個 Component 共用同一批狀態,請另外標記為元件組合。
若顏色、間距或圓角屬於共用設計值,請標記為 Design Token,不要拿它代替互動規則。

請用表格列出畫面項目、分類理由和目前仍缺少的規格。
先不要修改畫面,也不要把所有東西統稱為 Component。

拿到分類結果後,我會先檢查四件事:

  • 整張頁面有沒有被誤叫成單一 Component。
  • Pattern 是否包含一段完整任務,不只是一顆控制項。
  • Layout 有沒有交代 360px 的轉換方式。
  • Template 和 Token 是否被拿來假裝互動已經定義。

其中一項混在一起,後面的修改範圍就還有洞。先在分析階段抓出來,總比 AI 改完整頁後,再玩「大家來找碴」省事。

名稱只畫出邊界,邊界裡仍然是一大片空白

今天我已經能說:「只改搜尋與篩選 Pattern,不動 Sidebar 和 Page Template。」

比昨天的「那個東西改好一點」準確多了。

但還不能直接叫 AI 開工。

這句話沒有說搜尋哪些欄位、輸入後何時更新、沒有結果怎麼辦,也沒寫清楚鍵盤和手機版要怎麼驗收。名稱替修改範圍畫出邊界,邊界裡要發生什麼,依然是一大片空白。

明天,我們再把這片空白填成 AI 能執行、我也能驗收的 UI Spec。

參考資料

  • W3C WAI-ARIA Authoring Practices Guide(查閱:2026-07-23):互動元件的角色、狀態與鍵盤操作需要隨元件責任一起被說清楚。
  • Material Design 3 Components(查閱:2026-07-23):成熟設計系統會整理元件的用途與使用情境;本文不把它當成唯一的命名標準。
  • Design Tokens Format Module 2025.10(查閱:2026-07-23):Token 是至少包含可讀名稱和值的設計資訊,可用於跨工具交換設計決策;該文件為 Design Tokens Community Group 報告,不是 W3C Standard。

上一篇
Day 1|AI 不是不會做,是你只說「做得好看一點」
下一篇
Day 3|一份 AI 看得懂的 UI Spec,至少要交代這 8 件事
系列文
看得懂、叫得出、驗得過:30 天 VibeCoding UI 元件實戰3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言