Handle UI changes, fixtures, screenshots, and visual testing in component explorer projects.
The material indicates this is essentially an open-source prompt/documentation-style UI development skill with no required secrets and no declared remote endpoints. Based on the available facts, overall risk is low; only note that the README includes normal frontend code and an example project-level fetch, but no standalone exfiltration or over-privileged behavior is evident.
The material explicitly states that no secrets or environment variables are required, and there is no request for tokens, API keys, or other sensitive credentials, so credential exposure risk is low.
No remote endpoint is declared; the README only contains a frontend example using `fetch('/api/data')`, which appears to be project-level sample code rather than built-in egress by the skill itself. No description suggests sending user data to third-party services.
The system marks this as prompt-only, indicating the skill itself is instructional content rather than an executable tool; the material does not show it launching local processes, running scripts, or invoking system-level capabilities.
The material mainly describes how to write `.fixture.ts/.tsx` files and UI rendering constraints, and does not claim the ability to read, write, or enumerate sensitive local files or data sources; described access is limited to component containers and project code context.
The source points to a Microsoft GitHub repository and is marked open source, which is a strong positive for auditability; however, the license is unspecified, stars are 0, and maintenance status is unknown, so users should still verify repository activity and actual ownership before relying on it.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "use-component-explorer" skill from askskill: 1. Download https://raw.githubusercontent.com/microsoft/vscode-team-kit/main/component-explorer/skills/use-component-explorer/SKILL.md 2. Save it as ~/.claude/skills/use-component-explorer/SKILL.md 3. Reload skills and tell me it's ready
This project uses a component explorer. I just added a new button component. Tell me how to add fixtures for default, disabled, and loading states, and provide an example structure.
Guidance on adding explorer fixtures, including example structure for multiple component states.
I updated the card component styles. Based on a component explorer workflow, list the screenshots and visual test checkpoints I should update, and how to avoid missing regressions.
A checklist for updating screenshots and visual regression checks after the UI change.
A visual test in the component explorer failed, and the diff is in a modal component. Help me analyze common causes and provide prioritized debugging steps.
Prioritized troubleshooting steps covering environment issues, state differences, style changes, and baseline updates.
Fixture files end in .fixture.ts or .fixture.tsx and are auto-discovered by the Vite plugin.
Every fixture has a render function that receives a container DOM element and a RenderContext:
import { defineFixture } from '@vscode/component-explorer';
export default defineFixture({
render: (container) => {
// Render your component into container
return { dispose: () => { /* cleanup */ } };
},
});
The second argument to render provides:
signal — AbortSignal for cancellation (check signal.aborted or listen to 'abort')defineFixture({
render: async (container, { signal }) => {
const data = await fetch('/api/data', { signal });
container.textContent = await data.text();
},
});
import { createRoot } from 'react-dom/client';
import { defineFixture } from '@vscode/component-explorer';
import { MyComponent } from './MyComponent';
export default defineFixture({
render: (container) => {
const root = createRoot(container);
root.render(<MyComponent />);
return { dispose: () => root.unmount() };
},
});
Group related fixtures in a single file:
import { defineFixture, defineFixtureGroup } from '@vscode/component-explorer';
export default defineFixtureGroup({
Default: defineFixture({ render: (c) => { /* ... */ } }),
WithError: defineFixture({ render: (c) => { /* ... */ } }),
Disabled: defineFixture({ render: (c) => { /* ... */ } }),
});
Groups can have metadata (path prefix, labels):
export default defineFixtureGroup({ path: 'Forms/', labels: ['forms'] }, {
Primary: defineFixture({ /* ... */ }),
Secondary: defineFixture({ /* ... */ }),
});
For closely related variants rendered side-by-side:
import { defineFixture, defineFixtureGroup, defineFixtureVariants } from '@vscode/component-explorer';
export default defineFixtureGroup({
Sizes: defineFixtureVariants({
Small: defineFixture({ render: (c) => { /* ... */ } }),
Medium: defineFixture({ render: (c) => { /* ... */ } }),
Large: defineFixture({ render: (c) => { /* ... */ } }),
}),
});
Set background: 'dark' for components designed for dark backgrounds:
defineFixture({
background: 'dark',
render: (container) => { /* ... */ },
});
Fixtures must not mutate global state. Each fixture's render function should only modify the provided container element and return a dispose function that fully cleans up. No writes to document.body, global variables, localStorage, shared singletons, or other state outside the container. This ensures fixtures can be rendered in any order, in parallel, and multiple times without interference.
Do not use global CSS selectors like :root, html, body, or *. Every style must be scoped to a class name (e.g. .app-root, .my-component). Components are rendered in isolation inside the explorer — global styles leak across fixtures and break the isolated rendering model.
App-level CSS files (resets, CSS variables on :root, etc.) are fine for the app itself, but they must not be imported by components or fixture files. Keep app-level styles in separate entry points (e.g. index.css imported only by the app's main.ts) so they are never loaded during fixture rendering. If a component needs shared variables or resets, apply them within the fixture's container element or via the project-local wrapper (see below).
defineFixture Directly…
Let AI agents read and write memory with environment-aware storage fallback.
Gather independent multi-model plans and debates for implementation and architecture decisions.
Get high-signal second opinions on plans, designs, and implementations early.
Create and manage AST ban rules to block specific code syntax patterns.
Analyze VS Code rolling build health and identify breaking commit ranges.
Add emoji reactions to GitHub issues or pull requests quickly.
Create and maintain screenshot test fixtures for UI components effectively.
Build, debug, and validate features in web app frontends.
Helps you build and debug Guigui GUI components and interactions.
Set up Component Explorer with CLI, MCP, and VS Code tooling.
Build and refine UI/UX with design exploration, frontend setup, and integration.
Design and generate polished, production-ready frontend interfaces and web component code.