Communitygithub.com

ChaseSunstrom/ui-design

當您建立或重新設計頁面、元件、動畫或 3D 場景時使用:方向、設計 Token、動態、品質檢查。

ui-design 是什麼?

這個技能「Sampo: UI 設計、動態與 3D」提供了一套完整的結構化工作流程,用於打造具備明確觀點的 UI,而非千篇一律的通用卡片組。它支援所有主流開發平台:任何可執行終端機指令的環境(如 Claude Code、Cursor、Codex),並針對基於檔案系統的專案最佳化。工作流程分為七個步驟:方向(透過 sampo:directions 提供靈感與決策記錄)、設計 Token(從程式碼或 Figma 提取,或從種子色彩生成)、構建(使用嚴謹的範本與版面指南)、動態(透過 Motion Score 進行協調性檢查與程式碼編譯)、3D(將場景描述為資料,編譯成 Three.js 或 WebGL 元件)、品質檢查(透過 lint、對比度檢查、視覺快照與 critique 工具驗證),最後是品味回饋(記錄使用者對樣式的偏好,以改進未來推薦)。它透過一系列的 sampo CLI 指令與路徑參考 playbook 來運作,確保每個步驟都有清晰的文件與產出。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ChaseSunstrom/sampo/tree/HEAD/plugin/skills/ui-design

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Sampo:UI 設計、動態與 3D

一條路徑,處理任何與畫面外觀或動態相關的工作:網頁、應用程式畫面、元件、動畫、3D 場景,或單純的「讓它更好看」。它會導向至 UI 操作手冊(以下路徑相對於此技能;可使用 sampo playbooks show ui/NAME 印出相同檔案)以及用於衡量結果的 sampo 動詞。目標是打造一個擁有觀點的 UI,絕非通用卡片組:以下每個步驟若不是做出決定,就是證明一個決定。若為終端機 UI 或 Claude Code 模組,請改為使用 ../playbooks/references/ui/terminal-ui.md。

請在專注的任務中工作(每個步驟都會編輯檔案)。每個步驟只閱讀它指定的操作手冊。

1. 方向:決定它應該帶給人的感受

  • 儲存庫中已有一個(包含 ## Direction 區段的 DESIGN.md、品牌指南、已上線的設計系統):以此為準。閱讀它並前往步驟 2,除非使用者要求全新的外觀。
  • 沒有方向,或使用者想要選擇外觀或樣式:載入:技能 sampo:directions(從一句話產生六張單頁卡片,並將選擇結果儲存為附帶大膽程度的 DESIGN.md)。
  • 展示真實範例而非描述:sampo page looks 會建立一個展示畫廊,每個外觀卡片都有一個實際範例;sampo looks 會根據使用者過去保留和還原的記錄,對二十個外觀進行評分,因此請從其頂部推薦。
  • 立場、品味詞彙、方向庫以及「應避免的預設值」:請參閱 ../playbooks/references/ui/design-direction.md。

2. Token:字型、顏色、間距

  • ../playbooks/references/ui/type-and-colour.md:字級與配對、OKLCH 調色盤角色、深色模式視為獨立處理階段。
  • 現有 CSS:sampo design extract SRC 會從其自訂屬性中提取 Token 表格,並寫入 DESIGN.md 的 ## Tokens 區段(使用 --out - 則改為印出)。從無到有:sampo design palette SEED --out tokens.css 會從一個顏色產生淺色與深色調色盤(使用 --format css|dtcg|tailwind);它會輸出到標準輸出,因此請使用 > 重新導向。從 Figma 或 DTCG .json 檔案獲取 Token:sampo design tokens tokens.json --to md --out DESIGN.md。硬編碼的值:sampo design infer SRC 會建議 Token。
  • 品牌資產:sampo design tokens DESIGN.md --to brand --out public/ 會寫入 favicon.svg 和 card.svg。
  • Token 偏移:sampo design xray PAGE --out xray.png 會將每個元素標記為綠色(Token 顏色)或紅色。
  • 在開始建構之前先驗證:sampo design contrast TOKENS 會檢查角色配對(在深色模式下,正文文字對比度需達 7:1)。

3. 建構:版面與行為

  • 從嚴格的範本開始:先執行 sampo new list,然後執行 sampo new web DIR(頁面)或 sampo new scene DIR(3D 場景);sampo new check PATH 可確保其保持嚴謹。
  • ../playbooks/references/ui/composition.md:韻律、網格、單一光源產生的深度、主視覺、狀態圖集。
  • ../playbooks/references/ui/interaction.md:回饋截止時間、鍵盤操作流程、表單錯誤、360 像素觸控規則。
  • 圖表:../playbooks/references/ui/data-viz.md。故事頁面:../playbooks/references/ui/scrollytelling.md。
  • 程式碼側的卡片:sampo lib show NAME(操作手冊中會指出哪些名稱)。

4. 動態:經過設計,而非隨意點綴

  • ../playbooks/references/ui/motion.md:時間 Token、狀態到動態的對照表、分鏡腳本、減少動畫偏好設定視為獨立路徑。
  • 撰寫 Motion Score(儲存庫根目錄下的 motion.toml),然後執行 sampo motion check(檢查遺漏的縮減形式、未知的緩動函數、DESIGN.md 缺少的 Token)以及 sampo motion compile --to css|waapi|three|lab --out FILE 來輸出程式碼。
  • 遊戲與趣味性 UI:../playbooks/references/ui/game-feel.md。音效:../playbooks/references/ui/sound-design.md。

5. 3D:絕不破壞頁面的場景

  • ../playbooks/references/ui/scene-3d.md:構圖、光源與材質、幀數預算、生存契約(無 WebGL、減少動畫、遺失上下文)、黑畫面故障排除。
  • 將場景描述為資料(攝影機、光源、材質、網格、動畫)一次,儲存在 scene.json 中,然後執行 sampo scene compile scene.json --to three --out scene.js(一個 three.js 模組)或 --to component(一個元件)。
  • 無依賴項:單一檔案的 WebGL2 範本 ../playbooks/references/ui/templates/scene.html(使用 sampo new scene)。
  • 燈光配置與 PBR 預設:sampo lib show light-and-material;用於單一表面的著色器紋理,絕非整個方向:sampo lib list --area looks,然後是 sampo lib show shader-NAME;函式庫:sampo lib show three-js、sampo lib show react-three-fiber。

6. 檢查:透過觀察來驗證

  • sampo design lint SRC:通用設計問題與工藝瑕疵;請修正每一項,或說明為何保留。其最後一行會列出 DESIGN.md 中未被任何檔案使用的 Token:請將它們加入程式碼中,或從 Token 表格中刪除。
  • sampo design check:DESIGN.md 中選擇啟用的閘門(## Gates,格式為 - brief: advisory|blocking):在程式碼中找到的 Knobs 顏色、字型系列與持續時間;- a11y: …:Token 對比配對、減少動畫路徑、無快速閃爍、圖片 alt 屬性以及可見的焦點樣式;- debt: advisory 40:每個檔案中未使用 Token 的顏色、持續時間與圓角半徑,需在預算範圍內。
  • 任何顏色變更後,再次執行 sampo design contrast TOKENS;任何動態變更後,再次執行 sampo motion check。
  • sampo critique URL:頁面實際使用的樣式與 DESIGN.md Token 的比對結果(未命名、近似重複、一次性樣式);使用 --why SELECTOR 可查看是哪條規則勝出。--bingo 會對九個模板化外觀的特徵進行評分(若全數符合則結束程式碼為 1);--marks shot.png 會將在螢幕截圖上繪製的鉛筆紅筆標記,轉換為每個標記元素對應的 FIX 擷取(--note 會說明每個標記的要求);--brief [ID] 會檢查簡報中引用的詞句是否出現在頁面上。
  • ../playbooks/references/ui/visual-qa.md:sampo smoke 會拍攝幀數矩陣(360/768/1440 解析度、淺色與深色模式、減少動畫);請閱讀 PNG 檔案並進行觀察。前後對比:sampo img diff A.png B.png --out diff.png。
  • 元件的各種狀態(預設、懸停、錯誤、空白、載入中):sampo stories CHART 會將每個狀態拍攝為一個矩陣頁面。sampo shot 和 sampo stories 接受 --profile tv|eink|car|wrist 參數(該裝置的尺寸與縮放比例)以及 --reduced-motion 參數(prefers-reduced-motion: reduce,用於海報與靜態狀態)。
  • 將每個項目記錄為任務步驟的證據;UI 變更不能僅憑通過的測試就視為完成。

7. 品味

使用者可以保留或還原某個外觀:使用 sampo looks keep LOOK 或 sampo looks revert LOOK,以便下一次的排序能從中學習。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能