Communitygithub.com

Geruyang/agent-skills-library

將資料視覺化整合到 React 和 Next.js 應用程式中。當使用者需要圖表元件、UML 或架構圖元件、React 整合模式、Next.js 客戶端或伺服器邊界、水合安全、延遲載入、框架感知效能、滾動驅動的視覺故事或匯出指南時使用。

agent-skills-library 是什麼?

此技能專門處理在 React 或 Next.js 產品表面內的資料視覺化整合。它不僅關注圖表渲染,更著重於元件所有權、水合安全性、客戶端與伺服器邊界、打包策略,以及 React 與底層視覺化層之間的整潔整合。支援多種視覺化庫,包含 D3、Canvas、SVG、Vega-Lite、WebGL、Three.js,以及 Mermaid、React Flow 等 UML/架構圖工具。此技能提供一套完整的工作模式,指導如何將資料載入、轉換、圖表配置與渲染層分離,讓 React 負責結構與狀態,而視覺化層專注於縮放、幾何與渲染。針對 Next.js 應用程式,它提供伺服器元件與客戶端元件的選擇指南、動態載入策略,以及如何處理水合與 SSR 問題。此外,技能還涵蓋了行動裝置自適應、無障礙性、滾動驅動的敘事、WebGL 生命週期管理、互動式圖表的事件處理,以及 URL 驅動的可分享檢視狀態等進階主題。輸出期望部分則明確列出每個實作應說明的所有關鍵面向,包括所有權邊界、狀態管理、效能考量和平台支援。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Geruyang/agent-skills-library/tree/HEAD/original-skills/x-openai-react-and-nextjs-data-visualization-609c566

在你喜歡的 AI 中提問

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

說明文件

React 和 Next.js 資料視覺化

概述

當視覺化存在於 React 或 Next.js 產品表面內時,請使用此技能。重點不只是圖表渲染,而是元件所有權、水合安全性、客戶端與伺服器邊界、打包策略,以及 React 與實際繪製標記的視覺化層之間的乾淨整合。

預設假設:React 應擁有結構、佈局和應用程式狀態,而視覺化層則擁有縮放、幾何和狹義範圍的命令式渲染。

如果主要請求是關於螢幕截圖測試、視覺回歸、模擬圖表資料或 E2E 覆蓋率策略,請先導向 ../testing-data-visualizations/SKILL.md,然後僅在需要 React 或 Next.js 特定的實作細節時,再回配到此技能。

選擇此技能的時機

  • 使用者在 React 元件內部建構圖表
  • 應用程式使用 Next.js、App Router 或伺服器與客戶端元件邊界
  • 圖表在 React 表面內使用 D3、Canvas、SVG、Vega-Lite、Plot、WebGL、deck.gl、PixiJS、Sigma.js 或 Three.js
  • 表面使用 Mermaid、React Flow、Cytoscape.js、Sprotty、JointJS、GoJS、ELK、Dagre、Graphviz/WASM、D2 或其他類似 UML 的圖表渲染器
  • 水合、SSR、動態載入或僅限瀏覽器的 API 會影響實作
  • 打包大小、路由層級載入和產品整合很重要
  • 頁面是一個編輯式視覺故事,結合了 React 佈局、滾動狀態、視差、黏性圖形、產生的資產、SVG/Canvas/D3/WebGL/Three.js 圖層、粒子、流動動畫和無障礙備援方案

工作模式

  1. 決定哪些部分可以在伺服器端安全執行,哪些必須在瀏覽器中執行。
  2. 將資料載入、轉換、圖表配置和渲染層的關注點分離。
  3. 估計頁面上一次可以有多少個圖表實例可見,以及昂貴的工作是否可以跨實例共享。
  4. 讓 React 擁有關於佈局、控制項、路由狀態、持久化功能和活躍狀態摘要的權利。
  5. 讓 D3、Canvas、Vega-Lite 嵌入、Plot、WebGL 庫或 Three.js 擁有關於標記層級渲染的權利。
  6. 在連接控制項之前,明確地對 URL 支援的檢視狀態進行建模:篩選器、範圍、指標、比較、選取實體、活躍分頁、地圖邊界、縮放、相機目標和向下鑽取路徑。
  7. 僅對微小的個人偏好使用 localStorage;對於較大的已儲存檢視、草稿、快取片段、自訂註釋或共用/跨裝置工作區,請使用 IndexedDB 或遠端儲存。傳入的 URL 狀態應覆蓋持久化的預設值。
  8. 對僅限瀏覽器的視覺化程式碼,有意識地使用動態載入或僅限客戶端的邊界。
  9. 如果圖表擁有滾輪、捏合或拖曳互動,請明確說明瀏覽器合約。當必須取消預設滾動時,請使用非被動的 native 監聽器或庫鉤子,並且不要假設框架層級的 onWheel 就足夠。
  10. 對於編輯式或資訊圖表表面,將見解標題、成品模式、副標題、註釋計劃、來源說明、大螢幕佈局、行動裝置直向佈局、可選的行動裝置橫向佈局和圖表渲染層,視為明確的元件職責。對於觸控、鍵盤、視覺視口、連線不穩和裝置能力決策,請使用 ../../references/foundations/mobile-first-responsive-visualization.md。
  11. 對於滾動敘述或視差,請使用 ../scrollytelling-and-parallax-data-visualization/SKILL.md 作為故事合約。將場景建模為型別化狀態,而不是臨時的滾動數學。每個場景應定義可見圖層、註釋文字、媒體資產、相機或變換狀態、觸發/進度範圍、靜態關鍵影格和減少動態備援方案。
  12. 對於進階的編輯式、報告、簡報、產生圖像、動畫或現有頁面整合工作,請在實作前使用 ../../references/foundations/meaning-preserving-visual-design-workflow.md 和 ../../references/foundations/mobile-first-responsive-visualization.md。應用共享工作流程來處理概念圖像、大螢幕/行動裝置變體、批准或迭代,以及 React 必須實作的綁定語意設計合約。
  13. 對於產生的圖像或插圖,將資產保留在確定性的公開路徑或可導入的模組中,並將標籤/資料疊加層保留在 React 擁有、可編輯的圖層中。
  14. 對於 WebGL,將渲染器生命週期、調整大小、上下文遺失、處置和動畫迴圈,限制在一個狹窄的僅限客戶端元件邊界內。React 應傳遞資料版本和 props,而不是在整個樹中變異 GPU 物件。
  15. 對於互動式 UML、ERD、相依性、狀態機、流程或架構圖,請先使用 ../uml-and-software-architecture-visualization/SKILL.md;React 應擁有應用程式狀態、面板、控制項、路由和持久化,而圖表層則擁有佈局/渲染細節。
  16. 對於操作型工作區,請在元件分解之前使用 ../../references/foundations/operational-visualization-workspaces.md。React 應擁有外殼狀態、命令列、抽屜、導軌、活躍摘要、URL 狀態和檢查器同步,而視覺化層則擁有幾何、佈局和選取。

Next.js 指南

  • 當圖表在該處不需要瀏覽器 API 時,優先使用伺服器元件進行資料擷取、內容框架和佈局。
  • 對互動式圖表、測量容器、指標事件或僅限瀏覽器的庫,使用客戶端元件。
  • 當圖表執行時期在初始路徑上不需要,或應避免 SSR 時,使用動態匯入。
  • 當相同視覺化必須出現在報告或文件中時,保持圖表資產和匯出路徑的確定性。
  • 盡可能使用路由參數或搜尋參數作為可分享檢視狀態的規範輸入。在初始化僅限客戶端的圖表狀態之前,解析並規範化它們,以便連結的檢視不會因不相關的預設值而閃爍。
  • 對高頻率的短暫變更使用 replace-style 導航,對已確認的選取、已套用的篩選器、向下鑽取步驟和已儲存檢視的轉換使用 push-style 導航。
  • 對於出版風格的頁面,將桌面和行動裝置的組成設計為兄弟狀態,而不是單一壓縮的 SVG。
  • 在行動裝置上,將主要視覺化放在首位或立即可用。將次要的篩選器、檢查器和設定放在可折疊的面板、抽屜、底部工作表或內聯控制項中,這些控制項應保留活躍狀態摘要,並在套用、取消、重置或關閉後將焦點/滾動返回到圖表。
  • 對於密集的工作區,偏好桌面輪廓/控制導軌、中央視口和檢查器導軌;使用具有輪廓、篩選器和細節面板的行動命令列,而不是將桌面導軌堆疊在視覺化上方。
  • 對鍵盤密集的控制項使用 window.visualViewport 或等效的調整大小處理,以便搜尋、篩選和註釋流程不會隱藏唯一關鍵的動作或永久遮蔽視覺化。
  • 在可能的情況下,使用指標事件進行自訂觸控/筆/滑鼠互動,並明確指定 touch-action、放大的點擊區域、拖曳替代方案、重置控制項,以及無僅懸停的證據。
  • 謹慎且無障礙地使用 IntersectionObserver、Scrollama、Motion useScroll、GSAP ScrollTrigger、CSS 滾動時間軸或明確的步驟控制項。預設檢視仍應傳達主張。
  • 對於固定的故事章節,偏好原生滾動和 position: sticky。避免滾動劫持,並保持滾輪、觸控、滾動條和鍵盤行為可預測。
  • 使用 prefers-reduced-motion 將動畫故事切換到最終狀態、關鍵影格或階梯式佈局。
  • 延遲載入重的 WebGL、3D、影片或圖像生成衍生的資產,而不造成佈局偏移。保留長寬比和標籤通道。
  • 當 WebGL 動畫迴圈在螢幕外、路由隱藏、分頁切換或減少動態啟用時,暫停它。

輸出期望

  • 說明 React 與視覺化層之間的所有權邊界。
  • 對於解釋性工作,說明見解標題、成品模式、註釋層、直接標籤策略和行動裝置閱讀路徑。
  • 對於行動裝置工作,說明行動裝置直向佈局、是否支援橫向、控制項如何避免遮蓋圖表、螢幕鍵盤的行為,以及觸控/捏合互動如何對應到選取、縮放、平移和重置。
  • 對於操作型工作區,說明外殼元件、預設選取狀態、同步的輪廓/搜尋/篩選器/檢查器行為、空白表面清除選取規則、行動命令面板和 URL 支援的工作區狀態。
  • 對於藝術指導工作,說明產生的或插圖資產、滾輪/動畫狀態、減少動態行為和靜止影格備援方案。
  • 對於概念化表面,使用共享設計工作流程來處理概念圖像、批准狀態、已批准的參考、綁定語意設計合約、鎖定和彈性元素、React 擁有的資料層、渲染器擁有的層、行動裝置/橫向延續和已批准的偏差。
  • 對於滾動敘述或視差,說明滾動控制器、場景合約、觸發/進度範圍、黏性佈局、行動裝置備援方案和靜態關鍵影格。
  • 對於 WebGL 或粒子,說明渲染器、資料到緩衝區的邊界、動畫時鐘、清理/處置路徑、減少動態行為和靜態備援方案。
  • 明確指出任何僅限客戶端或對水合敏感的程式碼。
  • 明確指出任何必須抑制原生瀏覽器滾動或滾動連結的互動。
  • 說明哪些狀態是 URL 支援的、本地持久化的、IndexedDB 支援的、遠端儲存的或刻意短暫的。
  • 說明複製連結、已儲存檢視、重置、重新整理、上一步/下一步和無效 URL 狀態的行為。
  • 說明哪些控制項或細節區域預設是折疊的或可關閉的,以及活躍狀態如何保持可見。
  • 說明行動裝置上的即時資料連線行為:過時狀態、重新連線、離線/部分資料、低頻寬模式和警報/通知策略(如果相關)。
  • 說明圖表是否適合 SSR、僅限客戶端渲染或動態載入。
  • 對於新工作,包含一個技術設計章節,涵蓋同時實例數、每個實例與頁面層級的效能,以及所選整合模式的維護影響。
  • 在設計中保持對打包大小、匯出需求和無障礙性的可見性。

參考資料

  • 共享理論:
    • ../../references/foundations/editorial-infographic-system.md
    • ../../references/foundations/art-directed-interactive-visual-stories.md
    • ../../references/foundations/meaning-preserving-visual-design-workflow.md
    • ../../references/foundations/task-abstraction-and-chart-selection.md
    • ../../references/foundations/perception-color-and-encoding.md
    • ../../references/foundations/shareable-state-and-persistence.md
    • ../../references/foundations/mobile-first-responsive-visualization.md
    • ../../references/foundations/operational-visualization-workspaces.md
    • ../../references/foundations/implementation-design-and-tradeoffs.md
  • 技能參考:
    • ./references/react-component-patterns.md
    • ./references/d3-canvas-and-grammar-in-react.md
    • ./references/nextjs-client-server-boundaries.md
    • ./references/lazy-loading-ssr-and-bundle-strategy.md
    • ../uml-and-software-architecture-visualization/SKILL.md
    • ../scrollytelling-and-parallax-data-visualization/SKILL.md
    • ../testing-data-visualizations/SKILL.md

代表性提示

  • “我該如何將這個圖表整合到 React 應用程式中?”
  • “這裡對於 D3、Canvas 或 Vega-Lite 來說,正確的 React 模式是什麼?”
  • “讓這個視覺化在 Next.js App Router 中乾淨地運作。”
  • “建立一個帶有黏性圖形和減少動態備援方案的 React 滾動敘述故事。”
  • “這個圖表應該是客戶端元件還是使用動態匯入?”
  • “幫我避免這個視覺化時的水合和 SSR 問題。”
  • “建立一個互動式 React UML、ERD、流程、狀態機、相依性或架構圖。”

Individual skills in this repo

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

Geruyang/agent-skills-library

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

Geruyang/agent-skills-library

Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling

Geruyang/agent-skills-library

Use for new frontend applications, dashboards, games, creative websites, hero sections, and visually driven UI from scratch, or when the user explicitly asks for a redesign/restyle/modernization. Builds from clean, airy, high-taste, readable image-generated concept design with section-specific references, faithful implementation, and browser testing.

Geruyang/agent-skills-library

Use when testing, debugging, or making targeted improvements to rendered frontend apps through the Build Web Apps or web dev plugin: local dev servers, UI regressions, interaction bugs, console errors, responsive layout, and visual QA. Check whether the Browser plugin is available and use it first when it is; otherwise use regular Playwright with the recorded reason.

Geruyang/agent-skills-library

Design UI surfaces for browser games. Use when the user asks for HUDs, menus, overlays, responsive layouts, or visual direction that must protect the playfield.

Geruyang/agent-skills-library

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

Geruyang/agent-skills-library

Guide for building, configuring, and deploying microfrontends on Vercel. Use this skill when the user mentions microfrontends, multi-zones, splitting an app across teams, independent deployments, cross-app routing, incremental migration, composing multiple frontends under one domain, microfrontends.json, @vercel/microfrontends, the microfrontends local proxy, or path-based routing between Vercel projects. Also use when the user asks about shared layouts across projects, navigation between microfrontends, fallback environments, asset prefixes, or feature flag controlled routing.

Geruyang/agent-skills-library

Next.js App Router expert guidance. Use when building, debugging, or architecting Next.js applications — routing, Server Components, Server Actions, Cache Components, layouts, middleware/proxy, data fetching, rendering strategies, and deployment on Vercel.

Geruyang/agent-skills-library

Use when sizing Public Equity Investing positions, finding equity hedges, or building an integrated position-and-hedge risk plan from a listed-equity thesis. Do not use for thesis construction, standalone event underwriting, trade execution, personal investment advice, or credit-instrument risk.

Geruyang/agent-skills-library

shadcn/ui expert guidance — CLI, component installation, composition patterns, custom registries, theming, Tailwind CSS integration, and high-quality interface design. Use when initializing shadcn, adding components, composing product UI, building custom registries, configuring themes, or troubleshooting component issues.

Geruyang/agent-skills-library

v0 by Vercel expert guidance. Use when discussing AI code generation, generating UI components from prompts, v0 CLI usage, v0 SDK/API integration, or integrating v0 into development workflows with GitHub and Vercel deployment.

Geruyang/agent-skills-library

Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for "shadcn init", "create an app with --preset", or "switch to --preset".

相關技能