Communitygithub.com

aubarcito48/portfolio

直接從前端原始碼(React、Vue、Svelte、Angular、純 HTML/CSS 或任何 Web 框架)中提取全面的設計系統(DESIGN.md)。分析元件檔案、樣式表、Tailwind 設定、主題定義和設計代碼,產生豐富且與 Stitch 相容的設計系統文件。當使用者想要從現有程式碼庫逆向工程設計系統、審查專案的視覺語言、從原始檔案中提取設計代碼,或了解前端倉庫中的樣式模式時,即可使用此技能。

portfolio 是什麼?

此技能能夠直接從前端原始碼中提取全面的設計系統文件(DESIGN.md),無需構建或執行應用程式。它支援多種框架,包括 React、Vue、Svelte、Angular、純 HTML/CSS 以及任何基於 Web 的框架。其工作原理是深入分析專案的原始碼:掃描元件檔案、樣式表、主題定義(如 Tailwind 設定)和設計代碼(如 CSS 自訂屬性或 color-dictionary)。完整的技能工作流程分為四個階段:首先進行專案探索,以檢測框架和專案結構;然後進行深度提取,系統性地分析視覺主題、顏色調色盤、排版規則、元件樣式、佈局原則和 Stitch 生成筆記;接著生成格式化的 DESIGN.md,包含 YAML Frontmatter 供其他工具解析;最後可選擇性地與 Stitch 設計系統管理工具整合。此技能對於希望在不構建或渲染專案的情況下審查其視覺語言、理解樣式意圖或準備將設計遷移至系統化平台的開發人員和設計師特別有用。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aubarcito48/portfolio/tree/HEAD/.agents/skills/stitch-extract-design-md

在你喜歡的 AI 中提問

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

說明文件

從前端程式碼提取設計系統

分析前端原始碼,提取一份全面的設計系統文件(DESIGN.md),該文件直接從原始檔案中捕捉專案的視覺語言——顏色、排版、間距、元件模式和佈局原則——無需構建或渲染應用程式。

為何存在

design-md 技能是從渲染後的 HTML 中提取設計。但通常你有一個程式碼庫,希望在甚至能夠執行應用程式之前就了解其設計系統——可能依賴缺失、構建失敗,或者你只是想快速審查。此技能會讀取原始檔案本身:樣式表、元件檔案、主題設定和 Tailwind 設定。它更快,且在任何地方都能運作。

何時使用

  • 使用者有一個前端程式碼庫,想要提取或記錄其設計系統
  • 使用者想要將專案的視覺識別遷移到 Stitch
  • 使用者要求「審查樣式」或「了解倉庫的設計語言」
  • 使用者想要從現有原始碼建立 DESIGN.md
  • 應用程式無法構建/渲染,但原始碼可用
  • 使用者想要統一模組化整個程式碼庫中不一致的樣式

先決條件

  • 可存取前端專案的原始目錄
  • 不需要構建或執行時期依賴——此技能僅讀取原始檔案

工作流程

第一階段:專案探索

首先了解你正在處理的是什麼。這決定了要使用哪些提取模式。

1. 檢測框架和技術棧

掃描專案根目錄以尋找標誌性檔案:

標誌性檔案框架/工具
package.json 包含 reactReact / Next.js
package.json 包含 vueVue / Nuxt
package.json 包含 svelteSvelte / SvelteKit
package.json 包含 @angular/coreAngular
tailwind.config.js/tsTailwind CSS
postcss.config.jsPostCSS 管道
styled-components 或 @emotion 在依賴中CSS-in-JS
僅 .css / .scss / .less 檔案純 CSS / SASS
theme.js / theme.ts / tokens.js設計代碼檔案

首先讀取 package.json——它會揭示框架、CSS 工具以及任何設計代碼庫(例如 style-dictionary、@chakra-ui/react、@mui/material、ant-design)。這個上下文告訴你在哪裡尋找樣式資訊。

2. 映射原始檔樹

識別你將分析的主要目錄和檔案:

src/
├── components/     ← 元件層級樣式
├── styles/         ← 全域樣式表
├── theme/          ← 主題定義、代碼
├── assets/         ← 字型、圖片
├── app.css         ← 根樣式
└── index.css       ← 入口 CSS

也要檢查:

  • tailwind.config.js / tailwind.config.ts — 自訂顏色、字型、間距
  • globals.css / global.css — CSS 自訂屬性(變數)
  • 任何 theme.* 或 tokens.* 檔案
  • 元件庫設定(例如 chakra-theme.ts、vuetify.config.ts)

3. 讀取框架特定指南

查閱適當的參考文件以了解提取模式:

這些參考文件包含框架特定的模式,用於定位顏色、排版、間距和元件樣式。在繼續之前,請閱讀與你專案相符的那個。


第二階段:深度提取

系統性地處理每個設計維度。對於每個維度,從原始檔案中收集原始數據,然後將其綜合為描述性語言。

目標不是傾倒每個 CSS 屬性——而是理解樣式選擇背後的意圖,並用人性化、編輯風格的語言描述它們,讓另一位設計師(或 Stitch)可以使用它們重新創造相同的視覺感受。

1. 視覺主題與氛圍

首先閱讀最廣泛的樣式,以了解整體情緒:

  • 根背景:body 或根元素的背景是什麼?淺奶油色(#f 範圍)表示通風/乾淨;深色(#0-#2 範圍)表示陰鬱/戲劇化。
  • 留白哲學:間距值是寬鬆的(32px+)還是緊湊的?檢查根容器、區塊包裝器和卡片元件的 padding/margin 值。
  • 密度:計算每個頁面/區塊的元件數量。數量少且有空間 = 極簡;數量多且緊湊 = 資訊密集。
  • 色溫:中性色是暖色(奶油色、棕褐色)還是冷色(藍灰色、石板色)?
  • 整體感覺:將其綜合為 1-2 句豐富的句子,捕捉情緒。

在原始碼中尋找這些信號:

原始位置它告訴你的資訊
根 background-color 或 Tailwind bg-* 在佈局上整體明暗度
Tailwind 設定中的間距比例或 CSS 變數留白哲學
元件數量與包裝器 padding密度
自訂屬性命名(--warm-* 與 --cool-*)色溫意圖
主題檔案中的註解開發者自己話語中的設計意圖

2. 顏色調色盤與角色

從程式碼庫中提取每種獨特的顏色,並分配功能角色。跨所有層級進行搜尋:

在哪裡尋找顏色:

層級要搜尋什麼
CSS 自訂屬性--color-*、--primary、--bg-*
Tailwind 設定theme.extend.colors
主題/代碼檔案顏色物件、調色盤
元件樣式background-color、color、border-color
內聯/作用域樣式範本中的 bg-*、text-* 類別
CSS-in-JS 主題物件colors、palette 鍵

如何組織: 按功能將顏色分組,而不是按色調:

  1. 主要基礎 — 背景和表面顏色
  2. 強調與互動 — 號召性用語按鈕、活動狀態、連結
  3. 排版與文字層級 — 主要、次要、第三級文字
  4. 功能狀態 — 成功、錯誤、警告、資訊

對於每種顏色,創建一個描述性名稱,喚起顏色的特質,而不是其原始的十六進位值:

  • ❌ #294056 → "藍色"
  • ✅ #294056 → "深沈柔和的藍綠色" — 主要 CTA,活動導航

去重很重要。 程式碼庫通常有接近重複的顏色(例如 #333 和 #2C2C2C)。將它們統一到最能代表預期顏色的名稱下。

3. 排版規則

提取完整的排版系統:

字型系列:

  • 檢查 CSS font-family、Tailwind fontFamily、Google Fonts 連結或本機 @font-face 宣告。
  • 注意每種字型的特徵:幾何 vs 人文主義、襯線 vs 無襯線、它所喚起的感覺。

字級比例(層級):

  • 找到每個標題層級(H1-H6)和正文,記錄:
    • font-size(以 rem 或 px 為單位)
    • font-weight(數值 + 描述性名稱)
    • letter-spacing(以及原因——優雅?緊湊?)
    • line-height(寬鬆以利閱讀?緊湊以利顯示?)
  • 繪製元件使用圖:產品卡片使用哪個標題層級?英雄區塊呢?

間距原則:

  • 文字間距如何與整體間距比例相關聯?
  • 標題與正文的字母間距模式
  • 行高哲學(正文寬鬆/放鬆,顯示用更緊湊)

4. 元件樣式

分析 4-5 個最重要的 UI 原始元件:

按鈕:

  • 圓角半徑(以及它傳達的資訊——有趣?專業?極簡?)
  • 主要、次要和幽靈變體的配色方案
  • 懸停/焦點/活動狀態和過渡時序
  • 內邊距比例(水平 vs 垂直)

卡片 / 容器:

  • 圓角半徑(通常與按鈕不同——稍微更圓)
  • 陰影策略:平面、微妙的懸停陰影,或始終浮起?
  • 邊框處理:極細邊框、彩色強調邊框,或無?
  • 內部內邊距(寬鬆還是緊湊?)
  • 卡片內的圖片處理(滿版出血、帶內邊距、圓角?)

導航:

  • 佈局模式(水平欄、垂直側邊欄、抽屜)
  • 排版處理(大寫、字母間距、粗細)
  • 活動/懸停狀態指示器(底線、顏色、背景)
  • 行動裝置行為(漢堡選單、底部導航、抽屜)

輸入框與表單:

  • 邊框樣式和焦點狀態行為
  • 與按鈕的圓角一致性
  • 內邊距和觸控目標尺寸

領域特定元件:

  • 識別 1-2 個此專案獨有的元件(例如產品卡片、儀表板小工具、聊天泡泡),並描述其樣式模式。

5. 佈局原則

提取結構系統:

網格與結構:

  • 最大內容寬度(來自容器上的 max-width)
  • 欄位系統(CSS Grid、Flexbox 模式、定義的斷點)
  • 響應式斷點(來自媒體查詢或 Tailwind 設定)

留白策略:

  • 基本間距單位(8px 網格?4px?自訂?)
  • 區塊邊距(主要區塊之間的空間量)
  • 邊緣內邊距(不同斷點下的頁面邊距)

對齊與視覺平衡:

  • 文字對齊模式(居中英雄區塊、左對齊正文)
  • 圖片與文字比例
  • 視覺重量分佈

響應式行為:

  • 行動優先還是桌面優先?
  • 網格如何折疊?內邊距比例?
  • 觸控目標尺寸

6. Stitch 生成筆記

將提取的結果綜合為 Stitch 的可操作提示:

  • 氛圍語言:將情緒轉換為自然描述詞
  • 顏色參考:按描述性名稱 + hex 列出顏色
  • 元件提示:撰寫 2-3 個範例提示,可用於在 Stitch 中重新建立關鍵元件
  • 迭代指南:在此設計系統中改進畫面的技巧

第三階段:撰寫 DESIGN.md

將所有內容組裝成標準的 DESIGN.md 格式。將其放置在專案目錄的 .stitch/DESIGN.md 位置(如果 .stitch/ 目錄不存在,請建立它)。

[!IMPORTANT] 你必須在檔案頂部包含 YAML Frontmatter,其中包含 name 和 colors 對應,與 examples/DESIGN.md 中顯示的範例完全相同。此結構化數據是其他技能解析設計系統所必需的。

如果未包含此 YAML 區塊(至少包含核心顏色代碼),則未能正確使用此技能。

使用 examples/DESIGN.md 中的範例作為你的模板。檔案必須以 YAML 區塊開頭,後跟 markdown 區塊:

# 設計系統:[專案名稱]
**專案 ID:** [如果已知,否則省略]

## 1. 視覺主題與氛圍
[關於情緒、哲學和關鍵特徵的 2 段豐富描述]

## 2. 顏色調色盤與角色
### 主要基礎
### 強調與互動
### 排版與文字層級
### 功能狀態

## 3. 排版規則
### 層級與粗細
### 間距原則

## 4. 元件樣式
### 按鈕
### 卡片與 [領域特定容器]
### 導航
### 輸入框與表單
### [領域特定元件]

## 5. 佈局原則
### 網格與結構
### 留白策略
### 對齊與視覺平衡
### 響應式行為與觸控

## 6. Stitch 生成的設計系統筆記
### 要使用的語言
### 顏色參考
### 元件提示
### 增量迭代

第四階段:整合(可選)

如果使用者想要將設計系統推送到 Stitch:

  1. 將工作交給 manage-design-system 技能,以進行 MCP 建立/更新呼叫
  2. 你撰寫的 DESIGN.md 是輸入——manage-design-system 技能會處理 Stitch API 整合

如果使用者只想要文件,則在第三階段後你就完成了。


品質檢查清單

在交付 DESIGN.md 之前,請驗證:

  • 每種顏色都有描述性名稱、十六進位代碼和功能角色
  • 排版包括字型系列、特徵描述和完整層級
  • 元件樣式描述形狀、顏色、狀態和轉換
  • 佈局包括最大寬度、網格、斷點和間距策略
  • Stitch 生成筆記使用自然語言,而非 CSS 語法
  • 氛圍部分讀起來像是編輯文案,而非技術文件
  • 接近重複的顏色已合併
  • 文件捕捉了樣式背後的意圖,而不僅僅是原始值

更好提取的技巧

  • 閱讀註解和提交訊息。 開發者經常在程式碼註解(/* 英雄區塊 — 通風 */)和提交訊息中記錄設計意圖。這些是理解為什麼的寶貴資源。
  • 檢查設計代碼庫。 如果專案使用 style-dictionary、@tokens-studio 或類似工具,這些檔案是設計值最權威的來源。
  • 主題檔案比元件樣式提供更高信號。 定義調色盤的 theme.ts 告訴你預期的設計系統;元件中分散的內聯樣式告訴你實際出貨的內容。兩者都很重要,但從主題開始。
  • Tailwind 設定就是一個設計系統。 如果專案有自訂的 tailwind.config.js,那就是設計系統——先從中提取,然後抽查元件的覆寫。
  • CSS 自訂屬性是刻意的。 如果開發者定義了 --brand-primary,他們是在告訴你這是一個設計代碼。請尊重它。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相關技能