/impeccable extract
Extract
將可重複使用的元件、token 和模式提取到設計系統中。
01發現偏離重複的 hex 值、按鈕變體、間距比例、文字樣式。
02提出基元Token 名稱、帶變體 + 尺寸的元件 API、文字樣式。
03遷移呼叫點用新的基元替換重複的 CSS。不留孤立的程式碼。
技能只提取使用三次或以上且意圖相同的東西。兩次使用不是模式,遷移總是在同一輪中完成。
何時使用
/impeccable extract 適用於你的程式庫已經意外成為一個設計系統的時刻。12 個地方重複的按鈕樣式。三種版本的同一張卡片。散落各處的 hex 色彩。碰巧匹配某個比例的手工間距。當你想要將這些偏離整合為可重複使用的基元時使用。
在產品已經交付了足夠的功能來揭示模式後使用。過早提取會創造與現實不符的抽象。
運作方式
技能首先發現設計系統結構,然後識別提取機會:
- Token:找到重複的字面值(色彩、間距、圓角、陰影、字型大小)。提出 token 名稱、加入 token 系統、替換使用處。
- 元件:找到以微小變化重複的 UI 模式(按鈕、卡片、輸入框、對話框)。提取為帶變體的單一元件,遷移呼叫方。
- 組合模式:找到重複的版面或互動模式(表單行、工具列群組、空狀態)。提取為組合基元。
- 文字樣式:找到重複的 font-size + weight + line-height 組合。提取為文字樣式。
- 動畫模式:找到重複的緩動、持續時間或關鍵影格組合。提取為動態 token。
技能是謹慎的。它只提取使用三次或以上且意圖相同的東西。它絕不提取「因為以後可能會重複使用」。過早的抽象比重複更糟糕。
試試看
/impeccable extract the button styles
預期輸出:
- 在 8 個檔案中找到 14 個按鈕實例
- 4 種不同的變體:primary(填滿重點色)、secondary(帶邊框)、ghost(純文字)、destructive(填滿紅色)
- 所有 4 種變體使用相同的尺寸比例(small、default、large)
- 提取為
<Button variant="primary" size="default">,帶 token 驅動的樣式 - 遷移 14 個呼叫點,移除約 180 行重複的 CSS
- 新增 3 個缺少的 token:
--button-radius、--button-padding-y、--button-padding-x
注意事項
- 太早提取。 兩次使用不是模式。三次可能是。等到模式很明顯。
- 過度通用化。 提取的元件應該密切匹配當前的使用案例,而不是預期每個可能的未來案例。你隨時可以之後添加變體。
- 忘記遷移。 沒有遷移的提取讓舊的重複程式碼留在原地,並創造做同一件事的第三種方式。總是在同一輪中遷移。
- 提取意圖不同的東西。 兩個看起來相似但用途不同的按鈕(主要操作 vs 樣式化為按鈕的連結)可能應該保持分開。