+
Build in Isolation – Focus on one component at a time.
Live Playground – Tweak props and see instant results.
Auto Docs – Stories double as documentation.
Rich Addons – Accessibility, viewport, controls, and more.
Rich Integrations – Playwright, Cypress, Chromatic.
Visual Testing – Spot UI changes before they ship.
Design Sync – Direct integration with Figma or Sketch.
Collaboration – for UX, QA, BA, PO, and DEVs all in one place.
Scalable – Grows with your project and team.
Easy Sharing – Publish and share as a static site.
Predictable and stable - mocks all outer dependencies
Autoimports - Nuxt auto-imports a lot of stuff:
Components
Composables
Stores
Utils
Directives
Layers – stories can be spread across multiple layers, and they can override each other.
Aliases - components can be overridden in different layers
Plugins – functionality critical to the component can be placed inside the plugin that Storybook should recognize
Modules - Storybook should be able to execute Nuxt modules during initialization
Step 1 – Create a Nuxt project
Step 2 – Install Nuxt-Storybook module
Step 3 – Add base Storybook configuration to nuxt.config.ts
pnpm create nuxt@latest nuxt-storybook-starternpx nuxi@latest module add storybook storybook: {
port: 6006
}import type { StorybookConfig } from '@nuxtjs/storybook'
const config: StorybookConfig = {
staticDirs: ['./public'],
"stories": [
"../**/components/**/*.stories.ts"
],
"addons": [
"@storybook/addon-docs",
"@storybook/addon-a11y"
],
"framework": {
"name": "@storybook-vue/nuxt",
"options": {}
}
}
export default configLet's add main.ts
import type { StorybookConfig } from '@nuxtjs/storybook'
const config: StorybookConfig = {
staticDirs: ['./public'],
"stories": [
"../**/components/**/*.stories.ts"
],
"addons": [
"@storybook/addon-docs",
"@storybook/addon-a11y"
],
"framework": {
"name": "@storybook-vue/nuxt",
"options": {}
}
}
export default configLet's add main.ts
import type { StorybookConfig } from '@nuxtjs/storybook'
const config: StorybookConfig = {
staticDirs: ['./public'],
"stories": [
"../**/components/**/*.stories.ts"
],
"addons": [
"@storybook/addon-docs",
"@storybook/addon-a11y"
],
"framework": {
"name": "@storybook-vue/nuxt",
"options": {}
}
}
export default configLet's add manager.ts and manager-head.html