vscode-webview-ui
1
总安装量
1
周安装量
#50065
全站排名
安装命令
npx skills add https://github.com/atman-33/atman-workspace --skill vscode-webview-ui
Agent 安装分布
amp
1
opencode
1
kimi-cli
1
codex
1
github-copilot
1
claude-code
1
Skill 文档
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.