Community程式設計與開發github.com

繪製動畫圖表

當頁面需要一個解說性圖表(流程圖、時間軸、結構圖、前後對照圖),作為一個 SVG React 元件,在捲動到畫面中時自動繪製,採用極簡墨水灰階風格,適用於 Next.js 或 React 網站。也適用於法文「diagramme animé」或「schéma qui se dessine」的要求。

繪製動畫圖表 是什麼?

這個技能讓開發者能為 Next.js 或 React 網站建立一個會「自動繪製」的 SVG 圖表元件。圖表的核心概念是「一個圖表一個想法」,並在首次進入可視區域時,依照閱讀順序依序繪製,之後便保持靜止。它採用嚴格的墨水灰階風格(墨色為重點,灰色為輔助),標籤直接標示在圖形上,無圖例,且支援「減少動畫」設定。 技能要求開發者先將想法濃縮為一句話,並遵循特定的元件庫(`reference/diagramMotion.ts` 和 `reference/DiagramParts.tsx`)。所有動畫時序都必須對應閱讀順序:總繪製時間在 2 到 3 秒之間,關鍵訊息(墨色部分)則在最後 1500 至 2300 毫秒出現。 此技能也支援圖表縮圖(`thumb` 模式),用於卡片或列表展示。它提供多種預先定義的圖表形式,如:收斂序列、時間節奏、開放再匯流、狀態與轉換、結構分解等。為確保品質,開發者必須在 localhost 上進行視覺驗證與截圖比對,以避免標籤被截斷或重疊等常見錯誤。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/marcus-clay/design-skills/tree/main/skills/drawing-animated-diagrams

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

繪製動畫圖表,進入畫面時自動繪製

原則

一個圖表一個想法,先用一句話寫下。圖表會在進入畫面時,依照閱讀順序只繪製一次,之後便保持靜止。墨色傳遞訊息,灰色承載其餘部分,標籤直接標示在圖形上,無圖例。當使用者設定「減少動畫」時,圖表會直接顯示完整狀態。

必要背景: diagram-storytelling(濃縮為一個想法,箭頭上使用動詞,節點代表狀態)。emil-design-eng 處理曲線與持續時間。

何時不該使用此技能

  • 數據圖表(曲線圖、長條圖):請使用資料視覺化工具。
  • 循環播放的動畫,用以展示即時運作流程:請使用動態原型,而非圖表。
  • 在工具中每天被查看數十次的圖表:完全不需要動畫。

操作步驟

  1. 一句話。 用一句話表達想法,包含主體(該主體會以墨色呈現),例如:「探索三個概念,保留一個原型」。如果一句話包含兩個想法,就製作兩個圖表。
  2. 引用工具庫。 將 reference/diagramMotion.ts 與 reference/DiagramParts.tsx 複製到專案中(如果尚未存在)。永遠不要在本地重新定義 Panel、Arrowhead、色調或輔助函式。
  3. 字詞。 一個雙語資料檔(en/fr):包含用於無障礙的 title 與 desc,以及每個標籤。每個標籤最多幾個單詞。法文:大寫字母請加註音符號,冒號前使用不間斷空格,避免使用破折號。
  4. 幾何設定。 viewBox="0 0 960 H"(H 在 300 到 400 之間),使用具名常數表示座標,左右各留 60 px 邊距給線條末端的標籤(textAnchor="end" 且 x = 54 的標籤會被截斷)。Panel 最小寬度為 720(以便在手機上滾動)。
  5. 閱讀順序 = 延遲順序。 每個元素根據閱讀順序設定毫秒延遲:最先閱讀的元素延遲為 0,每個步驟增加 200 到 300 毫秒,同一系列中元素之間相隔 40 到 110 毫秒。墨色訊息最後出現(1500 到 2300 毫秒)。總繪製時間:2 到 3 秒。
  6. 驗證。 在 localhost 上顯示頁面,將圖表滾動至中央,等待 3 秒,然後截圖(使用 reference/shoot-diagrams.cjs,執行時需加上 NODE_PATH=<project>/node_modules)。檢查每張截圖:標籤是否被邊緣截斷、標籤是否被白色區塊遮蓋、兩個相鄰標籤是否互相接觸。修正錯誤後重新截圖。同時在 390 px 寬度下進行驗證。

快速參考

元件輔助函式數值
線條、箭頭在 path 上使用 draw(shown, delay, duration),並設定 pathLength={1}400 到 900 毫秒
虛線無法繪製:使用 rise(淡入)
區塊、標籤rise(shown, delay):向上移動 8 px500 毫秒
時間條grow(shown, delay, duration):從左側延伸500 到 800 毫秒
框架、放大鏡open(shown, delay):從 0.96 到 1 展開600 毫秒
箭頭尖端緊接在 draw 之後使用 <Arrowhead x y angle style={rise(...)}>
色調INK #111827 訊息,LINE #D1D5DB 邊框,PALE #E5E7EB 背景,#6B7280 次要標籤,#9CA3AF 被排除的內容
文字節點標題 14 px 600,標籤 11 到 13 px,永遠不小於 10
曲線cubic-bezier(0.22, 1, 0.36, 1)(已在輔助函式中)

所有 CSS 變換都應應用在包裹的 <g> 元素上,絕對不要直接用在帶有 SVG transform 屬性的圖形上(否則會覆蓋原有變換)。

各類型想法的圖表形式

  • 收斂序列:節點排成一列,展開分支,只有一條繼續以墨色顯示,其他以 LINE 呈現並標示「排除」。
  • 時間節奏:上方為週數軸,每個行動者一條線,使用 grow 條,一個墨色箭頭標示重要的關係。
  • 開放再匯流:在一個按時間比例繪製的條形圖上方,放置一個放大鏡(先 open 再 draw 輪廓)。
  • 狀態與轉換:節點代表狀態(探索階段使用虛線,中間階段使用灰色,最終確定階段使用實心墨色),使用動詞標籤的箭頭,放置於節點上方以避免重疊。
  • 結構分解:物體在左側,使用虛線切割,箭頭指向右側的部件卡片,第一個部件以墨色顯示。

每個形式的完整範例請參考:reference/exemple-TemplateDiagrams.tsx 及其資料檔 reference/exemple-templateDiagramsData.ts。

圖表縮圖(卡片、列表)

相同元件可以支援靜態且裁切的縮圖顯示:thumb 會停用面板與漸現效果,並將 viewBox 變更為 520 × 400(13:10,與卡片圖片比例相同),並以訊息為中心。每個圖表一個縮圖,放在 FRAMES 中,並在 350 px 寬度下進行截圖驗證:圖形中 11 px 以上的文字必須清晰可讀。詳見 reference/exemple-TemplateDiagrams.tsx 中的 Drawing 與 TemplateDiagramThumb。

常見錯誤

錯誤修正方式
加入循環動畫(繞圈的小點、閃爍的狀態)「為了讓它看起來有生命力」繪製過程本身就是動畫。只有在時間是圖表主題時才能使用循環,且只能有一個,在繪製完成後透過 useLoop 實現
使用強調色,綠色/紅色表示通過/拒絕只使用墨色與灰色;結果應透過形狀(實心、虛線、排除)或文字來表達
在圖形旁放置圖例文字應直接標示在圖形上,靠近所描述的內容
箭頭標籤使用目標畫面的名稱應使用轉換的動詞(例如:「已驗證」、「未保留」)
標籤居中放在兩個相距 60 px 的節點之間標籤會溢出到節點上:應放置在節點上方
為了效果而選擇延遲時間延遲時間應跟隨閱讀順序,訊息最後出現
未經截圖就宣告完成必須在滾動並等待 3 秒後截圖,並檢查截圖

Individual skills in this repo

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

brand-system

Système de marque sobre et éditorial, fourni comme marque par défaut : palette bleue sur fond clair, typographie Inter, dégradé doux, boutons en pilule, cartes à ombre légère, icônes Phosphor. Appliquer à tout livrable (présentation, document, page, artefact web) quand aucune autre charte n'est donnée, ou s'en servir comme modèle à remplacer par la charte d'un projet. À combiner avec `slides` (mises en page) et `pptx` (génération du fichier). Déclencher dès qu'on demande une mise en forme soignée, une identité visuelle, des tokens de design, ou un livrable client à l'aspect professionnel.

card-illustrations

Use when asked for an illustration, a thumbnail or a card picture for a card in a grid of content, such as a library of resources (guide, template, deck, article), when a set of cards needs one consistent treatment, or when product screenshots are shared as a reference for card illustrations. Two modes, "noir et blanc" (ink accent) or "accent couleur" (ten-hue palette), chosen by the argument or the wording of the request.

direction-design

Aide à tenir une position de responsable design : cadrer les besoins de conception à l'échelle d'une feuille de route plutôt que d'un seul sujet, planifier les bonnes instances et revues, et construire l'argumentaire qui permet de défendre un point de vue design et de peser dans un arbitrage, y compris dans une organisation pilotée par la direction technique. Déclencher dès qu'il faut préparer une feuille de route design, décider quelles instances créer ou faire évoluer, ou construire un argumentaire pour défendre une position dans un arbitrage ou une négociation de priorité.

marker-sketch

Dessine n'importe quelle idée, description, flux, architecture, organisation, wireframe ou scène sous forme de croquis au feutre sur papier à points (SVG noir, blanc, gris, ombres portées, un accent rare), de façon rapide et toujours avec la même construction. Quatre modes, Croquis (réponse directe), Live (réunion, atelier, échange oral), Atelier (schéma dense, mise en page automatique), Interactif (évolution maintenant, ensuite, plus tard, éléments déplaçables, formes qui changent). À utiliser dès qu'on demande un schéma, diagramme, flow, croquis, sketch, illustration, wireframe, maquette rapide, carte mentale, vue d'ensemble dessinée, "montre-moi", "dessine", "visualise", "schématise", ou une illustration animée ou interactive d'une évolution. Utiliser même si l'utilisateur ne parle pas de style : ce style est le défaut.

personal-os

OS personnel avec Claude Code. À utiliser pour créer ou faire évoluer un second cerveau (un « brain »), un dossier de fichiers Markdown qui sert de mémoire et de tableau de bord à Claude Code. Déclencher quand on veut structurer son travail, traiter une inbox (comptes rendus, transcriptions, notes), mettre en place des règles d'ingestion, des agents, des commandes ou des vues générées, préparer un 1:1, tenir un registre de décisions, ou propager un changement dans tous ses contenus.

ship-to-show

Framework en 7 phases pour transformer un prototype en case study portfolio avec vidéos animées, contenu narratif bilingue et pack d'intégration. Déclencher quand l'utilisateur veut documenter un prototype, créer un case study, produire des vidéos de démonstration d'une interface, ou publier un projet dans un portfolio. Entrée : un fichier de code ou un prototype. Sortie : case study complet publié avec vidéos.

signal-research

Scans current signals across UI/UX, product design, design strategy, AI-assisted workflows, the design toolchain, B2B/B2G/SaaS design, AI regulation and process automation, then generates content angles calibrated to the user's own positioning. Use when the user asks for content ideas, wants to know what is trending or debated in design, product or AI, needs an editorial plan, or names a topic to write about (search first, then differentiate).

slides

Système de création de présentations et de slides : tokens de design, catalogue de quinze mises en page, structure narrative et conventions de rédaction des titres. Appliquer à tout output de type deck, pitch, présentation client, keynote, support de formation ou rapport visuel. Déclencher dès que la demande implique des slides, un deck, une présentation PowerPoint, Google Slides, ou tout support visuel multi-pages. Prend la priorité sur une skill de génération de fichiers (pptx) pour les choix visuels et stylistiques : celle-ci gère la technique, slides gère les tokens, la structure narrative et les mises en page.

socle

Framework de création de projet digital en 5 étapes : Structurer, Outiller, Construire, Livrer, Élargir. Appliquer systématiquement au démarrage de tout nouveau projet web, app, SaaS, ou outil interne. Déclencher dès que l'utilisateur mentionne un nouveau projet, un MVP, un prototype, un produit à construire, une app à développer, ou demande comment organiser le développement d'un produit. Également pertinent quand l'utilisateur a une idée de produit et veut passer à la réalisation, ou quand il se demande par où commencer. Ce skill prend la priorité sur les approches ad-hoc ou les scaffoldings improvisés.

ux-et-design-thinking

Apporte un regard de méthodologie UX, de cycle de design et de design thinking sur un parcours, un écran ou une proposition de conception : logique Jobs-to-be-Done, ergonomie d'interface, cohérence de parcours (customer journey), avec prise de hauteur plutôt que jugement esthétique. Déclencher dès qu'on demande un avis de conception, qu'on veut challenger un écran ou un parcours, ou qu'on réfléchit à une approche méthodologique UX.

相關技能