npm / storybook
storybook
What changed in storybook 8 to 10, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.
20 breaking11 security3 deprecations49 new APIs and options1 performance30 behavior and defaults49 tooling130 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initstorybook 10267 changes
Breaking changes 16
Angular-Vite now requires @analogjs/vite-plugin-angular 2.7.3 or later.
Replaces the skills get and skills list subcommands with the --all option.
Defaults tools to attach mode and removes the MCP proxy.
Removes @cloudflare/vite-plugin from the inherited Vite config for Tanstack React.
Angular-Vite no longer requires @angular/platform-browser-dynamic as a peer dependency.
React Native on-device addons are moved to the deviceAddons configuration.
The manifest option is renamed from experimentalComponentsManifest to componentsManifest and now defaults to true.
Next.js image configuration moves from FrameworkOptions to parameters.
Websocket connections now require a token.
TypeScript types for globalTypes are stricter.
The manifests preset property provides an extensible replacement for componentManifestGenerator.
Removes REACT_PROJECT as a CLI projectType.
Globbing using the dynamic current working directory was reverted, changing how Storybook resolves glob patterns.
Storybook is ESM-only and no longer ships CJS bundles, simplifying distribution and reducing install size by 29%.
Next.js projects at version 16 or later no longer use next/config.
useRouter returns a mocked router instead of the actual router.
Security 6
Patches GHSA-f2ph-cmg5-wxc8 and GHSA-px85-f4q5-jh77.
Upgraded ws to address security advisories.
Adds host and origin validation to requests and websocket connections.
Inputs from controls are sanitized when saved.
Storybook Dev Server is Vulnerable to WebSocket Hijacking
Storybook manager bundle may expose environment variables during build
Deprecations 3
Deprecates vue-docgen-api.
ExternalDocs is deprecated.
PNP support is marked as deprecated.
New APIs and options 46
Adds support for Preact 11.
Accepts a story ID as an alternative to componentId plus storyName.
Adds a batch API for setting manager filters.
Adds port-based target selection when attaching to a Storybook instance.
Adds a CLI command for agent skills, with its interface aligned to storybook tools.
The ESLint plugin now includes plugin metadata.
Adds ariaLabel support to the ActionItem interface.
Adds support for configuring configLoader through builder options.
Adds an experimental feature flag for Review; it is left unset by default so AI CLI plugins can enable it.
Adds an Addon Vitest option to pin a project's globals, enabling tests across themes, viewports, and locales.
Adds support for an explicit id prop on Meta for standalone MDX.
Adds an AI command with MCP passthrough, gated by STORYBOOK_FEATURE_AI_CLI.
Introduces a preview Angular-Vite framework for development, documentation, and testing.
Gates the new
storybook aiMCP passthrough.Exports TanStackPreview to unblock CSF Next typing.
The next/link export mock now includes useLinkStatus.
A feature flag enables change detection.
Storybook detects Git changes to support reviewing new, modified, and related stories.
ColorControl accepts maxPresetColors to limit preset colors.
Builder-Vite adds an onModuleGraphChange method.
The docs UI adds a Reset story button to re-render stories.
The sidebar can filter stories by status, with filter state persisted in the URL.
Status values new, modified, and affected are available for filtering.
A TanStack React framework package is available, with routing and server function support.
Addon-Vitest adds a channel API for programmatically triggering test runs.
Preact adds support for inferring props from component types.
The Actions addon adds the expandLevel parameter to configure tree depth.
Adds a ScrollArea prop to make the area focusable when it has static children.
Canvas block parameters now support sourceState: 'none'.
Preview release for React enables agentic component development, documentation, and testing.
The ThemesGlobals interface declaration is now exported.
Adds Vike metadata frameworks.
Adds a --glob flag to CSFFactories.
Adds a non-interactive mode to CSFFactories.
A manager API provides story hrefs.
Preview files can use the
!manifesttag.Storybook MCP gains experimental MDX support.
A disable parameter lets projects turn off the interactions panel.
CSF factories are available for Vue, Angular, and Web Components, with Web Components support marked preview.
An experimental React component manifest is available for Storybook MCP.
Exports getPreferredColorScheme to read the user's preferred color scheme.
A components page is added for the experimental React component manifest.
A guided, checklist-based onboarding experience is available for new users.
Typesafe CSF factories are available as a React preview.
Module automocking is included to make testing easier.
Tag filtering supports exclusion and configuration for sidebar management.
Performance 1
Webpack module-mocking plugins perform better.
Behavior and default changes 30
Makes the experimental docgen server the default in angular-vite.
Migration now supports Analog projects by moving them to angular-vite instead of refusing them.
The ESLint plugin bundles CSF helpers, allowing it to load without Storybook installed.
Story routing supports pathless layout routes that have an ID only.
The CLI exits the process after a successful build.
CSF story and meta annotations now allow partial globals overrides.
React support now resolves subcomponents attached as properties of a parent component.
Angular renderer IDs use the Story ID, including for standalone stories.
The component manifest is disabled by default. Users upgrading Storybook with the MCP addon should also upgrade @storybook/addon-mcp to keep the docs toolset in the MCP server.
The CLI prompts for crash reports during initialization.
Story argTypes can override control: false set in meta.
Vue3-Vite allows paths in the docgen tsconfig option.
Addon Pseudo-States adds support for Tailwind v4.
Updates the default allowed hosts in host validation middleware.
The cache is invalidated when the Storybook version is upgraded.
Addon Vitest supports a simple vite.config without the defineConfig helper.
Storybook honors BROWSER shell scripts before falling back to xdg-open.
Public API types now support TypeScript's exactOptionalPropertyTypes setting.
Top-level weight and style are supported when next/font/local uses a string src.
The Select control can now be reset.
The Viewports and Zoom UI is improved, with zoom level 8 added and manual input limited to 800%.
Vision simulator state is tracked through globals and its styles are applied in the preview.
The getPrettier function now provides a Prettier interface, giving callers a richer interface to Prettier.
Some restrictions on completing checklist items are dropped.
Experimental React code examples improve the JSX snippets Storybook produces.
Checklist items are collapsed by default, and items for disabled features are hidden.
The normal theme is set according to the user's preference.
Adds range validation in Number Control.
The addon panel can be shown or hidden.
The subtype property on an index input is optional.
Tooling 46
Explicitly types enhanceArgTypes.
Supports Vitest browser tests.
Adds a public CLI command that derives its tools at runtime from the OSA toolsets.
The Angular-Vite peer dependency range now supports TypeScript 6.
Introduces experimental AI-curated visual changesets and search results.
Angular model() signal outputs are detected for type inference, Compodoc autodocs, and runtime binding.
The CLI runs this command after initialization for Expo projects.
Framework detection now supports peerDependencies for component libraries.
A new CLI workflow provides AI-assisted Storybook setup and onboarding.
The Vitest addon uses Vitest's provide API to inject values.
Component metadata extraction uses a LanguageService approach, improving component docgen.
React Native projects can use a new initialization setup with zero-config project initialization.
A sharing tool lets developers publish and share a local Storybook with teammates, powered by Chromatic.
Packages that publish React-based declarations now have optional React type peers.
ESLint references now use storybook/test instead of the deprecated @storybook/test reference.
Addon-Vitest streamlines Vite config detection during init and postinstall.
Shortens CTA link messages in the CLI.
The repro command uses npm info to fetch versions.
Vitest setup no longer requires a dedicated setup file, simplifying configuration.
Storybook adds support for ESLint 10.
Addon-Vitest adds support for Vitest canaries.
Storybook adds support for Vite 8.
Storybook supports vite-plugin-svelte 7, which supports Vite 8.
Storybook adds support for Next.js 16.2.
The CLI sets the STORYBOOK environment variable.
Addon-Vitest supports vite/vitest configuration with deferred exports.
Addon-Vitest setup is supported when this CLI option is passed.
A plugin enforces Storybook's output directory in Vite build configuration.
The Addon-Vitest plugin configuration disables requireAssertions for expect.
Adds init telemetry for CLI integrations.
The CLI detects a free port when starting the development server during initiation.
Nextjs-Vite migration installs vite if it is not already installed.
Docs now support Rolldown bundler module namespace objects.
Solid is now supported by addon-vitest, so developers can use the addon with Solid projects.
Storybook adds support for Angular 21.
The CLI has a new init workflow with Clack UI and a Generator System for faster, more reliable installation.
The CLI supports installing Storybook with RSbuild.
Updates vite-plugin-rnw for overall improvements.
The Next.js SWC loader supports new wasm detection.
The Vitest addon adds support for Preact.
The Next.js Vite internal plugin now supports svgr use cases.
Updates optimizeViteDeps for addon-docs and addon-vitest.
The CLI adds an automigration for addon-console.
SvelteKit supports mocking $app/state.
An open-in-editor feature is available.
Storybook test syntax is added.
Fixes and other changes 119
Fixes hidden output of CLI commands when using Yarn 1.
Fixes a build crash when the ref reachability check fails mid-request.
Restores the change-detection CTA in the sidebar.
Supports both interpolatePath signatures in the TanStack integration.
Fixes vision simulator color filters in Firefox.
Fixes vitest ERESOLVE errors in fresh Next.js apps.
Stops silently dropping composed refs from MCP composition.
Metadata extraction preserves discriminated union prop values.
Static open-service snapshots are fetched relative to the document.
Preserves the layout id when cloning a standalone index file route.
Renders real link hrefs in the Link mock.
Prevents preview output filenames from becoming too long.
Fixes pseudo-state rewriting for nested functional selectors.
Makes pseudo-state stylesheet rewrites safe for WebKit.
Fixes a crash when initializing UrlStore on a docs path.
Fixes an Illegal invocation when reading prototype.focus.
Tanstack waits for the router to load before rendering.
Fixes tsconfig selection for React Docgen TypeScript in Vite projects that use project references.
In Angular browser mode, ancestor node_modules are served for addon-vitest.
Docgen is skipped for module IDs carrying a query.
Mock redirects are resolved through Vite's resolver.
Pathful clones now preserve explicit route ids.
Stories now respect component overrides supplied through routeOverrides.
Fixed framework detection for React Native telemetry.
Fixed the dark mode mismatch in the syntax highlighter.
Fixes a crash when toggling coverage with Vite 6 by clearing the closed Vitest instance on restart.
Fixes the validator mock for createServerFn in TanStack.
Tanstack-react adds the missing Hydrate export.
Tanstack-react preserves JSX-only component references during dead-code elimination.
Mixed CSF3+4 stories no longer get core annotations injected twice.
Adds a timeout to telemetry event-log POST requests to prevent builds from hanging.
Primary and Controls blocks now render in custom MDX pages.
The sidebar now respects the !dev tag on MDX docs.
Docs pages no longer reset their scroll position when re-rendered by HMR.
Fixes CSF parsing of string literal export names.
Fixes command resolution on Windows when using non-Node package managers.
Vue 3 clears stale args and globals when nextArgs is empty.
Global background and color styles no longer affect stories incorrectly.
Already transformed config files are skipped during CSF factory processing.
React-Docgen tries a .tsx fallback when resolving .js ESM imports.
Fixes duplicate preview loading in Vitest for CSF4.
The addon-a11y status transition timer is cleared on unmount to prevent test flake.
Builder-Vite uses a djb2 hash to prevent variable name collisions.
Fixes the WebSocket connection for StackBlitz and WebContainers.
Fixes Vite 8 support for React Native Web.
Prevents a story-local viewport from persisting in the URL.
Overrides for docs.components are restored for doc blocks.
Fixes error reporting in the Storybook manager error boundary.
Storybook correctly falls back to the first detected Vitest config file.
Resolves the builder preset path correctly in pnpm strict mode.
Fixes a ConfigFile parser false warning for a definePreview({...}).type<T>() export default.
Updates refs sequentially in experimental_setFilter.
Fixed Storybook failing to load iframe.html when publishing.
React manifest snippet generation now handles the render identifier.
The UI no longer crashes when tag filters contain undefined entries.
Fixes ESLint 10 compatibility in the plugin's rules.
Addon pseudo-states now process nested CSS rules.
Fixes accessibility issues involving React Native Web in the CLI.
Avoids hanging when inferring args for recursive calls on DOM elements.
Story viewport globals are prioritized without polluting user globals.
The Vite builder prevents configuration duplication.
Fixes the Addon-Vitest postinstall a11y installation.
The Next.js Link mock component now handles the legacyBehavior prop.
Fixes empty manifest stories when meta has no explicit title.
Manifests now use the correct story name.
Fixes the Next.js Link component override when using appDirectory configuration.
Addon-Vitest improves config file detection in monorepos, helping Storybook find the appropriate configuration.
Builder-Vite uses a relative path for the mocker entry in production builds.
The codemod now handles cross-file story imports.
dynamicTitle: false now works for user-defined tools.
The --loglevel setting is now honored for npmlog output.
Rendering of View Transitions is fixed in Firefox.
Postinstall setup is skipped when configured.
Manager logic uses the base path instead of the full pathname.
Fixes the codemod failing when filenames are quoted.
Fixes glob pattern handling in codemods on Windows.
The CSFFactories codemod preserves leading comments when adding imports.
Fixes Link navigation in Next.js by aliasing AppRouterContext to the shared runtime.
Fixes the CSF-Factories codemod for preview files that have no exports.
Prevents Zod v4 .meta() from being falsely detected as a CSF Factory.
Removes the deprecated active prop warning in ZoomButton.
The addon-vitest automigration normalizes Windows paths.
Fixes previewHref when the current path does not end with a slash.
Composition handles 401 responses using the loginUrl from Chromatic.
Addon Vitest appends the Storybook project to an existing test.projects array without double nesting.
Fixes @vitest/mocker resolution with Builder-Webpack5.
Optional union types are displayed as Select controls rather than objects.
Mount detection works when
mountis destructured in the play function body.Support for react-docgen-typescript in story creation is fixed.
Fixes several CSF factory bugs in React.
Fixes React error 300 on some addons.
Handled v14 compatibility for the draftMode import in Next.js.
Fixed .env-file parsing.
Fixes a missing await in automigration.
Excludes open from pre-bundling so local xdg-open is reachable.
The body is made inert when the manager is focus-trapped.
Fixes a keyboard navigation bug for the reset option.
Non-existing shortcuts are no longer displayed on the settings page.
Addon-Vitest isolates error reasons during postinstall, so installation errors are isolated.
Fixes React Native template copying during init.
The image alias now uses fileURLToPath for better resolution.
Angular dev and build commands now honor --logfile.
Angular dev and build commands now honor --loglevel.
Checklist state changes are reported differently, making their state updates work correctly.
The UI was overhauled to fix hundreds of accessibility issues, including keyboard access for the search clear button and ARIA fixes.
Fixes custom-elements.json not being loaded for WebComponents.
Fixes React Native Reusables and NativeWind support in React Native Web.
ESLint applies csf-strict rules only to stories files.
Fixes the CSF export interface declaration for NextPreview.
Fixes the export interface declaration for ReactMeta.
Fixes
modulebeing undefined in ESM when using CRA.Fixes an issue with running Storybook after it has been initialized.
Updates the rule to account for @storybook/experimental-nextjs-vite.
Improves handling of TypeScript satisfies/as syntaxes.
Fixes an incorrect import to support Yarn PnP.
Fixes glob string formatting in the csf-factories codemod.
Improves file path resolution on Windows.
Incorrect imports in presets were fixed.
Support for Svelte async components is improved.
storybook 922 changes
Breaking changes 4
Menu items can no longer emit arbitrary channel events.
Component search queries outside the project are rejected.
The dev server blocks iframe embedding from non-localhost origins.
Preview postMessage is restricted to known manager origins.
Security 3
Addon Vitest disables browser file writes and command execution.
MCP adds host validation warnings and origin validation.
Websocket connections are hardened.
New APIs and options 3
Request validation was added.
Adds the experimental_devServer preset.
Adds preview-first-load telemetry.
Tooling 3
Manager and preview roles are separated on the dev server channel.
Adds support for NextJS 16.
The Vitest addon supports Vitest 4.
Fixes and other changes 9
The component export name is validated when creating a story.
Save story names and arg keys are validated as identifiers.
Saving a story is contained to the project root.
Fixes Storybook CLI project creation for Next.js projects in empty directories.
Fixes the play-fn tag for methods.
Automatically fixes bad PostCSS configuration for NextJS-Vite.
Fixes detection of the Vite builder for React Native Web.
Fixes sb.mock usage when Storybook is deployed in subpaths.
Improves the viewport/backgrounds automigration.
storybook 84 changes
Security 2
Addon Vitest disables browser file writes.
Addon Vitest disables command execution.
Fixes and other changes 2
Arg keys are validated as identifiers when saving a story.
The save story name is validated as an identifier.