Communitygithub.com

hifebriansyah/mockup-html

設計一個網頁或應用程式畫面,以可運作的 HTML 和 CSS 模型呈現,或將標誌、圖示、插圖製作成 SVG,並在沙盒預覽面板中顯示(支援手機、平板、桌面寬度,以及淺色、深色、棋盤格背景)。當使用者要求模型、線框圖、原型、登陸頁面、畫面佈局、標誌、圖示或 SVG 時使用。

mockup-html 是什麼?

此技能讓 AI 助手能夠直接在使用者介面中,建立並呈現可互動的 HTML/CSS 模型或 SVG 圖形。它主要在支援 `<mockup>` 標籤的聊天平台(如 Claude Code 或其他類似環境)中運作,透過在標籤內放置完整的 HTML 文件或獨立的 SVG 程式碼,平台會在沙盒化的預覽面板中渲染結果。這項技能極具價值,因為它克服了傳統文字介面無法展示視覺設計的限制,讓 AI 能交付從登陸頁面、應用程式畫面、到標誌圖示等真實可操作的產出。其運作原理是:AI 撰寫標準的 HTML/CSS/JS 或 SVG,平台則在隔離的瀏覽器框架中執行,支援 JavaScript、CDN 函式庫、網路字體等,甚至允許 localStorage 以維持狀態。技能文件強調了良好的設計實務,如行動優先、使用 CSS 變數、語意化且無障礙的標記、真實的內容,以及互動控制項的實際功能。文件也明確指出,預覽無法顯示 cookie、IndexedDB、攝影機等敏感功能,確保安全性。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hifebriansyah/pro/tree/HEAD/skills/mockup-html

在你喜歡的 AI 中提問

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

說明文件

將模型設計成 HTML,或將標誌設計成 SVG

當使用者想要看到一個畫面、一個頁面、一個標誌或一個圖示,而不是閱讀其描述時,請使用此技能。

您正在聊天的頁面會為使用者繪製它。 在 <mockup> 標籤內寫入的 HTML 和 SVG 會顯示在聊天旁邊的預覽面板中。因此,永遠不要回答「我無法渲染或顯示這個」:請將程式碼寫在標籤內。您唯一做不到的是自己看到結果,所以請說明這一點,並告訴使用者要檢查什麼。

如何交付

  1. 以您平常的聊天口吻回覆一到三句簡短的句子:模型顯示了什麼、最重要的兩三個設計決策、以及要檢查什麼。請勿將程式碼貼在聊天內容中。
  2. 將整個模型放在一個標籤對內,並加上簡短的標題:

每次回覆一個模型:一個畫面,或一個完整頁面。標籤內只放 HTML 程式碼。永遠不要將標籤放在程式碼區塊內。頁面會在右側顯示它,並附帶「預覽」和「程式碼」分頁。

如果使用者同時要求書面內容(如 PRD、筆記),可以在同一個回覆中,<document> 與 <mockup> 並列。對於模型請求,回覆內容應包含 <mockup>,而不只是文件。

標誌、圖示或插圖 (SVG)

在 <mockup> 標籤內放入一個 <svg> 且不要有其他內容。頁面會將其居中繪製,並提供切換淺色、深色或棋盤格背景的開關,使用者可以複製或下載 .svg 檔案。

  • 以 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 W H"> 開頭(對於標誌或圖示,使用正方形如 0 0 200 200)。使用平面形狀繪製:path、circle、rect;漸層使用 linearGradient;挖空使用 mask 或形狀。文字僅用於字標,並使用系統字型堆疊,或更好的方式是繪製成形狀。
  • 不要有腳本和外部參考(指向檔案或位址的 href):保持在內聯形狀、漸層和 data: 圖片的範圍內。
  • 您無法看到自己的 SVG,所以請在腦中檢查幾何並說明您檢查了什麼:重疊或留有空隙的半徑和筆劃寬度、在淺色和深色背景上的對比度、在 16 和 32 像素下是否仍然可讀(細筆劃會消失)、並保持一個概念和兩三種顏色。
  • 如果使用者貼上 SVG 程式碼,頁面已為他們顯示預覽;請從程式碼審查設計(幾何、對比度、小尺寸、多餘的形狀)並提供修改後的版本。
  • 根據設計需求添加細節:沒有長度限制。

預覽允許的內容(頁面在沙盒中執行)

它會執行您建置的所有內容。 預覽是一個真實的瀏覽器框架:請編寫一個可運作的頁面,而不是一張圖片。

  • JavaScript(內聯 <script>、處理常式如 onclick)、來自 CDN 的任何函式庫,需指定固定版本(例如 <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>:Three.js、Chart.js、Alpine、GSAP、Leaflet...;將函式庫放在使用它的腳本之前)、透過位址載入的網頁字型和樣式表(Google Fonts)、透過位址載入的圖片、對公開 API 的 fetch、嵌入的框架(YouTube、地圖)、表單、彈出視窗、對話框、下載、全螢幕、WebGL 和 Canvas。
  • localStorage 和 sessionStorage 可運作:模型透過 localStorage 儲存的內容會在使用者瀏覽器中保留給該模型使用,因此待辦事項清單或已儲存的主題在重新整理後仍會存在。
  • 沒有的功能: Cookie、IndexedDB、攝影機、麥克風和位置,以及任何能觸及周圍聊天頁面的功能(框架與其隔離)。需要自有伺服器的頁面(如登入、資料庫)只能顯示範例資料。
  • 標誌或圖示(單獨的 <svg>)在沒有腳本的情況下繪製。

如何設計得更好

  • 行動優先。 先為 390px 寬的手機設計,然後透過一兩個 @media (min-width: 768px) 規則擴大;使用 max-width 容器和 <meta name="viewport" content="width=device-width, initial-scale=1">。
  • 代碼優先。 在 <style> 中以 :root 變數開頭(主色、表面、文字、靜默、邊框、圓角、間距),並且只使用這些變數。一個主色、中性灰色、4 / 8 / 12 / 16 / 24px 的間距比例、像 14 / 16 / 20 / 28 的字型比例、font-family: system-ui, sans-serif。
  • 語意化且無障礙。 使用 header、nav、main、section、button、label 與 input 搭配;可見的標籤、至少 44px 的觸控目標、至少 4.5:1 的文字對比、可見的焦點樣式。
  • 可信的內容。 使用使用者語言的實際用語、看起來真實的名稱、價格和日期。不要使用 Lorem ipsum、不要用「按鈕」、不要用「標題在此處」。
  • 重要的狀態。 除了快樂路徑外,顯示最重要的狀態:帶有錯誤訊息的表單、空列表或載入中的骨架畫面。
  • 圖片。 使用 CSS 漸層區塊或簡單的內聯 SVG;頭像使用帶有姓名的圓形。
  • 沒有大小限制。讓它完整且豐富。 對於網站或應用程式畫面,目標是至少 250 行的 HTML 和 CSS 組合(遠超過 8,000 個字元),並在頁面需要時更多。建置使用者要求的完整頁面,而不是草稿:該頁面應有的每個部分(對於網站:帶有導覽的頁首、英雄區塊、CSS 能展示的主要功能、幾個內容區塊、頁尾)、每個列表中的幾個真實項目、以及精緻的樣式(間距、顏色、懸停和焦點狀態、響應式規則)。要求包含「完整」、「完整」、「全部」或指定整個網站或應用程式的請求,意味著一個完整的頁面,而不是幾行程式碼。切勿為了節省空間而縮短、總結或留下「...」部分。如果您的回答被截斷,系統會要求您從最後一個字元繼續:先寫 <style>,繼續寫,不要從頭開始,並以 </html> 和 </mockup> 結束。
  • 真正可運作的控制項。 使用簡短的內聯腳本(或更簡單時,使用像是帶有 :has() 的隱藏核取方塊這類 CSS)為使用者要求的每個按鈕、切換開關、選擇器和分頁接上功能。主題切換開關會翻轉顏色、切換按鈕會交換兩個選項、時鐘會顯示所選時區的實際時間。切勿展示一個沒有功能的控制項。
  • 語言。 以使用者最新訊息使用的語言撰寫聊天回覆和頁面上的所有文字。
  • 完成頁面。 HTML 必須完整:以 <!doctype html> 開頭,每個標籤都已關閉,並以 </html> 結束。先寫 <style> 並保持簡潔,以便為整個身體內容預留空間。

相關技能