Communitygithub.com

V4TIME/V4SKILL

讓網頁 UI 看起來像是人類親手打造,而非 AI 生成的產物。

V4SKILL 是什麼?

這項技能旨在解決一個日益普遍的痛點:AI 生成的 UI 看起來就是「AI 味」太重。它提供了一套完整的設計原則、反模式檢查清單,以及結合了 webmxerz 與 Impeccable 等工具的工作流程,幫助開發者打造出具有「人類品味」的網頁介面。技能的核心包含九項關鍵原則,例如避免使用 emoji 作為圖示、禁用按鈕上的發光陰影效果、偏好柔和動畫、優先考慮對比度與字體層級(例如正文最小 14px),並以行動優先的思維進行設計。工作流程從檢查 webmxerz 的設計系統開始,透過 CLI 搜尋建議的風格、字型與色彩盤,然後實際建置,再透過 Impeccable 進行技術反模式檢測,最後與使用者反覆迭代——逐步修正特定問題,而非全盤重來。這項技能主要用於 Claude Code 等支援 CLI 工具的 AI 平台,特別適合那些使用者明確要求 UI「不要看起來像 AI 生成」、「要有高級感」或是參考特定設計品質指標(如 Emil Kowalski、21st.dev)的情境。它也提供了已知的陷阱警示,例如過度裝飾反而顯得不自然、在非 React 專案中誤用 React 元件程式碼,以及將 Impeccable 的檢測結果誤認為對設計美學的完整評判。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/V4TIME/V4SKILL/tree/HEAD/human-first-ui

在你喜歡的 AI 中提問

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

說明文件

人類優先 UI(Human-First UI)

打造出看起來像是有品味的人類所製作的介面——而不是模板傾倒或 AI 預設。此技能編碼了當使用者明確要求 UI 不要看起來像 AI 生成時,所使用的設計原則、反模式檢查以及工具工作流程。

使用時機

  • 使用者說 UI「看起來像是由 ChatGPT 做的」或「看起來是 AI 生成的」
  • 使用者想要一個「極簡、高級、人性化」的外觀
  • 使用者提及 Emil Kowalski、Impeccable、21st.dev、webmxerz 或類似的設計品質訊號
  • 在建立或審查任何對外觀有要求的網頁 UI 時

核心原則

1. 不使用 emoji 圖示

使用 emoji 作為圖示是 AI 生成介面的頭號特徵。請使用文字標籤、簡單的 CSS 形狀或行內 SVG。Emoji 屬於內容,不應用於 chrome(介面裝飾)。

2. 按鈕不使用發光陰影

在互動元素上使用帶有色彩輝光(特別是強調色)的 box-shadow 是 AI 生成 UI 的典型標誌。僅使用平面邊框和懸停狀態變化。

3. 不使用彈跳/彈簧動畫

滑動點、彈跳載入器、彈簧縮放懸停效果——這些都是裝飾,而非功能。微妙的懸停過渡(120-150ms ease)是好的。彈跳則不行。

4. 不使用帶有圖示方格的歡迎卡片

歡迎畫面應該是頁面上的簡單文字,而不是一個裝飾過的、帶有圖示方格和提示框(包裝成功能卡片)的卡片。

5. 對比度優先

在深色背景上,即使是被淡化(muted)的文字,仍需要 4.5:1 的對比度(WCAG AA)。常見的 AI 預設值如 #5a5a5a 搭配 #0d0d0d 會嚴重失敗。請使用 Impeccable 測試。

6. 正文最低 14px,理想 16px

10-11px 僅適用於裝飾性的微型標籤(章節標題、時間戳、帶有字母間距的頁尾狀態文字)。承載內容的文字必須在 12px 以上,正文則應維持在 14-16px。

7. 清晰的字體層級

使用更少的尺寸,並增大尺寸間的差距。不要在一套設計中使用 6 種不同的 font-size 值,3-4 個間隔良好的階層就已足夠。目標是在標籤/次要/正文/標題尺寸之間有清晰的區隔。

8. 單一強調色,偏好暖色調

在深色中性背景上使用單一暖色調(金色/琥珀色)做為強調色,會看起來有設計感和高級感。紫/藍色漸層是 AI 的預設值,應避免使用。

9. 行動優先

為手機設計。使用漢堡選單、疊加側邊欄、大型觸控目標,以及不需縮放即可閱讀的文字。不要先做桌面版再把它擠壓變小。

工作流程

步驟 1:檢查技能庫

在開始建置前,先檢查 webmxerz 或 impeccable 是否可用:

# WebMXERZ(設計智慧:顏色、字體排印、樣式、UX 模式)
ls ~/tmp/webmxerz/src/webmxerz/scripts/search.py 2>/dev/null && \
  python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<查詢>" --domain <style|typography|color|ux|product|...> -n 5

# 如尚未複製:
git clone https://github.com/nextlevelbuilder/webmxerz.git ~/tmp/webmxerz

首選:使用 --design-system 一次取得完整系統,而非逐個領域搜尋:

# 完整設計系統,並根據專案調整設計旋鈕
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<描述>" \
  --design-system \
  --variance <1-10> \
  --motion <1-10> \
  --density <1-10> \
  -p <專案代號> \
  -n 5

對多頁面專案進行持久化:

# 儲存 MASTER.md(以及可選的頁面覆蓋)
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<查詢>" \
  --design-system -p <專案> --persist -o <專案目錄> [--page <頁面名稱>]

接著在處理特定頁面時,優先檢查 design-system/<專案>/pages/<頁面>.md——其規則會覆蓋 design-system/<專案>/MASTER.md。

步驟 2:搜尋設計方向

# 尋找符合使用者想要的風格
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<描述>" --domain style -n 3

# 尋找字體排印
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<氛圍>" --domain typography -n 3

# 為產品類型尋找色彩盤
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<產品類型>" --domain color -n 3

# 尋找 UX 模式
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<模式>" --domain ux -n 5

根據實際的技術棧調整結果。如果專案是純 HTML/CSS/JS(而非 React/Tailwind),則提取設計原則(顏色、字體、間距、模式)並以純 CSS 實作。不要複製 React 元件程式碼。

步驟 3:依循原則建置

  • 從搜尋結果中選擇一個符合使用者品味的風格
  • 選擇一組字體配對
  • 選擇一個色彩盤(根據使用者偏好調整強調色)
  • 在專案的實際技術棧中實作
  • 保持極簡:間距和字體排印負責營造效果,而非裝飾

步驟 4:使用 Impeccable 進行程式碼檢查

npx impeccable detect templates/ static/css/ 2>&1

檢視每個發現的項目。修正被標記的問題。結束碼 0 = 無問題。結束碼 2 = 仍有發現。

步驟 5:與使用者反覆迭代

展示結果。如果使用者說它看起來還是 AI 生成或是不對勁,明確詢問哪裡有問題(顏色、尺寸、間距、某個元件),然後只修正那一點。不要因為模糊的回饋就整個重新設計。

已知陷阱

  • 過度裝飾來「修正」AI 外觀: 加入更多裝飾並不會讓它看起來像人類——只會讓它看起來過度裝飾。節制才是訊號。
  • 在非 React 專案中使用 webmxerz 的 React 程式碼: 該技能的資料(styles.csv、colors.csv、typography.csv、ux-guidelines.csv)與技術棧無關且實用。其 React 元件範例則不然。提取原則,跳過元件程式碼。
  • 將 Impeccable 視為設計審查: 它能捕捉技術反模式(對比度、尺寸、層級)。它無法評判品味、平衡感,或整體美學是否感覺像人類。把它當作一次 lint 檢查,而非設計判斷的替代品。
  • 在非 React 專案中使用 21st.dev 元件: 21st.dev 是一個 React + Tailwind 的註冊表。它的元件無法直接用在 Flask/Jinja2/純 HTML 專案中。僅將其作為視覺靈感來源瀏覽。
  • 搜尋結果中的固定色值: 搜尋結果中的調色盤提供的十六進位值只是起點,而非最終答案。根據使用者實際喜歡的顏色調整強調色。
  • 從其他來源移植設計系統(Lovable、Figma 匯出、其他專案的 CSS): 務必針對實際背景,對所有淡化/低對比度的 token(--text-faint、muted-foreground、次要文字)進行 WCAG AA 審核。設計師在設計工具中為了看起來更細膩而將這些值設得太低——在真實的深色背景上,這些顏色對於低於 14px 的文字會無法通過對比度檢查。在發佈前,將深色背景上的淡化文字至少提升至 #8a8886。
  • 將 Lovable 建立的版面視為起點,而非替代品: Lovable 的版面提供了乾淨的結構和設計系統,但它不會包含你專案的功能擴展(API 插槽編輯器、工具面板、語音開關、階段重新命名、記憶體分頁)。移植設計,保留功能。

參考檔案

  • references/impeccable-findings.md —— 來自 Sayip 會話的 Impeccable 掃描結果(發現了什麼、修正了什麼、如何執行)
  • references/webmxerz-quickref.md —— webmxerz 搜尋領域、標誌、設計旋鈕、--persist、推理合約,以及從 Sayip 衍生並修復對比度的調色盤的快速參考
  • references/lovable-port-checklist.md —— 將 Lovable 建立的版面移植到現有專案的檢查清單(複製、審核 token、移植結構、保留功能、lint、測試)

相關技能

  • software-development:codebase-inspection —— 當你需要在重新設計前先檢查已建置的內容時
  • lovable-port —— 將 Lovable 建立的版面移植到現有 Flask/純專案的類別級技能

Individual skills in this repo

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

相關技能