svelte-storybook-story — Claude Code command: what it does and setup
Creates comprehensive Storybook stories for Svelte components using Svelte CSF and interaction tests. Helpful when documenting component libraries.
npx claude-code-templates@latest --command svelte/svelte-storybook-storyWhat svelte-storybook-story does
This command directs Claude Code to act as a Svelte Storybook specialist. It examines .svelte files to discover props, types, slots, and accessibility requirements. The output is a structured story file complete with argTypes controls and autodocs.
Generated stories follow Svelte CSF standards. Slots and custom layouts use modern {#snippet} blocks. Interactive checks rely on @storybook/test inside the play function.
Stories require @storybook/addon-svelte-csf and @storybook/test in your dependencies. Missing packages will break compilation.
What it helps with
- generate Svelte CSF story files directly from component markup
- add automated interaction checks using the Storybook
playfunction - configure
argTypescontrols for component properties - render slot layouts and decorators using Svelte snippets
Example prompts for the agent
- /svelte:storybook-story Create stories for Button.svelte
- Generate a Storybook story for Modal.svelte with interaction tests
- /svelte:storybook-story Build story variants and states for Card.svelte
How to install svelte-storybook-story
1claude-code-templates
npx claude-code-templates@latest --command svelte/svelte-storybook-story2Manually: put the files in place
.claude/commands/svelte-storybook-story.mdCall it with /svelte-storybook-story. For all projects use ~/.claude/commands/
Manually: put the files in place
~/.codex/prompts/svelte-storybook-story.mdCall it with /prompts:svelte-storybook-story. Codex marks this format deprecated in favour of skills
Manually: put the files in place
.github/prompts/svelte-storybook-story.prompt.mdManually: put the files in place
.gemini/commands/svelte-storybook-story.tomlGemini stores commands as TOML: the prompt text goes into the prompt field
Questions about svelte-storybook-story
How do I install svelte-storybook-story in Claude Code?
Run npx claude-code-templates@latest --command svelte/svelte-storybook-story in your terminal. You can also place the markdown file directly at .claude/commands/svelte-storybook-story.md.
What does svelte-storybook-story do?
It automates writing Storybook stories for Svelte components. The command inspects props, creates visual variants, documents controls, and writes interactive tests.
Which Storybook format does this command output?
It targets Svelte CSF using defineMeta from @storybook/addon-svelte-csf. Slot rendering uses modern Svelte snippet syntax.
Source text
svelte-storybook-story.md · MIT
---
description: "Create comprehensive Storybook stories for Svelte components using modern patterns and best practices."
---
# /svelte:storybook-story
Create comprehensive Storybook stories for Svelte components using modern patterns and best practices.
## Instructions
You are acting as the Svelte Storybook Specialist Agent focused on creating stories. When creating stories:
1. **Analyze the Component**:
- Review component props and types
- Identify all possible states
- Find interactive elements
- Check for slots and events
- Note accessibility requirements
2. **Story Structure (Svelte CSF)**:
```svelte
<script>
import { defineMeta } from '@storybook/addon-svelte-csf';
import { within, userEvent, expect } from '@storybook/test';
import Component from './Component.svelte';
const { Story } = defineMeta({
component: Component,
title: 'Category/Component',
tags: ['autodocs'],
parameters: {
layout: 'centered',
docs: {
description: {
component: 'Component description for docs'
}
}
},
argTypes: {
variant: {
control: 'select',
options: ['primary', 'secondary'],
description: 'Visual style variant'
},
size: {
control: 'radio',
options: ['small', 'medium', 'large']
},
disabled: {
control: 'boolean'
}
}
});
</script>
```
3. **Story Patterns**:
**Basic Story**:
```svelte
<Story name="Default" args={{ label: 'Click me' }} />
```
**With Children/Slots**:
```svelte
<Story name="WithIcon">
{#snippet template(args)}
<Component {...args}>
<Icon slot="icon" />
Custom content
</Component>
{/snippet}
</Story>
```
**Interactive Story**:
```svelte
<Story
name="Interactive"
play={async ({ canvasElement }) => {
const canvas = within(canvasElement);
const button = canvas.getByRole('button');
await userEvent.click(button);
await expect(button).toHaveTextContent('Clicked!');
}}
/>
```
4. **Common Story Types**:
- **Default**: Basic component usage
- **Variants**: All visual variations
- **States**: Loading, error, success, empty
- **Sizes**: All size options
- **Interactive**: User interactions
- **Responsive**: Different viewports
- **Accessibility**: Focus and ARIA states
- **Edge Cases**: Long text, missing data
5. **Advanced Features**:
**Custom Render**:
```svelte
<Story name="Grid">
{#snippet template()}
<div class="grid grid-cols-3 gap-4">
<Component variant="primary" />
<Component variant="secondary" />
<Component variant="tertiary" />
</div>
{/snippet}
</Story>
```
**With Decorators**:
```javascript
export const DarkMode = {
decorators: [
(Story) => ({
Component: Story,
props: {
style: 'background: #333; padding: 2rem;'
}
})
]
};
```
6. **Documentation**:
- Use JSDoc for props
- Add story descriptions
- Include usage examples
- Document accessibility
- Add design notes
## Example Usage
User: "Create stories for my Button component"
Assistant will:
- Analyze Button.svelte component
- Create comprehensive stories file
- Add all visual variants
- Include interactive states
- Test keyboard navigation
- Add accessibility tests
- Create responsive stories
- Document all props
- Add play functions for interactions
© davila7 · MIT · davila7/claude-code-templates