React Vite Dashboard
Convert Stitch designs into production React + Vite dashboards with TanStack Query, accessible tokens from DESIGN.md, and Web3-ready patterns (ethers/viem).
- Skill ID
- google-labs-code/stitch-skills/react-vite-dashboard
- Publisher
- google-labs-code
- Repository
- stitch-skills
- Installs
- 0
- Files
- 2
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
google-labs-code/stitch-skills/react-vite-dashboardInstalls these files- README.md
- SKILL.md
What this skill tells the agent
Stitch to React + Vite Dashboard
You are a frontend engineer building data-dense dashboards from Stitch screens. Target stack: React 18, Vite, TypeScript, TanStack Query, React Router, and optional ethers v6 or viem for on-chain reads.
Prerequisites
- Stitch MCP configured (setup guide)
- A project
DESIGN.md(see thedesign-mdskill) for token fidelity - Vite + React + TypeScript scaffold (
npm create vite@latest)
Workflow
- Discover MCP prefix — run
list_tools, note the Stitch prefix (e.g.stitch:). - Fetch screen —
[prefix]:get_screenwith project and screen IDs. - Download assets — persist HTML/screenshot under
.stitch/designs/{screen}.htmland.png. - Read DESIGN.md — map
colors.*,typography.*,spacing.*to CSS variables insrc/index.css. - Generate components — split into
src/components/,src/pages/,src/hooks/. - Wire data — use TanStack Query for async fetches; keep presentational components pure.
HTML → React mapping
| Pattern | Implementation |
|---|---|
| Layout grid / flex | Tailwind utilities or CSS modules aligned to DESIGN.md spacing tokens |
| Cards / panels | <section> with tokenized border-radius and elevation fallbacks for forced-colors |
| Tables | Semantic <table> or TanStack Table; never div-only grids for tabular data |
| Buttons | <button type="button"> with visible focus ring (preserve browser default unless DESIGN.md defines focus tokens) |
| Forms | <label htmlFor> + <input id>; associate errors with aria-describedby |
| Loading | Skeleton components; aria-busy on containers during fetch |
| Wallet connect | Isolate in WalletProvider; never embed private keys in generated code |
DESIGN.md integration
/* src/index.css — example token bridge */
:root {
--color-primary: /* from DESIGN.md colors.primary */;
--font-body: /* typography.body-md.fontFamily */;
}Run the design.md linter locally before shipping UI:
npx @google/design.md lint DESIGN.mdWeb3 dashboard conventions
- Read-only contract calls via
useReadContract(viem/wagmi) or ethersContract+ TanStack QueryqueryFn. - Format token amounts with
formatUnits; show network name and chain ID in settings footer. - Surface transaction errors in plain language; link to block explorer when
txHashexists. - Gas-sensitive flows: batch reads, avoid redundant
eth_callin render loops.
File structure
src/
├── components/ # Presentational UI from Stitch
├── pages/ # Route-level screens
├── hooks/ # useQuery wrappers, wallet hooks
├── lib/ # ABI helpers, formatters
└── styles/ # Token CSS variablesQuality checklist
- [ ] WCAG 2.2 AA: contrast from DESIGN.md component pairs passes linter
- [ ] Keyboard navigable: focus order matches visual order
- [ ] Responsive: test at 375px and 1280px widths
- [ ] No secrets in repo: RPC URLs from env (
VITE_*prefix only for public endpoints) - [ ] TypeScript strict: no
anyon contract ABIs
Stitch docs note
When following links on stitch.withgoogle.com/docs, use the full https://stitch.withgoogle.com/docs/... URL if relative navigation redirects incorrectly.
More from google-labs-code
Use this skill in a project
Open any RiverX project, search the Skills panel for google-labs-code/stitch-skills/react-vite-dashboard, and install it in one click.
