vscode-webview-ui
VS Code Webview UI
Overview
This skill assists in developing the React application that powers VS Code webview surfaces. It covers the webview-ui workspace, which is bundled with Vite and communicates with the extension host via the bridge/vscode helper.
Project Structure
The webview-ui package follows this structure:
webview-ui/
├── src/
│ ├── components/ # Shared visual components reused across features
│ │ └── ui/ # shadcn/ui component library
│ ├── hooks/ # Shared React hooks
│ ├── features/
│ │ └── {feature}/
│ │ ├── index.tsx # Feature entry component rendered from routing
│ │ ├── components/# Feature-specific components
│ │ └── hooks/ # Feature-specific hooks
│ ├── bridge/ # Messaging helpers for VS Code <-> webview
│ └── index.tsx # Runtime router that mounts the selected feature
├── public/ # Static assets copied verbatim by Vite
├── vite.config.ts # Vite build configuration
└── README.md
Coding Guidelines
- Shared Modules: Prefer shared modules under
src/componentsandsrc/hooksbefore introducing feature-local code. - Feature Boundaries: Add feature-only utilities inside the nested
components/orhooks/directories to keep boundaries clear. - Styling: Keep styling in Tailwind-style utility classes (see
src/app.cssfor base tokens) and avoid inline styles when reusable classes exist. - Messaging: Exchange messages with the extension via
vscode.postMessageand subscribe throughwindow.addEventListener('message', …)inside React effects. - Configuration: When adding new steering or config references, obtain paths through the shared
ConfigManagerutilities from the extension layer.
Testing & Quality
- Integration Tests: Use Playwright or Cypress style integration tests if adding complex interactions (tests live under the repo-level
tests/). - Pre-commit Checks: Run
npm run lintandnpm run buildbefore committing to ensure TypeScript and bundler checks pass.
More from atman-33/skills
dnd-kit-implementation
Guide for implementing sortable and droppable components using dnd-kit library. Use this skill when building React applications that require drag-and-drop functionality with both container reordering (useSortable) and item dropping (useDroppable) capabilities, such as Kanban boards, file management systems, or playlist editors.
38tech-article-humanizer
Transform technical article drafts or source materials into human-like, high-quality Japanese technical articles. Use this skill when the user wants to generate, rewrite, or humanize technical articles (especially about TypeScript, JavaScript, React, or frontend topics) following specific human-writing patterns and style guidelines. Triggers include requests like "記事を人間風に", "tech article を生成", "humanize this article", or providing article source materials.
4agent-memory
Use this skill when the user asks to save, remember, recall, or organize memories. Triggers on phrases like 'remember this', 'save this', 'note this', 'what did we discuss about...', 'check your notes', 'clean up memories'. Also use proactively when discovering valuable findings worth preserving.
2react-router-v7-app
Implements React Router v7 app structure, routing patterns, and component templates. Use when creating or modifying React Router v7 applications to ensure consistent folder structure, data loading patterns, and component architecture.
2pr-assistant
Analyzes git changes and assists with creating comprehensive pull requests. Use when user wants to create a PR, review changes before PR, or needs help drafting PR descriptions. Triggers on phrases like 'create PR', 'make a pull request', 'draft PR description', 'what changed in this branch', 'prepare PR'.
1openspec-bulk-archive-change
Archive multiple completed changes at once. Use when archiving several parallel changes.
1