Skip to main content
command

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.

Install into Claude Code · claude-code-templates All methods and platforms ↓
npx claude-code-templates@latest --command svelte/svelte-storybook-story
Open on GitHub

What 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 play function
  • configure argTypes controls 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-story

2Manually: put the files in place

.claude/commands/svelte-storybook-story.md

Call it with /svelte-storybook-story. For all projects use ~/.claude/commands/

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

Similar slash commands

All slash commands for Frontend and UI →

From the same set804

The whole set →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor