Communitygithub.com

設計示範 (設計展示原型 UI)

取代內建設計技能的示範模式,用於製作假的產品 UI:應用程式的英雄區塊或功能卡片插圖、bento 網格、模擬畫面、以及有動畫游標的操作示範。載入時會導入設計精簡原則,以取得方向、工藝規則、設計代碼和關卡。

設計示範 (設計展示原型 UI) 是什麼?

此「設計示範」技能用於生成逼真的產品 UI 示範,例如應用程式畫面、英雄區塊插圖、bento 網格或模擬操作流程。它建立在「design-lean」技能的基礎之上,並新增了產品截圖所需的特定規則與關卡。此技能適用於 Claude Code、Cursor 或 Codex 等 AI 代理,能產出帶有動畫游標操作示範的靜態或動畫產品示意圖。其核心工作流程包含:規劃(D1)、框架(D2)、排練(D3)與主機關卡(D4),並嚴格限制重做次數以維持品質。它支援使用名為「Stageshow」的 React 元件庫(可透過 `npx skills add` 安裝或從 GitHub 複製),若無此庫,亦可使用純 React 或 HTML/CSS 依照指定的框架規則來建構。此技能強調「一個核心概念」:畫面必須像真實產品、簡潔、有構圖意圖,且所有動畫皆有因果關係。它明確指出五種常見失敗模式(過於複雜、線框感、方框感、平淡無奇、單調乏味),並提供詳細的框架規則(例如裁切、版面配置、元件間距等)。總結來說,這是一個嚴謹的設計工具,能幫助 AI 代理產出高品質、具說服力的產品 UI 示範。

相容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Techychris/claude-design-skills/tree/main/design-demo

在你喜歡的 AI 中提問

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

說明文件

設計示範 (展示原型 UI)

請先載入 design-lean。 其方向、工藝規則、設計代碼和組件關卡在此同樣適用;此技能則新增產品截圖所需的元素。示範工作在 Build 步驟 5 中,當頁面需要產品預覽時進行,或獨立執行,當整個任務就是一個示範時。

示範執行的關卡

關卡通過條件留下的證據上限失敗時的上限處理
D1 規劃在撰寫程式碼之前,必須寫下位置、焦點物件、動作、成果以及省略了什麼規劃文件——
D2 框架在指定的寬度以及 390px 寬度下,至少有一個靜止畫面不是空的、平淡的或像個方框兩個靜止畫面2 次重新構圖指出框架的缺陷,然後交接
D3 排練設定好海報框架;在兩種寬度下的連續拍攝畫面中,沒有出現結尾清單所列的任何缺陷連續拍攝畫面3 輪拍攝列出剩餘缺陷,然後交接
D4 主機關卡gate.js 在宿主頁面的自身控制項(包含暫停功能)下測試通過關卡總分每個檢查項目最多 2 次修正嘗試回報為未解決問題

設定 (請擷取,不要重新輸入;基礎目錄會在各技能載入時顯示)

mkdir -p .design && for f in "<design-lean 基礎目錄>/SKILL.md" "<design-demo 基礎目錄>/SKILL.md"; do python3 - "$f" <<'PY'
import re, sys
for name, code in re.findall(r"`{3}js\n// file: (\S+)\n(.*?)`{3}", open(sys.argv[1]).read(), re.S):
    open(".design/" + name, "w").write("// file: " + name + "\n" + code); print("wrote .design/" + name)
PY
done

微型產品 UI

一個令人信服的介面,在其空間內構圖,可以是單一靜止畫面,或是一個短動畫,其中只發生一件事。觀看者能識別出螢幕,並看到這件事發生。這些是作者創作的插圖,不是瀏覽器自動化:腳本繪製游標按下動作並改變場景。來自 design-lean 的工藝規則和設計代碼仍然有效;此部分則新增產品截圖所需的元素,並在必要時覆蓋 design-lean 的動畫規則。

一個核心概念: 它看起來像一個真實的產品,簡化到只呈現觀看者需要的部分,經過意圖明確的構圖,並且每個動畫都有其因果關係。

五種失敗方式:

  • 過於複雜。 每一行都有真實文字,到處都是數字,塞得滿滿當當。細節越多,看起來就越像生成的。
  • 線框感。 兩個灰色團塊和一個按鈕。建構得太小,或剝奪了讓它可識別的元素。
  • 方框感。 整個視窗縮小成一個邊距均勻的卡片:就像貼上去的螢幕截圖,而不是產品截圖。
  • 平淡無奇。 每個物件在相同的邊框卡片中具有相同的權重。視線無處可落。
  • 單調乏味。 一個灰色的視窗加上一個游標,不管設計簡報怎麼說。簡報中所追求的風格和活力(如藍圖、玻璃疊色、動態島、吉祥物)才是重點;根據這些規則,建構簡報要求的內容。

修正方法:一個完整、結構化的螢幕,使用安靜的灰色調,只有故事相關的部分才使用真實文字,其餘部分使用佔位條,預留呼吸空間,並進行裁切,讓視線集中在故事所在之處。簡化文字,而非簡化上下文。一個空角落、列表下方的空白、拉開以填滿窗格的行、漂浮在底板上的視窗:這些是未完成,而非平靜。

施力的程度

要像打造一個會被嚴格評判的發布頁面那樣來建構它。然後,以你所認識最嚴苛的設計師的角度來審視這個框架,那位會截圖一個錯誤並回傳「這是什麼?」的設計師:一個偏離頭像的圓點、獨自成行的單位、碰到卡片的文字。如果你能想像出那張截圖,你就找到了下一個要修正的地方。

The Stageshow 工具包

當它可用時,請使用它:React 元件(Stage、Window、Phone、Row、Bar、Text、Roll、Count、Collapse、Fly、Connector 等,以及一個 Act 腳本 API),約 70 個優質範例和產品研究,以及 scripts/film.mjs,它可以拍攝連續畫面並標記框架和動畫缺陷。請在專案中尋找 stageshow 技能資料夾或包含 stageshow.css 的 kit/ 目錄。否則,在網路可用的情況下,安裝它(npx skills add benjitaylor/skills --skill stageshow)或複製 https://github.com/benjitaylor/skills 並從 stageshow/ 目錄開始工作。然後,它的 SKILL.md、references/ 和最近的優質範例就是詳細規則;此部分只是摘要。安裝它會執行該倉庫自身的套件腳本,沙箱可能會阻止此操作。如果沒有這個工具包,請使用純 React 或 HTML 和 CSS 按照以下規則建構,並使用「在沒有工具包的情況下拍攝」中的腳本進行拍攝。

執行

大部分的品質在編寫任何程式碼之前就決定了。請先撰寫規劃:位置、焦點物件、動作、成果,以及可以省略的部分。

  1. 媒介和位置。 靜止或動畫(循環、進入視野時播放一次、或懸停時播放)。頁面、其背景、其寬度。以最終觀看尺寸進行設計,並以 1:1 比例顯示:約 720 × 340 用於旁邊有說明的英雄區塊,900 到 1100 寬用於全寬英雄區塊,400 × 300 用於卡片。用於示範的尺寸絕不小於約 320 寬;bento 磁貼或衛星卡片可能更小。任何可以放在手機欄位中的內容,都需要在 358 寬度下進行緊湊設計:重新設計(更緊密的裁切、移除或堆疊衛星元素),而不是單純壓縮。
  2. 外觀。 如果有產品的程式碼或網站,請從中取得真實的設計代碼、圖示、瀏覽器 chrome 和文字。如果沒有,則執行 design-lean 的「方向」步驟來生成。選擇一個擬真度:極簡(全部使用佔位條)、標準(在有意義的地方使用文字,其他地方用佔位條,這是預設值)、逼真(到處都是真實內容;適用於英雄區塊規模、指名道姓的真實產品、或主題是列表或頁面的靜止畫面)。如果設計簡報指定了某種風格(如可愛風、紙質風、海報色調),則需完全採用該風格,但仍需遵循這些規則建構。
  3. 故事。 根據產品的價值來選擇其形式:使用感受(游標執行一個令人滿意的動作,結果出現在其下方)、一個流程(少數幾個畫面以一個連續物件呈現,最後一個畫面呈現成果)、或系統所做的事情(結果發生在其他地方,但連結是可見的,通常沒有游標)。三到五個節拍和一個成果,持續 10 到 16 秒。如果在一個更豐富的故事和一個更平靜的框架之間選擇,請選擇框架。
  4. 從一個優質範例開始,然後進行構圖。 如果有工具包,請拍攝最接近的優質範例,並複製其資料夾作為起點;保留其舞台大小、裁切、行和文字大小、間距和節拍,然後將其外觀和內容替換為設計簡報中的產品。只更改名稱的複製是不夠的。如果沒有工具包,請從下表選擇一個版面配置,並以同樣的方式嚴格遵循。在任何動畫之前先進行構圖:在兩種寬度下各拍攝一個靜止畫面;如果它比預期的更空、更平或更像一個方框,請先修正框架。
  5. 螢幕。 計算真實的字串數量,通常為 3 到 7 個:這是文字預算,而非元素預算。在文字移動之前,確保每個控制項的文字都能容納得下。測量游標觸及的 DOM 元素位置;切勿硬編碼位置。
  6. 編排動畫。 保持已掛載元素的狀態,並切換其顯示以觸發退出動畫。為關係製作動畫,而不僅僅是物件:一個新的行會帶動其下方的行;一個調整大小的表面不應拉伸其文字。節拍重疊、群組錯開、成果畫面停留、循環在開始處結束或由一個可見的原因觸發重置。
  7. 排練。 首先設定海報框架:這個節拍本身就能訴說故事,絕不能是捕捉到一半的變化,且結果應留在畫面上。然後拍攝整個循環,而不僅僅是靜止畫面:在顯示的寬度和 390 寬度下各拍一張連續拍攝畫面,並逐幀檢查每一次按下、選單、變形和循環接縫。靜止畫面無法顯示彈出內容。先修正最大的可見缺陷(框架,然後是層級,然後是動畫,然後是打磨)並重新拍攝。上限:三輪拍攝;之後,列出剩餘的缺陷並交接。請問:視線首先落在哪裡,它是結果嗎?是否有一個視窗、磁貼或裝置明顯主導?任何「不是」就是最大的缺陷。通過腳本是必要條件,而非充分條件。交接時附上一段簡短說明:你從哪個優質範例或版面配置開始,你做了哪些更改,以及你沒有檢查什麼。

構圖

  • 一個主要物件,最多一或兩個衛星(如收據、手機、細節卡片)來傳達重點。保留能識別產品的元素:標題、真實的瀏覽器 chrome、為動作提供理由的行。標誌和導航可選。
  • 只裁切填充物。 成果、動作、游標觸及的元素以及所有真實文字都應保持完整。如果裁切會切到佔位動作,則移除該動作,而非進行裁切。被舞台邊緣切到的按鈕、晶片或陰影是常見的缺陷。
  • 將主要物件的 10% 到 40% 裁切到舞台之外。 視窗或手機至少佔舞台寬度的三分之二,並延伸出邊緣。舞台遮罩所有內容 (overflow: hidden)。
  • 頁面是背景。 在白色或深色頁面上,視窗後面不要有底板,也不要讓視窗完整顯示並四面留空;那樣看起來會像漂浮。只有當開發人員要求時,才採用無框架(完整、置中、與四周邊距至少等於陰影深度)的呈現方式。
  • 一個統一的間距值, 在最終裁切中測量:每個邊距都應與之匹配,要麼是一個完整的間距,要麼遠大於它。與此值相差不到 24px 或只差幾個像素都是錯誤。
  • 衛星元件應跨越主要物件的邊緣,約一半在外,並位於瀏覽器 chrome(側邊欄、頁首、邊距)之上,切勿覆蓋內容。兩個衛星元件應為兩種不同類型和尺寸(例如一個卡片和一個真實大小的通知),絕不能是兩個相同卡片疊在一起。錨定 UI(彈出視窗、選單、提示)不是衛星元件:它應位於產品自身放置的位置。
  • 視窗應保持其裝置的形狀: 寬高比為 1.25:1 或更寬時應完整顯示;當有出血時,顯示的部分至少應接近正方形。透過裁切修正,絕不透過擠壓。
  • 故事展開的內容應保持在框架內,在每一幀中都與每個邊緣保持一個間距;放置觸發器時,要為疊加層預留空間。無論是靜止還是循環中的任何位置,都不要有死角。
  • 從平面和正面開始。 透過陰影、z 軸順序、縮放和不透明度來創造深度;只有在必要時才使用傾斜(例如一疊鬆散的紙張),只有在要求時才使用透視。
  • 手機: 衛星手機的起點應為視窗可見寬度的 40%,且至少 220px;寧可讓它超出底部,也不要縮小。通知應保持真實 iOS 的比例,絕不能裁剪。從頂部裁切的手機會同時失去其狀態列和導航欄。切勿手動繪製狀態列或主頁指示器;請從工具包或真實參考資料中獲取框架。
版面配置主要物件使用場景
固定於底部出血距離左、右、上邊界 8–12%;底部超出 15–35%功能卡片和 bento 磁貼
角落出血距離上和左邊界 10%;右和底部超出 15–35%;衛星在左側或底部邊緣旁邊有說明的英雄區塊
帶有間距的舞台在有顏色的舞台上,每邊內縮 8–20%,超出底部品牌時刻
衛星焦點主要物件裁切較多;一個大衛星(主要物件寬度的 30–40%)承載故事小物件:通知、收據、差異比較
寬英雄區塊900–1100px 寬的視窗,1:1 比例,超出底部;逼真擬真度全寬首頁英雄區塊
裝置配對桌面 75–80% 寬,超出底部;手機跨越右邊緣,三分之一在外跨裝置故事
多個相同物件一個物件的網格,每邊都超出邊緣;其中一個磁貼透過深度成為焦點,且是唯一有文字的以重複展示規模
漸變裁切視窗內縮頂部和側邊,最後三分之一遮罩消失,僅在漸變下方裁切填充物當邊緣會任意切斷視窗時
特寫整個視窗放大 1.3–1.6 倍,包含瀏覽器 chrome,主題行完整關於單一控制項的卡片
產品上的面板設定面板位於產品邊距上方,一個中性引導元素指向它所做的更改設定及其效果
對角角落文字在左下角;產品懸掛在右上角附有一行文字的 Bento 磁貼

bento 網格是一個集合:一個主要磁貼,然後是一個視窗、一個統計數據、一個物件和一張圖表,每個類型都不同;在任何磁貼開始前先規劃好網格。

靜止畫面

  • 克制。 真實字串僅用於標題、被操作的對象、輸入的內容和結果;其餘部分使用佔位條。佔位條是邊緣的填充物;視線落點處的佔位條看起來像是未完成。當故事涉及列表時,只使用兩或三行真實內容。在小面積中,一行就是一行:頭像、名稱、數值。佔位條寬度應在不同行之間變化(60、45、70、52)。標籤和數值應匹配:要嘛都是文字,要嘛都是佔位條。只有一個數字可以很大。每個功能信號只說一次,不要在頁首、衛星和每一行都重複。
  • 保留領域特有的標誌性內容: 專輯封面、縮圖、頭像(每個命名的頭像使用不同顏色)。如果替換掉,就會變成一個通用列表。
  • 不要為虛構名稱使用標題,除非設計簡報依賴於此且真實產品會在那裡顯示,否則不要在畫面上顯示產品名稱。偽應用程式的標題應使用 div,而非 h1 到 h6:示範存在於其他人的頁面結構中。
  • 字體: 使用真實的 11 到 15px 的 UI 字體大小,根據舞台縮放,永遠不要使用 7px。小字體的行高至少為 1.3。等寬字體僅用於程式碼、識別碼和對齊的數字。
  • 間距: 文字與任何視窗、卡片、面板或懸停行的邊緣保持至少 12px 的內邊距(絕不小於 8);佔位條可以溢出,但文字不行。行內邊距為 12px,密集列表為 8px。標題與其副標題之間的距離為 4 到 6px。按鈕與其上方欄位保持至少 8px 的距離。無接近相切:距離在 1 到 3px 之間的邊緣看起來像意外;要嘛完全對齊,要嘛至少相距 8px。
  • 光學置中: 在膠囊、按鈕和頭像中,將標籤在其字母上置中(使用 text-box: trim-both cap alphabetic)。置中的金額應將其數字置中,貨幣符號懸掛在外部,使用 right: 100%。
  • 圖示必須來自一組圖示集,而非自行繪製: 優先使用產品自身的圖示包,否則有目的地選擇一套(SF-style 用於 Apple 風格,Material Symbols 用於 Android,或者 Phosphor、Iconoir、Radix、Tabler、Heroicons、Lucide),每個場景使用一致的大小(14–16px)和筆畫寬度,14px 及以下使用填充樣式。Emoji 是內容,不是圖示。其他產品的標誌應使用其原始比例的真實標記,切勿使用近似圖案。
  • AI 功能: 不要使用閃光、魔杖或星星圖示,也不要使用紫色作為 AI 的顏色;展示 AI 實際做的事情(發送的問題、思考過程、答案串流顯示及其高度、最後是來源)。即使產品自身的圖示是閃光,也可以使用。
  • 不要發明...(原始內容被截斷,此處保持忠實)

Individual skills in this repo

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

相關技能