关于 react-vite-dashboard
面向前端工程师的技能,使用 React、Vite 和 TypeScript 根据 Stitch 屏幕构建数据密集型仪表板,并规定组件结构、设计令牌映射、数据获取及仪表板实现规范。
主要功能
- 01获取 Stitch 屏幕和资源
- 02将 DESIGN.md 令牌映射到 CSS 变量
- 03组织组件、页面与 hooks
- 04使用 TanStack Query 获取异步数据
- 05包含无障碍与响应式检查
适用场景
- 01根据 Stitch 屏幕构建仪表板
- 02在 Vite 应用中应用 DESIGN.md 令牌
- 03异步获取仪表板数据
- 04创建只读链上数据视图
MCP 相关
使用 Stitch MCP 发现工具前缀并获取屏幕设计,随后将资源保存到本地。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ google-labs-code/ stitch-skills --skill react-vite-dashboard安装后在 Claude Code 中输入/react-vite-dashboard确认已加载。
附带文件README.md
详细介绍
Stitch 到 React + Vite 仪表板
你是一名前端工程师,负责根据 Stitch 屏幕构建数据密集型仪表板。目标技术栈:React 18、Vite、TypeScript、TanStack Query、React Router,以及用于链上读取的可选 ethers v6 或 viem。
先决条件
- 已配置 Stitch MCP(设置指南)
- 项目
DESIGN.md(请参阅design-md技能),以确保设计令牌的精确还原 - Vite + React + TypeScript 脚手架(
npm create vite@latest)
工作流
- 发现 MCP 前缀 — 运行
list_tools,记录 Stitch 前缀(例如stitch:)。 - 获取屏幕 — 使用项目 ID 和屏幕 ID 调用
[prefix]:get_screen。 - 下载资源 — 将 HTML/截图保存到
.stitch/designs/{screen}.html和.png。 - 读取 DESIGN.md — 将
colors.*、typography.*、spacing.*映射为src/index.css中的 CSS 变量。 - 生成组件 — 拆分到
src/components/、src/pages/、src/hooks/。 - 接入数据 — 使用 TanStack Query 进行异步获取;保持展示组件纯粹。
HTML → React 映射
| 模式 | 实现方式 |
|---|---|
| 布局网格 / flex | 使用与 DESIGN.md 间距令牌一致的 Tailwind 工具类或 CSS 模块 |
| 卡片 / 面板 | 使用 <section>,并采用令牌化的圆角;在强制颜色模式下提供阴影回退样式 |
| 表格 | 使用语义化的 <table> 或 TanStack Table;表格数据绝不能只用 div 网格呈现 |
| 按钮 | 使用带有可见焦点环的 <button type="button">(除非 DESIGN.md 定义了焦点令牌,否则保留浏览器默认样式) |
| 表单 | 使用 <label htmlFor> + <input id>;通过 aria-describedby 关联错误信息 |
| 加载状态 | 使用骨架屏组件;获取数据期间在容器上设置 aria-busy |
| 钱包连接 | 在 WalletProvider 中隔离;生成的代码中绝不能嵌入私钥 |
DESIGN.md 集成
/* src/index.css — example token bridge */
:root {
--color-primary: /* from DESIGN.md colors.primary */;
--font-body: /* typography.body-md.fontFamily */;
}
发布 UI 前,请在本地运行 design.md 检查器:
npx @google/design.md lint DESIGN.md
Web3 仪表板约定
- 通过
useReadContract(viem/wagmi)或 ethersContract+ TanStack QueryqueryFn进行只读合约调用。 - 使用
formatUnits格式化代币数量;在设置页脚中显示网络名称和链 ID。 - 用通俗易懂的语言呈现交易错误;若存在
txHash,则链接到区块浏览器。 - 对 Gas 敏感的流程:批量读取,避免在渲染循环中重复执行
eth_call。
文件结构
src/
├── components/ # Presentational UI from Stitch
├── pages/ # Route-level screens
├── hooks/ # useQuery wrappers, wallet hooks
├── lib/ # ABI helpers, formatters
└── styles/ # Token CSS variables
质量检查清单
- WCAG 2.2 AA:DESIGN.md 中定义的组件配对对比度通过检查器验证
- 支持键盘导航:焦点顺序与视觉顺序一致
- 响应式:在 375px 和 1280px 宽度下测试
- 仓库中没有密钥:RPC URL 从环境变量读取(
VITE_*前缀仅用于公共端点) - TypeScript 严格模式:合约 ABI 中不使用
any
Stitch 文档说明
打开 stitch.withgoogle.com/docs 上的链接时,如果相对路径导航错误地发生重定向,请使用完整的 https://stitch.withgoogle.com/docs/... URL。
评论
支持 Markdown