diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index ba472744a8f1..954092e8d2e2 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -4,11 +4,10 @@ Closes #
-
## What I did
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e424acc666c1..28d18cedd4ca 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,108 @@
+## 7.6.0
+
+Storybook 7.6 is here with increased performance and much more!
+
+- 🔥 Improved SWC support
+- 🧪 New test utilities and fast build mode
+- 🔼 NextJS SWC + avif support & fixes
+- 🤡 SvelteKit page and navigation mocking
+- ⚛️ React-docgen upgrade
+- 🎨 Controls a11y, background theming, and viewports
+- 🩺 CLI: The doctor is in!
+- 🚫 Addons: Remove React as a peer dependency
+- 🪦 Storyshots and Vue2 deprecated
+
+
+
+ List of all updates
+
+
+ - Actions: Attach spies on actions across stories when defined in meta - [#24451](https://github.com/storybookjs/storybook/pull/24451), thanks [@kasperpeulen](https://github.com/kasperpeulen)!
+ - Actions: Fix `@storybook/core-events/preview-errors` dependency missing for Yarn PnP - [#24973](https://github.com/storybookjs/storybook/pull/24973), thanks [@JReinhold](https://github.com/JReinhold)!
+ - Actions: Fix missing crypto module crashing React Native - [#24546](https://github.com/storybookjs/storybook/pull/24546), thanks [@dannyhw](https://github.com/dannyhw)!
+ - Actions: Warn on implicit actions - [#24856](https://github.com/storybookjs/storybook/pull/24856), thanks [@kasperpeulen](https://github.com/kasperpeulen)!
+ - Addon A11y: Avoid CSP issue - [#24477](https://github.com/storybookjs/storybook/pull/24477), thanks [@Marklb](https://github.com/Marklb)!
+ - Addon: Move Visual Test addon to the code directory - [#24771](https://github.com/storybookjs/storybook/pull/24771), thanks [@cdedreuille](https://github.com/cdedreuille)!
+ - Addons, core: Make `react` and Storybook packages `devDependencies` where possible - [#24676](https://github.com/storybookjs/storybook/pull/24676), thanks [@JReinhold](https://github.com/JReinhold)!
+ - Addons, core: Make `react` and Storybook packages `devDependencies` where possible - ATTEMPT 2 - [#24834](https://github.com/storybookjs/storybook/pull/24834), thanks [@JReinhold](https://github.com/JReinhold)!
+ - Angular: Add source-map option to builder - [#24466](https://github.com/storybookjs/storybook/pull/24466), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Angular: Handle nested module metadata - [#24798](https://github.com/storybookjs/storybook/pull/24798), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Angular: Include object configured styles - [#24768](https://github.com/storybookjs/storybook/pull/24768), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Babel: Update all @babel/* dependencies - [#24610](https://github.com/storybookjs/storybook/pull/24610), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - CLI: Add "doctor" command - [#22236](https://github.com/storybookjs/storybook/pull/22236), thanks [@yannbf](https://github.com/yannbf)!
+ - CLI: Add @storybook/addon-designs to non-core list - [#24507](https://github.com/storybookjs/storybook/pull/24507), thanks [@yannbf](https://github.com/yannbf)!
+ - CLI: Ensure errors with opening the browser are caught - [#24668](https://github.com/storybookjs/storybook/pull/24668), thanks [@xueyawei](https://github.com/xueyawei)!
+ - CLI: Ignore `addon-onboarding` when checking versions - [#24634](https://github.com/storybookjs/storybook/pull/24634), thanks [@JReinhold](https://github.com/JReinhold)!
+ - CLI: Use @storybook/test in template stories - [#24393](https://github.com/storybookjs/storybook/pull/24393), thanks [@yannbf](https://github.com/yannbf)!
+ - Controls: Improve accessibility of BooleanControl for screen readers - [#24418](https://github.com/storybookjs/storybook/pull/24418), thanks [@danielmarcano](https://github.com/danielmarcano)!
+ - Core-Server: Ignore all node_module folders for watchpack - [#24553](https://github.com/storybookjs/storybook/pull/24553), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Core: Add deprecation notice for Vite + CommonJS - [#23950](https://github.com/storybookjs/storybook/pull/23950), thanks [@JReinhold](https://github.com/JReinhold)!
+ - Core: Detect no matching export error in storybook start and build - [#24877](https://github.com/storybookjs/storybook/pull/24877), thanks [@yannbf](https://github.com/yannbf)!
+ - Core: Fix `useStoryPrepared` hook failing with `undefined` data - [#22631](https://github.com/storybookjs/storybook/pull/22631), thanks [@SpookyJelly](https://github.com/SpookyJelly)!
+ - Core: Fix pnp support when cache dir is outside working dir - [#24572](https://github.com/storybookjs/storybook/pull/24572), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Core: Fix post message channel location.search access for React Native - [#24545](https://github.com/storybookjs/storybook/pull/24545), thanks [@dannyhw](https://github.com/dannyhw)!
+ - Core: Gracefully handle error when parsing preview.js file - [#24858](https://github.com/storybookjs/storybook/pull/24858), thanks [@yannbf](https://github.com/yannbf)!
+ - Core: Make warnOnIncompatibleAddons fault-tolerant - [#24880](https://github.com/storybookjs/storybook/pull/24880), thanks [@taozhou-glean](https://github.com/taozhou-glean)!
+ - Dependencies: Fix Yarn 4 failing to install due to jscodeshift dependency issue - [#24914](https://github.com/storybookjs/storybook/pull/24914), thanks [@samvv](https://github.com/samvv)!
+ - Dependencies: Update @babel/traverse and @babel/core to fix vulnerability - [#24670](https://github.com/storybookjs/storybook/pull/24670), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Dependencies: Update browserify-sign transitive dependency - [#24674](https://github.com/storybookjs/storybook/pull/24674), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Dependencies: Update jscodeshift to v0.15.1 - [#24882](https://github.com/storybookjs/storybook/pull/24882), thanks [@epreston](https://github.com/epreston)!
+ - Dependencies: Update nx dependencies to v17 - [#24671](https://github.com/storybookjs/storybook/pull/24671), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Doc Blocks: Add support for `of` prop to `Primary` block - [#23849](https://github.com/storybookjs/storybook/pull/23849), thanks [@Wilson2k](https://github.com/Wilson2k)!
+ - Doc Blocks: Remove `defaultProps` in `Stories` block - [#24506](https://github.com/storybookjs/storybook/pull/24506), thanks [@WouterK12](https://github.com/WouterK12)!
+ - Docs: Changes corresponding to docs design updates - [#24925](https://github.com/storybookjs/storybook/pull/24925), thanks [@kylegach](https://github.com/kylegach)!
+ - Maintenance: Split renderers preview entrypoints - [#24623](https://github.com/storybookjs/storybook/pull/24623), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Manager: Update `store.settings.lastTrackedStoryId` - [#24115](https://github.com/storybookjs/storybook/pull/24115), thanks [@rashidshamloo](https://github.com/rashidshamloo)!
+ - ManagerAPI: Fix setting status without index, crashes storybook - [#24866](https://github.com/storybookjs/storybook/pull/24866), thanks [@ndelangen](https://github.com/ndelangen)!
+ - ManagerBuilder: Fix `"type": "commonjs"` compatibility - [#24534](https://github.com/storybookjs/storybook/pull/24534), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Next.js: Add avif support - [#24611](https://github.com/storybookjs/storybook/pull/24611), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Next.js: Add back image context CommonJS export - [#24885](https://github.com/storybookjs/storybook/pull/24885), thanks [@martinnabhan](https://github.com/martinnabhan)!
+ - Next.js: Add experimental SWC support - [#24852](https://github.com/storybookjs/storybook/pull/24852), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Next.js: Fix Fast Refresh config for SWC mode - [#24991](https://github.com/storybookjs/storybook/pull/24991), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Next.js: Fix forwarding ref for Image component - [#24648](https://github.com/storybookjs/storybook/pull/24648), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Next.js: Fix import path in swc loader - [#24922](https://github.com/storybookjs/storybook/pull/24922), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Next.js: Fix react-docgen usage with preset-env settings - [#24993](https://github.com/storybookjs/storybook/pull/24993), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Next.js: Remove duplicate Fast Refresh plugin init - [#24963](https://github.com/storybookjs/storybook/pull/24963), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - React: Upgrade `react-docgen` to v7 - [#24530](https://github.com/storybookjs/storybook/pull/24530), thanks [@shilman](https://github.com/shilman)!
+ - ReactNative: Fix missing assert dep in docs-tools - [#24732](https://github.com/storybookjs/storybook/pull/24732), thanks [@dannyhw](https://github.com/dannyhw)!
+ - Svelte: Fix decorators always running twice - [#24921](https://github.com/storybookjs/storybook/pull/24921), thanks [@paoloricciuti](https://github.com/paoloricciuti)!
+ - Svelte: Fix source with decorators always showing the `SlotDecorator` component - [#24800](https://github.com/storybookjs/storybook/pull/24800), thanks [@JReinhold](https://github.com/JReinhold)!
+ - SvelteKit: Add experimental page and navigation mocking - [#24795](https://github.com/storybookjs/storybook/pull/24795), thanks [@paoloricciuti](https://github.com/paoloricciuti)!
+ - SvelteKit: Default to log an action for `goto`, `invalidate` and `invalidateAll` - [#24955](https://github.com/storybookjs/storybook/pull/24955), thanks [@paoloricciuti](https://github.com/paoloricciuti)!
+ - SWC: Add settings for react and preact - [#24805](https://github.com/storybookjs/storybook/pull/24805), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Test Build: Add env-variable support to `--test` CLI-flag - [#24862](https://github.com/storybookjs/storybook/pull/24862), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Test Build: Add tests and rename to camelCase - [#24911](https://github.com/storybookjs/storybook/pull/24911), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Test Build: Disable composition when `--test` is `true` - [#24799](https://github.com/storybookjs/storybook/pull/24799), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Test Build: Disable docs related stuff for test builds - [#24691](https://github.com/storybookjs/storybook/pull/24691), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Test Build: Disable telemetry for test builds - [#24706](https://github.com/storybookjs/storybook/pull/24706), thanks [@kasperpeulen](https://github.com/kasperpeulen)!
+ - Test Build: Disable warnOnIncompatibleAddons - [#24797](https://github.com/storybookjs/storybook/pull/24797), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Test Build: Filter out addon-docs from essentials in the test build - [#24994](https://github.com/storybookjs/storybook/pull/24994), thanks [@kasperpeulen](https://github.com/kasperpeulen)!
+ - Test Build: Fix disabledAddons filter - [#24924](https://github.com/storybookjs/storybook/pull/24924), thanks [@IanVS](https://github.com/IanVS)!
+ - Test Build: Fix indexer bug - [#24890](https://github.com/storybookjs/storybook/pull/24890), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Test Build: Globalize `@storybook/blocks` if `build.test.emptyBlocks` is `true` - [#24650](https://github.com/storybookjs/storybook/pull/24650), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Test Build: Implement builder options for test build - [#24826](https://github.com/storybookjs/storybook/pull/24826), thanks [@kasperpeulen](https://github.com/kasperpeulen)!
+ - Test Build: Improve config loading & naming - [#24837](https://github.com/storybookjs/storybook/pull/24837), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Test Build: No sourcemaps for test builds - [#24804](https://github.com/storybookjs/storybook/pull/24804), thanks [@ndelangen](https://github.com/ndelangen)!
+ - Test Build: Revert defaulting to SWC in test build, but keep using esbuild for minification - [#24843](https://github.com/storybookjs/storybook/pull/24843), thanks [@kasperpeulen](https://github.com/kasperpeulen)!
+ - Test: Create @storybook/test package based on vitest - [#24392](https://github.com/storybookjs/storybook/pull/24392), thanks [@kasperpeulen](https://github.com/kasperpeulen)!
+ - Test: Don\'t attach action to function mock if action was added already - [#24966](https://github.com/storybookjs/storybook/pull/24966), thanks [@tmeasday](https://github.com/tmeasday)!
+ - Test: Model loaders as before each and restore mocks properly - [#24948](https://github.com/storybookjs/storybook/pull/24948), thanks [@kasperpeulen](https://github.com/kasperpeulen)!
+ - Theming: Add theme variable to set the preview background color - [#24575](https://github.com/storybookjs/storybook/pull/24575), thanks [@JReinhold](https://github.com/JReinhold)!
+ - Typescript: Add \'skipCompiler\' option to TypeScript presets - [#24847](https://github.com/storybookjs/storybook/pull/24847), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - UI: Fix horizontal scroll bar in Canvas hidden by styling - [#24408](https://github.com/storybookjs/storybook/pull/24408), thanks [@yoshi2no](https://github.com/yoshi2no)!
+ - UI: improve A11Y remove redundant styling rules, update icon color - [#24402](https://github.com/storybookjs/storybook/pull/24402), thanks [@tolkadot](https://github.com/tolkadot)!
+ - UI: Logo fixed value - [#24726](https://github.com/storybookjs/storybook/pull/24726), thanks [@black-arm](https://github.com/black-arm)!
+ - UI: Update zIndex on NotificationList to fix the notification not being clickable in certain cases - [#24602](https://github.com/storybookjs/storybook/pull/24602), thanks [@yoshi2no](https://github.com/yoshi2no)!
+ - Viewport: Add newer device viewports - [#24777](https://github.com/storybookjs/storybook/pull/24777), thanks [@Tomo5524](https://github.com/Tomo5524)!
+ - Vite: Prevent non-deterministic build output - [#24833](https://github.com/storybookjs/storybook/pull/24833), thanks [@henkerik](https://github.com/henkerik)!
+ - Webpack: Add export-order-loader and remove babel-plugin-named-exports-order - [#24749](https://github.com/storybookjs/storybook/pull/24749), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Webpack: Add react-docgen loader and remove babel-plugin-react-docgen - [#24762](https://github.com/storybookjs/storybook/pull/24762), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Webpack: Fix race condition for export-order loader - [#24817](https://github.com/storybookjs/storybook/pull/24817), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Webpack: Hide critical dependency warning - [#24784](https://github.com/storybookjs/storybook/pull/24784), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Webpack: Only load babel config when babel-loader is used - [#25002](https://github.com/storybookjs/storybook/pull/25002), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+ - Webpack: Resolve circular dependency and fix HMR - [#24974](https://github.com/storybookjs/storybook/pull/24974), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+
+
## 7.5.2
- Addon-themes: Fix globals not being set when using absolute path - [#24596](https://github.com/storybookjs/storybook/pull/24596), thanks [@JReinhold](https://github.com/JReinhold)!
diff --git a/CHANGELOG.prerelease.md b/CHANGELOG.prerelease.md
index d389bce1cfb6..5ef41fa93384 100644
--- a/CHANGELOG.prerelease.md
+++ b/CHANGELOG.prerelease.md
@@ -1,3 +1,33 @@
+## 8.0.0-alpha.0
+
+- Addon Viewport: Expose types for user parameter validation - [#24896](https://github.com/storybookjs/storybook/pull/24896), thanks [@piratetaco](https://github.com/piratetaco)!
+- Packages: Remove unused/deprecated packages - [#24528](https://github.com/storybookjs/storybook/pull/24528), thanks [@ndelangen](https://github.com/ndelangen)!
+- Vite: use user's `build.target` - [#23123](https://github.com/storybookjs/storybook/pull/23123), thanks [@Hoishin](https://github.com/Hoishin)!
+- CLI: Remove `sb extract` command - [#24653](https://github.com/storybookjs/storybook/pull/24653), thanks [@ndelangen](https://github.com/ndelangen)!
+- Core: Improve project root detection logic - [#20791](https://github.com/storybookjs/storybook/pull/20791), thanks [@dobesv](https://github.com/dobesv)!
+- Core: Prebundling globalize the core-event sub paths - [#24976](https://github.com/storybookjs/storybook/pull/24976), thanks [@ndelangen](https://github.com/ndelangen)!
+- Core: Remove `storiesOf`-API - [#24655](https://github.com/storybookjs/storybook/pull/24655), thanks [@ndelangen](https://github.com/ndelangen)!
+- Core: `StorybookConfig` `stories`-field support type async function - [#21555](https://github.com/storybookjs/storybook/pull/21555), thanks [@imccausl](https://github.com/imccausl)!
+- Dependencies: Update Typescript - [#24970](https://github.com/storybookjs/storybook/pull/24970), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!
+- Dependencies: Upgrade monorepo to TS5 - [#24440](https://github.com/storybookjs/storybook/pull/24440), thanks [@ndelangen](https://github.com/ndelangen)!
+- TypeScript: Migrate `@storybook/preset-create-react-app` to strict TS - [#22395](https://github.com/storybookjs/storybook/pull/22395), thanks [@kuriacka](https://github.com/kuriacka)!
+- Manager: Enable refs filtered via `experimental_setFilter` - [#24211](https://github.com/storybookjs/storybook/pull/24211), thanks [@ndelangen](https://github.com/ndelangen)!
+- MDX: Theme `fontCode` not applied consistently when writing MDX - [#23110](https://github.com/storybookjs/storybook/pull/23110), thanks [@gitstart-storybook](https://github.com/gitstart-storybook)!
+- UI: Bring back role main - [#24411](https://github.com/storybookjs/storybook/pull/24411), thanks [@cdedreuille](https://github.com/cdedreuille)!
+- UI: Fix `IconButton` not being aligned correctly in blocks - [#24529](https://github.com/storybookjs/storybook/pull/24529), thanks [@cdedreuille](https://github.com/cdedreuille)!
+- UI: Fix button size on controls - [#24737](https://github.com/storybookjs/storybook/pull/24737), thanks [@cdedreuille](https://github.com/cdedreuille)!
+- UI: Fix layout height - [#24370](https://github.com/storybookjs/storybook/pull/24370), thanks [@cdedreuille](https://github.com/cdedreuille)!
+- UI: Fix notifications not appearing in new layout - [#24281](https://github.com/storybookjs/storybook/pull/24281), thanks [@jreinhold](https://github.com/jreinhold)!
+- UI: Fix theming not updating - [#24399](https://github.com/storybookjs/storybook/pull/24399), thanks [@cdedreuille](https://github.com/cdedreuille)!
+- UI: Improved `Button` and `IconButton` - [#24266](https://github.com/storybookjs/storybook/pull/24266), thanks [@cdedreuille](https://github.com/cdedreuille)!
+- UI: Keep mobile drawer open on component selection - [#24258](https://github.com/storybookjs/storybook/pull/24258), thanks [@cdedreuille](https://github.com/cdedreuille)!
+- UI: Mobile truncate story name - [#24372](https://github.com/storybookjs/storybook/pull/24372), thanks [@cdedreuille](https://github.com/cdedreuille)!
+- UI: New icon library - [#24433](https://github.com/storybookjs/storybook/pull/24433), thanks [@cdedreuille](https://github.com/cdedreuille)!
+- UI: Replace `Form.Button` with the new `Button` component - [#24360](https://github.com/storybookjs/storybook/pull/24360), thanks [@cdedreuille](https://github.com/cdedreuille)!
+- UI: Screen reader announcing changes for expand/collapse button - [#24984](https://github.com/storybookjs/storybook/pull/24984), thanks [@wjdtjdgns](https://github.com/wjdtjdgns)!
+- UI: Upgrade manager to React v18 - [#24514](https://github.com/storybookjs/storybook/pull/24514), thanks [@ndelangen](https://github.com/ndelangen)!
+- UI: sidebar UI updates - [#24707](https://github.com/storybookjs/storybook/pull/24707), thanks [@cdedreuille](https://github.com/cdedreuille)!
+
## 7.6.0-beta.2
- Actions: Fix `@storybook/core-events/preview-errors` dependency missing for Yarn PnP - [#24973](https://github.com/storybookjs/storybook/pull/24973), thanks [@JReinhold](https://github.com/JReinhold)!
diff --git a/CHANGELOG.v6.md b/CHANGELOG.v6.md
index 391f14fed6ed..8501b232d289 100644
--- a/CHANGELOG.v6.md
+++ b/CHANGELOG.v6.md
@@ -4942,7 +4942,7 @@ Storybook 6.0 is here!
- 🧬 [Args: Next-generation, dynamic story format](https://medium.com/storybookjs/introducing-storybook-args-2dadcdb777cc)
- 🎛 [Controls: Live edit component examples](https://medium.com/storybookjs/storybook-controls-ce82af93e430)
- 🌐 [Composition: Combine multiple Storybooks](https://medium.com/storybookjs/storybook-composition-af0da9084fba)
-- 📚 [Documentation: Complete project overhaul](https://storybook.js.org/docs/react/get-started/introduction)
+- 📚 [Documentation: Complete project overhaul](https://storybook.js.org/docs/react/get-started)
6.0 contains hundreds more fixes, features, and tweaks. Browse the changelogs matching `6.0.0-alpha.*`, `6.0.0-beta.*`, and `6.0.0-rc.*` for the full list of changes. See [MIGRATION.md](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md) to upgrade from `5.3` or earlier.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 78993afd8386..d90fef7e5ee5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -55,4 +55,4 @@ yarn task --task dev --template --start-from=publish
# Contributing to Storybook
-For further advice on how to contribute, please refer to our [NEW contributing guide on the Storybook website](https://storybook.js.org/docs/react/contribute/how-to-contribute).
+For further advice on how to contribute, please refer to our [NEW contributing guide on the Storybook website](https://storybook.js.org/docs/contribute).
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
index 191dc42d5b90..e7640a31d10e 100644
--- a/MAINTAINERS.md
+++ b/MAINTAINERS.md
@@ -25,7 +25,7 @@ This document outlines some of the processes that the maintainers should adhere
| compatibility with other tools | Issue, bug, or pull request between Storybook and other tools (e.g., [Nuxt](https://nuxtjs.org/)) |
| components | Issue, bug, or pull request related to Storybook's internal components |
| composition | Issue, bug, or pull request related to Storybook [Composition](/docs/sharing/storybook-composition.md) |
-| configuration | Issue, bug, or pull request related to Storybook [configuration](/docs/configure/overview.md) |
+| configuration | Issue, bug, or pull request related to Storybook [configuration](/docs/configure/index.md) |
| core | Issue, bug, or pull request related to Storybook's Core |
| cra | Issue, bug, or pull request that affects Storybook's compatibility with Create React APP ([CRA](https://create-react-app.dev/docs/getting-started/)) |
| CSF | Issue, bug, or pull request related to Storybook's [Component Story Format (CSF)](/docs/api/csf.md) |
diff --git a/MIGRATION.md b/MIGRATION.md
index 30407b38ab71..fd74c25472d8 100644
--- a/MIGRATION.md
+++ b/MIGRATION.md
@@ -3,8 +3,9 @@
- [From version 7.x to 8.0.0](#from-version-7x-to-800)
- [Implicit actions can not be used during rendering (for example in the play function)](#implicit-actions-can-not-be-used-during-rendering-for-example-in-the-play-function)
- [Core changes](#core-changes)
+ - [Autotitle breaking fixes](#autotitle-breaking-fixes)
- [React v18 in the manager UI (including addons)](#react-v18-in-the-manager-ui-including-addons)
- - [Storyshots has been removed](#storyshots-has-been-removed)
+ - [Storyshots has been removed](#storyshots-has-been-removed)
- [UI layout state has changed shape](#ui-layout-state-has-changed-shape)
- [New UI and props for Button and IconButton components](#new-ui-and-props-for-button-and-iconbutton-components)
- [Icons is deprecated](#icons-is-deprecated)
@@ -49,6 +50,7 @@
- [7.0 feature flags removed](#70-feature-flags-removed)
- [Story context is prepared before for supporting fine grained updates](#story-context-is-prepared-before-for-supporting-fine-grained-updates)
- [Changed decorator order between preview.js and addons/frameworks](#changed-decorator-order-between-previewjs-and-addonsframeworks)
+ - [Dark mode detection](#dark-mode-detection)
- [7.0 core addons changes](#70-core-addons-changes)
- [Removed auto injection of @storybook/addon-actions decorator](#removed-auto-injection-of-storybookaddon-actions-decorator)
- [Addon-backgrounds: Removed deprecated grid parameter](#addon-backgrounds-removed-deprecated-grid-parameter)
@@ -372,6 +374,18 @@ To summarize:
### Core changes
+#### Autotitle breaking fixes
+
+In Storybook 7, the file name `path/to/foo.bar.stories.js` would result in the [autotitle](https://storybook.js.org/docs/react/configure/overview#configure-story-loading) `path/to/foo`. In 8.0, this has been changed to generate `path/to/foo.bar`. We consider this a bugfix but it is also a breaking change if you depended on the old behavior. To get the old titles, you can manually specify the desired title in the default export of your story file. For example:
+
+```js
+export default {
+ title: 'path/to/foo',
+}
+```
+
+Alternatively, if you need to achieve a different behavior for a large number of files, you can provide a [custom indexer](https://storybook.js.org/docs/7.0/vue/configure/sidebar-and-urls#processing-custom-titles) to generate the titles dynamically.
+
#### React v18 in the manager UI (including addons)
Storybook 7 used React 16 in the manager. In Storybook 8 this is upgraded to react v18.
@@ -379,7 +393,7 @@ Addons that inject UI into panels, tools, etc. are possibly affected by this.
Addon authors are advised to upgrade to react v18.
-##### Storyshots has been removed
+#### Storyshots has been removed
Storyshots was an addon for storybook which allowed users to turn their stories into automated snapshot-tests.
@@ -1105,7 +1119,7 @@ import ReadMe from './README.md?raw';
#### Stories field in .storybook/main.js is mandatory
In 6.x, the `stories` key field in `.storybook/main.js` was optional. In 7.0, it is mandatory.
-Please follow up the [Configure your Storybook project](https://storybook.js.org/docs/react/configure/overview#configure-your-storybook-project) section to configure your Storybook project.
+Please follow up the [Configure your Storybook project](https://storybook.js.org/docs/react/configure/#configure-your-storybook-project) section to configure your Storybook project.
#### Stricter global types
@@ -1206,6 +1220,14 @@ export default {
};
```
+#### Dark mode detection
+
+Storybook 7 uses `prefers-color-scheme` to detects your system's dark mode preference if a theme is not set.
+
+Earlier versions used the light theme by default, so if you don't set a theme and your system's settings are in dark mode, this could surprise you.
+
+To learn more about theming, read our [documentation](https://storybook.js.org/docs/react/configure/theming).
+
### 7.0 core addons changes
#### Removed auto injection of @storybook/addon-actions decorator
diff --git a/code/addons/a11y/package.json b/code/addons/a11y/package.json
index 8410e7675f90..8c3d602ae05d 100644
--- a/code/addons/a11y/package.json
+++ b/code/addons/a11y/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-a11y",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Test component compliance with web accessibility standards",
"keywords": [
"a11y",
diff --git a/code/addons/actions/README.md b/code/addons/actions/README.md
index 71bf4a2f53d6..80d2bd5d746c 100644
--- a/code/addons/actions/README.md
+++ b/code/addons/actions/README.md
@@ -8,13 +8,13 @@ Storybook Addon Actions can be used to display data received by event handlers i
## Installation
-Actions is part of [essentials](https://storybook.js.org/docs/react/essentials/introduction) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
+Actions is part of [essentials](https://storybook.js.org/docs/react/essentials) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
```sh
npm i -D @storybook/addon-actions
```
-Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/overview#configure-your-storybook-project):
+Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/#configure-your-storybook-project):
```js
export default {
diff --git a/code/addons/actions/package.json b/code/addons/actions/package.json
index 840c7481df18..8485ef374cd2 100644
--- a/code/addons/actions/package.json
+++ b/code/addons/actions/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-actions",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Get UI feedback when an action is performed on an interactive element",
"keywords": [
"storybook",
diff --git a/code/addons/backgrounds/README.md b/code/addons/backgrounds/README.md
index 62c88e19a7e7..481ba54bcd2f 100644
--- a/code/addons/backgrounds/README.md
+++ b/code/addons/backgrounds/README.md
@@ -8,7 +8,7 @@ Storybook Addon Backgrounds can be used to change background colors inside the p
## Installation
-Backgrounds is part of [essentials](https://storybook.js.org/docs/react/essentials/introduction) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
+Backgrounds is part of [essentials](https://storybook.js.org/docs/react/essentials) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
```sh
npm i -D @storybook/addon-backgrounds
@@ -16,7 +16,7 @@ npm i -D @storybook/addon-backgrounds
## Configuration
-Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/overview#configure-your-storybook-project):
+Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/#configure-your-storybook-project):
```js
export default {
diff --git a/code/addons/backgrounds/package.json b/code/addons/backgrounds/package.json
index 88479d56d2bd..de569b1b5284 100644
--- a/code/addons/backgrounds/package.json
+++ b/code/addons/backgrounds/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-backgrounds",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Switch backgrounds to view components in different settings",
"keywords": [
"addon",
diff --git a/code/addons/controls/README.md b/code/addons/controls/README.md
index cb37957a0766..0622e23a302c 100644
--- a/code/addons/controls/README.md
+++ b/code/addons/controls/README.md
@@ -8,13 +8,13 @@
## Installation
-Controls is part of [essentials](https://storybook.js.org/docs/react/essentials/introduction) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
+Controls is part of [essentials](https://storybook.js.org/docs/react/essentials) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
```sh
npm i -D @storybook/addon-controls
```
-Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/overview#configure-your-storybook-project):
+Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/#configure-your-storybook-project):
```js
export default {
diff --git a/code/addons/controls/package.json b/code/addons/controls/package.json
index 90ea2642a762..8d0a57d586f2 100644
--- a/code/addons/controls/package.json
+++ b/code/addons/controls/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-controls",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Interact with component inputs dynamically in the Storybook UI",
"keywords": [
"addon",
diff --git a/code/addons/docs/package.json b/code/addons/docs/package.json
index 87122e127f54..514cbe8f7c90 100644
--- a/code/addons/docs/package.json
+++ b/code/addons/docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-docs",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Document component usage and properties in Markdown",
"keywords": [
"addon",
diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json
index 3a47f5855578..d45b5d4961c9 100644
--- a/code/addons/essentials/package.json
+++ b/code/addons/essentials/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-essentials",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Curated addons to bring out the best of Storybook",
"keywords": [
"addon",
diff --git a/code/addons/essentials/src/index.ts b/code/addons/essentials/src/index.ts
index 358cf796a579..b2d879c2d794 100644
--- a/code/addons/essentials/src/index.ts
+++ b/code/addons/essentials/src/index.ts
@@ -3,15 +3,55 @@ import { logger } from '@storybook/node-logger';
import { serverRequire } from '@storybook/core-common';
interface PresetOptions {
+ /**
+ * Allow to use @storybook/addon-actions
+ * @see https://storybook.js.org/addons/@storybook/addon-actions
+ * @default true
+ */
actions?: boolean;
+ /**
+ * Allow to use @storybook/addon-backgrounds
+ * @see https://storybook.js.org/addons/@storybook/addon-backgrounds
+ * @default true
+ */
backgrounds?: boolean;
configDir: string;
+ /**
+ * Allow to use @storybook/addon-controls
+ * @see https://storybook.js.org/addons/@storybook/addon-controls
+ * @default true
+ */
controls?: boolean;
+ /**
+ * Allow to use @storybook/addon-docs
+ * @see https://storybook.js.org/addons/@storybook/addon-docs
+ * @default true
+ */
docs?: boolean;
+ /**
+ * Allow to use @storybook/addon-measure
+ * @see https://storybook.js.org/addons/@storybook/addon-measure
+ * @default true
+ */
measure?: boolean;
+ /**
+ * Allow to use @storybook/addon-outline
+ * @see https://storybook.js.org/addons/@storybook/addon-outline
+ * @default true
+ */
outline?: boolean;
themes?: boolean;
+ /**
+ * Allow to use @storybook/addon-toolbars
+ * @see https://storybook.js.org/addons/@storybook/addon-toolbars
+ * @default true
+ */
toolbars?: boolean;
+ /**
+ * Allow to use @storybook/addon-viewport
+ * @see https://storybook.js.org/addons/@storybook/addon-viewport
+ * @default true
+ */
viewport?: boolean;
}
diff --git a/code/addons/gfm/package.json b/code/addons/gfm/package.json
index f3eeb90b0501..0fa499b4aa73 100644
--- a/code/addons/gfm/package.json
+++ b/code/addons/gfm/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-mdx-gfm",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "GitHub Flavored Markdown in Storybook",
"keywords": [
"addon",
diff --git a/code/addons/highlight/README.md b/code/addons/highlight/README.md
index e4b245acc5fd..5f7ffbe0c3a9 100644
--- a/code/addons/highlight/README.md
+++ b/code/addons/highlight/README.md
@@ -8,7 +8,7 @@ Use it to call attention to particular parts of the story. Or use it to enhance
## Usage
-This addon requires Storybook 6.5 or later. Highlight is part of [essentials](https://storybook.js.org/docs/react/essentials/introduction) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run the following command:
+This addon requires Storybook 6.5 or later. Highlight is part of [essentials](https://storybook.js.org/docs/react/essentials) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run the following command:
yarn:
diff --git a/code/addons/highlight/package.json b/code/addons/highlight/package.json
index 120613f19673..a7a9bf35411a 100644
--- a/code/addons/highlight/package.json
+++ b/code/addons/highlight/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-highlight",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Highlight DOM nodes within your stories",
"keywords": [
"storybook-addons",
diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json
index b5e9140bbdc4..bc5cf130bb32 100644
--- a/code/addons/interactions/package.json
+++ b/code/addons/interactions/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-interactions",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Automate, test and debug user interactions",
"keywords": [
"storybook-addons",
diff --git a/code/addons/jest/README.md b/code/addons/jest/README.md
index 50678d636094..ec2cc8a34c6c 100644
--- a/code/addons/jest/README.md
+++ b/code/addons/jest/README.md
@@ -20,7 +20,7 @@ Or if you're using yarn as a package manager:
## Configuration
-Register the addon in your [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/overview#configure-your-storybook-project):
+Register the addon in your [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/#configure-your-storybook-project):
```js
export default {
@@ -133,7 +133,7 @@ Default.parameters = {
### Global level
To avoid importing the results of the tests in each story, you can update
-your [`.storybook/preview.js`](https://storybook.js.org/docs/react/configure/overview#configure-story-rendering) and include a decorator allowing you to display the results only for the stories that have the `jest` parameter defined:
+your [`.storybook/preview.js`](https://storybook.js.org/docs/react/configure/#configure-story-rendering) and include a decorator allowing you to display the results only for the stories that have the `jest` parameter defined:
```js
// .storybook/preview.js
diff --git a/code/addons/jest/package.json b/code/addons/jest/package.json
index 9a32eabe1c98..b76131fe4618 100644
--- a/code/addons/jest/package.json
+++ b/code/addons/jest/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-jest",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "React storybook addon that show component jest report",
"keywords": [
"addon",
diff --git a/code/addons/links/package.json b/code/addons/links/package.json
index 565ef44f6f80..7ba44c50ac77 100644
--- a/code/addons/links/package.json
+++ b/code/addons/links/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-links",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Link stories together to build demos and prototypes with your UI components",
"keywords": [
"addon",
diff --git a/code/addons/measure/README.md b/code/addons/measure/README.md
index ca1387d474c8..8e280f150124 100644
--- a/code/addons/measure/README.md
+++ b/code/addons/measure/README.md
@@ -12,7 +12,7 @@ Storybook addon for inspecting layouts and visualizing the box model.
## Usage
-This addon requires Storybook 6.3 or later. Measure is part of [essentials](https://storybook.js.org/docs/react/essentials/introduction) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
+This addon requires Storybook 6.3 or later. Measure is part of [essentials](https://storybook.js.org/docs/react/essentials) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
```sh
npm i -D @storybook/addon-measure
diff --git a/code/addons/measure/package.json b/code/addons/measure/package.json
index e1e256d5863a..b0dbca6a0553 100644
--- a/code/addons/measure/package.json
+++ b/code/addons/measure/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-measure",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Inspect layouts by visualizing the box model",
"keywords": [
"storybook-addons",
diff --git a/code/addons/outline/README.md b/code/addons/outline/README.md
index 301c140c3cff..e73da501a3f6 100644
--- a/code/addons/outline/README.md
+++ b/code/addons/outline/README.md
@@ -6,13 +6,13 @@ Storybook Addon Outline can be used for visually debugging CSS layout and alignm
## Usage
-Requires Storybook 6.1 or later. Outline is part of [essentials](https://storybook.js.org/docs/react/essentials/introduction) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
+Requires Storybook 6.1 or later. Outline is part of [essentials](https://storybook.js.org/docs/react/essentials) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
```sh
npm i -D @storybook/addon-outline
```
-Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/overview#configure-your-storybook-project):
+Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/#configure-your-storybook-project):
```js
export default {
diff --git a/code/addons/outline/package.json b/code/addons/outline/package.json
index c3027f76585b..3b3ba8ec915a 100644
--- a/code/addons/outline/package.json
+++ b/code/addons/outline/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-outline",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Outline all elements with CSS to help with layout placement and alignment",
"keywords": [
"storybook-addons",
diff --git a/code/addons/storysource/package.json b/code/addons/storysource/package.json
index 1f564a9602de..8f657c2e4d86 100644
--- a/code/addons/storysource/package.json
+++ b/code/addons/storysource/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storysource",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "View a story’s source code to see how it works and paste into your app",
"keywords": [
"addon",
diff --git a/code/addons/themes/README.md b/code/addons/themes/README.md
index 5ed36f2c4050..55bc748fd48f 100644
--- a/code/addons/themes/README.md
+++ b/code/addons/themes/README.md
@@ -12,7 +12,7 @@ Requires Storybook 7.0 or later. If you need to add it to your Storybook, you ca
npm i -D @storybook/addon-themes
```
-Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/overview#configure-your-storybook-project):
+Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/#configure-your-storybook-project):
```js
export default {
diff --git a/code/addons/themes/package.json b/code/addons/themes/package.json
index 2edb9b7c2488..a094429d12b4 100644
--- a/code/addons/themes/package.json
+++ b/code/addons/themes/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-themes",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Switch between multiple themes for you components in Storybook",
"keywords": [
"css",
diff --git a/code/addons/toolbars/README.md b/code/addons/toolbars/README.md
index b6cf730ab141..560966c094ce 100644
--- a/code/addons/toolbars/README.md
+++ b/code/addons/toolbars/README.md
@@ -12,13 +12,13 @@ The Toolbars addon controls global story rendering options from [Storybook's](ht
## Installation
-Toolbars is part of [essentials](https://storybook.js.org/docs/react/essentials/introduction) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
+Toolbars is part of [essentials](https://storybook.js.org/docs/react/essentials) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
```sh
npm i -D @storybook/addon-toolbars
```
-Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/overview#configure-your-storybook-project):
+Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/#configure-your-storybook-project):
```js
export default {
diff --git a/code/addons/toolbars/package.json b/code/addons/toolbars/package.json
index 80ba3891dedb..515a241ed04d 100644
--- a/code/addons/toolbars/package.json
+++ b/code/addons/toolbars/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-toolbars",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Create your own toolbar items that control story rendering",
"keywords": [
"addon",
diff --git a/code/addons/viewport/README.md b/code/addons/viewport/README.md
index 196c5e0b0aa5..3766d555f8b3 100644
--- a/code/addons/viewport/README.md
+++ b/code/addons/viewport/README.md
@@ -8,13 +8,13 @@ Storybook Viewport Addon allows your stories to be displayed in different sizes
## Installation
-Viewport is part of [essentials](https://storybook.js.org/docs/react/essentials/introduction) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
+Viewport is part of [essentials](https://storybook.js.org/docs/react/essentials) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run:
```sh
npm i -D @storybook/addon-viewport
```
-Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/overview#configure-your-storybook-project):
+Then, add following content to [`.storybook/main.js`](https://storybook.js.org/docs/react/configure/#configure-your-storybook-project):
```js
export default {
diff --git a/code/addons/viewport/package.json b/code/addons/viewport/package.json
index b47cf9aa903f..80d650b26432 100644
--- a/code/addons/viewport/package.json
+++ b/code/addons/viewport/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-viewport",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Build responsive components by adjusting Storybook’s viewport size and orientation",
"keywords": [
"addon",
diff --git a/code/builders/builder-manager/package.json b/code/builders/builder-manager/package.json
index db8469fcc11e..894660ab1f76 100644
--- a/code/builders/builder-manager/package.json
+++ b/code/builders/builder-manager/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/builder-manager",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Storybook manager builder",
"keywords": [
"storybook"
diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json
index 261857257f6b..4866c584d6f4 100644
--- a/code/builders/builder-vite/package.json
+++ b/code/builders/builder-vite/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/builder-vite",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "A plugin to run and build Storybooks with Vite",
"homepage": "https://github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme",
"bugs": {
diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json
index 3c9f218fdd85..fe8dbfb60959 100644
--- a/code/builders/builder-webpack5/package.json
+++ b/code/builders/builder-webpack5/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/builder-webpack5",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
diff --git a/code/builders/builder-webpack5/src/index.ts b/code/builders/builder-webpack5/src/index.ts
index 53c4fba32df5..b4725b4a1f4c 100644
--- a/code/builders/builder-webpack5/src/index.ts
+++ b/code/builders/builder-webpack5/src/index.ts
@@ -61,7 +61,6 @@ export const executor = {
export const getConfig: WebpackBuilder['getConfig'] = async (options) => {
const { presets } = options;
const typescriptOptions = await presets.apply('typescript', {}, options);
- const babelOptions = await presets.apply('babel', {}, { ...options, typescriptOptions });
const frameworkOptions = await presets.apply('frameworkOptions');
return presets.apply(
@@ -69,7 +68,6 @@ export const getConfig: WebpackBuilder['getConfig'] = async (options) => {
{},
{
...options,
- babelOptions,
typescriptOptions,
frameworkOptions,
}
diff --git a/code/builders/builder-webpack5/src/preview/iframe-webpack.config.ts b/code/builders/builder-webpack5/src/preview/iframe-webpack.config.ts
index 89f34d2b6e99..ac573827715a 100644
--- a/code/builders/builder-webpack5/src/preview/iframe-webpack.config.ts
+++ b/code/builders/builder-webpack5/src/preview/iframe-webpack.config.ts
@@ -55,7 +55,7 @@ const storybookPaths: Record = {
};
export default async (
- options: Options & Record & { typescriptOptions: TypescriptOptions }
+ options: Options & { typescriptOptions: TypescriptOptions }
): Promise => {
const {
outputDir = join('.', 'public'),
@@ -64,7 +64,6 @@ export default async (
configType,
presets,
previewUrl,
- babelOptions,
typescriptOptions,
features,
} = options;
@@ -238,7 +237,7 @@ export default async (
},
builderOptions.useSWC
? await createSWCLoader(Object.keys(virtualModuleMapping), options)
- : createBabelLoader(babelOptions, typescriptOptions, Object.keys(virtualModuleMapping)),
+ : await createBabelLoader(options, typescriptOptions, Object.keys(virtualModuleMapping)),
{
test: /\.md$/,
type: 'asset/source',
diff --git a/code/builders/builder-webpack5/src/preview/loaders.ts b/code/builders/builder-webpack5/src/preview/loaders.ts
index f10bd93a5ebc..868d35ba394c 100644
--- a/code/builders/builder-webpack5/src/preview/loaders.ts
+++ b/code/builders/builder-webpack5/src/preview/loaders.ts
@@ -5,18 +5,19 @@ import { logger } from '@storybook/node-logger';
import type { Options } from '@storybook/types';
import type { TypescriptOptions } from '../types';
-export const createBabelLoader = (
- options: any,
+export const createBabelLoader = async (
+ options: Options & { typescriptOptions: TypescriptOptions },
typescriptOptions: TypescriptOptions,
excludes: string[] = []
) => {
logger.info(dedent`Using Babel compiler`);
+ const babelOptions = await options.presets.apply('babel', {}, options);
return {
test: typescriptOptions.skipBabel ? /\.(mjs|jsx?)$/ : /\.(mjs|tsx?|jsx?)$/,
use: [
{
loader: require.resolve('babel-loader'),
- options,
+ options: babelOptions,
},
],
include: [getProjectRoot()],
diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json
index 05e03971ed78..bdc500c756e2 100644
--- a/code/frameworks/angular/package.json
+++ b/code/frameworks/angular/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/angular",
- "version": "7.6.0-beta.2",
+ "version": "8.0.0-alpha.0",
"description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.",
"keywords": [
"storybook",
diff --git a/code/frameworks/angular/template/cli/Button.stories.ts b/code/frameworks/angular/template/cli/Button.stories.ts
index 8f280fb0c763..3809c0e3dd19 100644
--- a/code/frameworks/angular/template/cli/Button.stories.ts
+++ b/code/frameworks/angular/template/cli/Button.stories.ts
@@ -1,7 +1,7 @@
import type { Meta, StoryObj } from '@storybook/angular';
import Button from './button.component';
-// More on how to set up stories at: https://storybook.js.org/docs/angular/writing-stories/introduction
+// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
const meta: Meta
Learn more
@@ -128,7 +128,7 @@ export const RightArrow = () => Publish to Chromatic
Publish your Storybook to review and collaborate with your entire team.
Learn more
@@ -144,7 +144,7 @@ export const RightArrow = () => Embed your stories into Figma to cross-reference the design and live
implementation in one place.
Learn more
@@ -160,7 +160,7 @@ export const RightArrow = () => Use stories to test a component in all its variations, no matter how
complex.
Learn more
@@ -175,7 +175,7 @@ export const RightArrow = () => Accessibility
Automatically test your components for a11y issues as you develop.
Theme Storybook's UI to personalize it to your project.
Learn more
diff --git a/code/frameworks/nextjs/template/cli/js/Header.stories.js b/code/frameworks/nextjs/template/cli/js/Header.stories.js
index 704a8c699534..a1d32b3ad65e 100644
--- a/code/frameworks/nextjs/template/cli/js/Header.stories.js
+++ b/code/frameworks/nextjs/template/cli/js/Header.stories.js
@@ -3,10 +3,10 @@ import { Header } from './Header';
export default {
title: 'Example/Header',
component: Header,
- // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/react/writing-docs/autodocs
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
tags: ['autodocs'],
parameters: {
- // More on how to position stories at: https://storybook.js.org/docs/react/configure/story-layout
+ // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
layout: 'fullscreen',
},
};
diff --git a/code/frameworks/nextjs/template/cli/js/Page.stories.js b/code/frameworks/nextjs/template/cli/js/Page.stories.js
index f339fa246d39..53362f140e61 100644
--- a/code/frameworks/nextjs/template/cli/js/Page.stories.js
+++ b/code/frameworks/nextjs/template/cli/js/Page.stories.js
@@ -5,14 +5,14 @@ export default {
title: 'Example/Page',
component: Page,
parameters: {
- // More on how to position stories at: https://storybook.js.org/docs/react/configure/story-layout
+ // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
layout: 'fullscreen',
},
};
export const LoggedOut = {};
-// More on interaction testing: https://storybook.js.org/docs/react/writing-tests/interaction-testing
+// More on interaction testing: https://storybook.js.org/docs/writing-tests/interaction-testing
export const LoggedIn = {
play: async ({ canvasElement }) => {
const canvas = within(canvasElement);
diff --git a/code/frameworks/nextjs/template/cli/ts-3-8/Button.stories.ts b/code/frameworks/nextjs/template/cli/ts-3-8/Button.stories.ts
index 7d049116d13f..b65080126a44 100644
--- a/code/frameworks/nextjs/template/cli/ts-3-8/Button.stories.ts
+++ b/code/frameworks/nextjs/template/cli/ts-3-8/Button.stories.ts
@@ -2,17 +2,17 @@ import type { Meta, StoryObj } from '@storybook/react';
import { Button } from './Button';
-// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
+// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
const meta: Meta = {
title: 'Example/Button',
component: Button,
parameters: {
- // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/react/configure/story-layout
+ // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
layout: 'centered',
},
- // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/react/writing-docs/autodocs
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
tags: ['autodocs'],
- // More on argTypes: https://storybook.js.org/docs/react/api/argtypes
+ // More on argTypes: https://storybook.js.org/docs/api/argtypes
argTypes: {
backgroundColor: { control: 'color' },
},
@@ -21,7 +21,7 @@ const meta: Meta = {
export default meta;
type Story = StoryObj;
-// More on writing stories with args: https://storybook.js.org/docs/react/writing-stories/args
+// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
export const Primary: Story = {
args: {
primary: true,
diff --git a/code/frameworks/nextjs/template/cli/ts-3-8/Configure.mdx b/code/frameworks/nextjs/template/cli/ts-3-8/Configure.mdx
index e05f151edf74..055a3c564efc 100644
--- a/code/frameworks/nextjs/template/cli/ts-3-8/Configure.mdx
+++ b/code/frameworks/nextjs/template/cli/ts-3-8/Configure.mdx
@@ -52,7 +52,7 @@ export const RightArrow = () => Add styling and CSS
Like with web applications, there are many ways to include CSS within Storybook. Learn more about setting up styling within Storybook.
Learn more
@@ -67,7 +67,7 @@ export const RightArrow = () => Provide context and mocking
Often when a story doesn't render, it's because your component is expecting a specific environment or context (like a theme provider) to be available.
Learn more
@@ -85,7 +85,7 @@ export const RightArrow = () => Learn more
@@ -113,7 +113,7 @@ export const RightArrow = () => Auto-generate living,
interactive reference documentation from your components and stories.
Learn more
@@ -128,7 +128,7 @@ export const RightArrow = () => Publish to Chromatic
Publish your Storybook to review and collaborate with your entire team.
Learn more
@@ -144,7 +144,7 @@ export const RightArrow = () => Embed your stories into Figma to cross-reference the design and live
implementation in one place.
Learn more
@@ -160,7 +160,7 @@ export const RightArrow = () => Use stories to test a component in all its variations, no matter how
complex.
Learn more
@@ -175,7 +175,7 @@ export const RightArrow = () => Accessibility
Automatically test your components for a11y issues as you develop.
Theme Storybook's UI to personalize it to your project.
Learn more
diff --git a/code/frameworks/nextjs/template/cli/ts-3-8/Header.stories.ts b/code/frameworks/nextjs/template/cli/ts-3-8/Header.stories.ts
index 448685eab0eb..82a109720879 100644
--- a/code/frameworks/nextjs/template/cli/ts-3-8/Header.stories.ts
+++ b/code/frameworks/nextjs/template/cli/ts-3-8/Header.stories.ts
@@ -4,10 +4,10 @@ import { Header } from './Header';
const meta: Meta = {
title: 'Example/Header',
component: Header,
- // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/react/writing-docs/autodocs
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
tags: ['autodocs'],
parameters: {
- // More on how to position stories at: https://storybook.js.org/docs/react/configure/story-layout
+ // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
layout: 'fullscreen',
},
};
diff --git a/code/frameworks/nextjs/template/cli/ts-3-8/Page.stories.ts b/code/frameworks/nextjs/template/cli/ts-3-8/Page.stories.ts
index c072a1cc43ed..4bcf593cafa7 100644
--- a/code/frameworks/nextjs/template/cli/ts-3-8/Page.stories.ts
+++ b/code/frameworks/nextjs/template/cli/ts-3-8/Page.stories.ts
@@ -7,7 +7,7 @@ const meta: Meta = {
title: 'Example/Page',
component: Page,
parameters: {
- // More on how to position stories at: https://storybook.js.org/docs/react/configure/story-layout
+ // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
layout: 'fullscreen',
},
};
@@ -17,7 +17,7 @@ type Story = StoryObj;
export const LoggedOut: Story = {};
-// More on interaction testing: https://storybook.js.org/docs/react/writing-tests/interaction-testing
+// More on interaction testing: https://storybook.js.org/docs/writing-tests/interaction-testing
export const LoggedIn: Story = {
play: async ({ canvasElement }) => {
const canvas = within(canvasElement);
diff --git a/code/frameworks/nextjs/template/cli/ts-4-9/Button.stories.ts b/code/frameworks/nextjs/template/cli/ts-4-9/Button.stories.ts
index 7a68cbfec557..742c3aa7b029 100644
--- a/code/frameworks/nextjs/template/cli/ts-4-9/Button.stories.ts
+++ b/code/frameworks/nextjs/template/cli/ts-4-9/Button.stories.ts
@@ -2,17 +2,17 @@ import type { Meta, StoryObj } from '@storybook/react';
import { Button } from './Button';
-// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
+// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
const meta = {
title: 'Example/Button',
component: Button,
parameters: {
- // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/react/configure/story-layout
+ // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
layout: 'centered',
},
- // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/react/writing-docs/autodocs
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
tags: ['autodocs'],
- // More on argTypes: https://storybook.js.org/docs/react/api/argtypes
+ // More on argTypes: https://storybook.js.org/docs/api/argtypes
argTypes: {
backgroundColor: { control: 'color' },
},
@@ -21,7 +21,7 @@ const meta = {
export default meta;
type Story = StoryObj;
-// More on writing stories with args: https://storybook.js.org/docs/react/writing-stories/args
+// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
export const Primary: Story = {
args: {
primary: true,
diff --git a/code/frameworks/nextjs/template/cli/ts-4-9/Configure.mdx b/code/frameworks/nextjs/template/cli/ts-4-9/Configure.mdx
index e05f151edf74..055a3c564efc 100644
--- a/code/frameworks/nextjs/template/cli/ts-4-9/Configure.mdx
+++ b/code/frameworks/nextjs/template/cli/ts-4-9/Configure.mdx
@@ -52,7 +52,7 @@ export const RightArrow = () => Add styling and CSS
Like with web applications, there are many ways to include CSS within Storybook. Learn more about setting up styling within Storybook.
Learn more
@@ -67,7 +67,7 @@ export const RightArrow = () => Provide context and mocking
Often when a story doesn't render, it's because your component is expecting a specific environment or context (like a theme provider) to be available.
Learn more
@@ -85,7 +85,7 @@ export const RightArrow = () => Learn more
@@ -113,7 +113,7 @@ export const RightArrow = () => Auto-generate living,
interactive reference documentation from your components and stories.
Learn more
@@ -128,7 +128,7 @@ export const RightArrow = () => Publish to Chromatic
Publish your Storybook to review and collaborate with your entire team.
Learn more
@@ -144,7 +144,7 @@ export const RightArrow = () => Embed your stories into Figma to cross-reference the design and live
implementation in one place.
Learn more
@@ -160,7 +160,7 @@ export const RightArrow = () => Use stories to test a component in all its variations, no matter how
complex.
Learn more
@@ -175,7 +175,7 @@ export const RightArrow = () => Accessibility
Automatically test your components for a11y issues as you develop.
+ Storybook's primary configuration file, which specifies your Storybook project's behavior,
+ including the location of your stories, the addons you use, feature flags and other
+ project-specific settings.
+
+ ArgTypes specify the behavior of args. By specifying
+ the type of an arg, you constrain the values that it can accept and provide information
+ about args that are not explicitly set.
+
+ Storybook offers several doc blocks to help document your components and other aspects of
+ your project.
+
+
+
+
diff --git a/docs/api/main-config-framework.md b/docs/api/main-config-framework.md
index 4e4e563ee3ee..ce256574b75c 100644
--- a/docs/api/main-config-framework.md
+++ b/docs/api/main-config-framework.md
@@ -41,9 +41,7 @@ Configures Storybook's builder, [Vite](../builders/vite.md) or [Webpack](../buil
#### `options.builder.useSWC`
-(⚠️ **Experimental**)
-
-For frameworks made with the [Webpack](../builders/webpack.md) builder, this option allows you to use the [SWC](https://swc.rs/) compiler instead of [Babel](../configure/babel.md).
+For frameworks made with [Webpack](../builders/webpack.md) builder, except Angular. Enabling this option allows you to use the [SWC](https://swc.rs/) compiler instead of [Babel](../configure/compilers.md#babel).
When Storybook loads, it will update Webpack's configuration including the required loaders (e.g., [`TerserPlugin`](https://webpack.js.org/plugins/terser-webpack-plugin/), [`babel-loader`](https://webpack.js.org/loaders/babel-loader/)) with SWC equivalents (e.g., [`swc-loader`](https://swc.rs/docs/usage/swc-loader)) for bundling and minification.
diff --git a/docs/api/main-config-preview-annotations.md b/docs/api/main-config-preview-annotations.md
index 8e69ae265645..d5a4f91298d9 100644
--- a/docs/api/main-config-preview-annotations.md
+++ b/docs/api/main-config-preview-annotations.md
@@ -10,7 +10,7 @@ Add additional scripts to run in the story preview.
-Mostly used by [frameworks](../contribute/framework.md#previewjs-example). Storybook users and [addon authors](../addons/writing-presets.md) should add scripts to [`preview.js`](../configure/overview.md#configure-story-rendering) instead.
+Mostly used by [frameworks](../contribute/framework.md#previewjs-example). Storybook users and [addon authors](../addons/writing-presets.md) should add scripts to [`preview.js`](../configure/index.md#configure-story-rendering) instead.
diff --git a/docs/api/main-config-swc.md b/docs/api/main-config-swc.md
new file mode 100644
index 000000000000..ffd91ddbc7fb
--- /dev/null
+++ b/docs/api/main-config-swc.md
@@ -0,0 +1,30 @@
+---
+title: 'swc'
+---
+
+Parent: [main.js|ts configuration](./main-config.md)
+
+Type: `(config: swc.Options, options: Options) => swc.Options | Promise`
+
+Customize Storybook's [SWC](https://swc.rs/) setup.
+
+
+
+
+
+
+
+## `SWC.Options`
+
+See SWC's [documentation](https://swc.rs/) for more information.
+
+## Options
+
+Type: `{ configType?: 'DEVELOPMENT' | 'PRODUCTION' }`
+
+There are other options that are difficult to document here. Please introspect the type definition for more information.
diff --git a/docs/api/main-config.md b/docs/api/main-config.md
index e0988eec381f..51fc0888aff4 100644
--- a/docs/api/main-config.md
+++ b/docs/api/main-config.md
@@ -43,6 +43,7 @@ An object to configure Storybook containing the following properties:
- [`previewHead`](./main-config-preview-head.md)
- [`refs`](./main-config-refs.md)
- [`staticDirs`](./main-config-static-dirs.md)
+- [`swc`](./main-config-swc.md)
- [`typescript`](./main-config-typescript.md)
- [`viteFinal`](./main-config-vite-final.md)
- [`webpackFinal`](./main-config-webpack-final.md)
diff --git a/docs/api/new-frameworks.md b/docs/api/new-frameworks.md
index 7321cb3b2b19..1e3f87fe5e88 100644
--- a/docs/api/new-frameworks.md
+++ b/docs/api/new-frameworks.md
@@ -150,7 +150,7 @@ The framework's render function is the entity responsible for converting the ren
### Package structure
-On the client side, the key file is [`src/client/preview.js`](../configure/overview.md#configure-story-rendering):
+On the client side, the key file is [`src/client/preview.js`](../configure/index.md#configure-story-rendering):
diff --git a/docs/builders/builder-api.md b/docs/builders/builder-api.md
index 056a96144a78..5d21370b5100 100644
--- a/docs/builders/builder-api.md
+++ b/docs/builders/builder-api.md
@@ -55,7 +55,7 @@ In production, the `build` API call is responsible for generating a static Story
## Implementation
-Under the hood, a builder is responsible for serving/building the preview `iframe`, which has its own set of requirements. To fully support Storybook, including the [Essential addons](../writing-stories/introduction.md) that ship with Storybook, it must consider the following.
+Under the hood, a builder is responsible for serving/building the preview `iframe`, which has its own set of requirements. To fully support Storybook, including the [Essential addons](../writing-stories/index.md) that ship with Storybook, it must consider the following.
### Import stories
@@ -77,7 +77,7 @@ By default, Storybook's configuration is handled in a dedicated file (`storybook
### Handle preview.js exports
-The [`preview.js`](../configure/overview.md#configure-story-rendering) configuration file allows users to control how the story renders in the UI. This is provided via the [decorators](../writing-stories/decorators.md) named export. When Storybook starts, it converts these named exports into internal API calls via virtual module entry, for example, `addDecorator()`. The builder must also provide a similar implementation. For example:
+The [`preview.js`](../configure/index.md#configure-story-rendering) configuration file allows users to control how the story renders in the UI. This is provided via the [decorators](../writing-stories/decorators.md) named export. When Storybook starts, it converts these named exports into internal API calls via virtual module entry, for example, `addDecorator()`. The builder must also provide a similar implementation. For example:
@@ -91,7 +91,7 @@ The [`preview.js`](../configure/overview.md#configure-story-rendering) configura
### MDX support
-[Storybook's Docs](../writing-docs/introduction.md) includes the ability to author stories/documentation in MDX using a Webpack loader. The builder must also know how to interpret MDX and invoke Storybook's special extensions. For example:
+[Storybook's Docs](../writing-docs/index.md) includes the ability to author stories/documentation in MDX using a Webpack loader. The builder must also know how to interpret MDX and invoke Storybook's special extensions. For example:
diff --git a/docs/builders/overview.md b/docs/builders/index.md
similarity index 97%
rename from docs/builders/overview.md
rename to docs/builders/index.md
index f0dbee77eeea..ed1309da02cb 100644
--- a/docs/builders/overview.md
+++ b/docs/builders/index.md
@@ -1,5 +1,6 @@
---
title: 'Builders'
+hideRendererSelector: true
---
Storybook, at its core, is powered by builders such as Webpack and Vite. These builders spin up a development environment, compile your code—Javascript, CSS, and MDX—into an executable bundle and update the browser in real-time.
diff --git a/docs/builders/webpack.md b/docs/builders/webpack.md
index 74964ff1c368..703459da2e4f 100644
--- a/docs/builders/webpack.md
+++ b/docs/builders/webpack.md
@@ -27,7 +27,7 @@ By default, Storybook provides zero-config support for Webpack and automatically
### Override the default configuration
-Storybook's Webpack configuration is based on [Webpack 5](https://webpack.js.org/), allowing it to be extended to fit your project's needs. If you need to add a loader or a plugin, you can provide the `webpackFinal` configuration element in your [`.storybook/main.js|ts`](../configure/overview.md#configure-your-storybook-project) file. The configuration element should export a function that receives the baseline configuration as the first argument and Storybook's options object as the second argument. For example:
+Storybook's Webpack configuration is based on [Webpack 5](https://webpack.js.org/), allowing it to be extended to fit your project's needs. If you need to add a loader or a plugin, you can provide the `webpackFinal` configuration element in your [`.storybook/main.js|ts`](../configure/index.md#configure-your-storybook-project) file. The configuration element should export a function that receives the baseline configuration as the first argument and Storybook's options object as the second argument. For example:
diff --git a/docs/configure/babel.md b/docs/configure/babel.md
deleted file mode 100644
index 94bd83590288..000000000000
--- a/docs/configure/babel.md
+++ /dev/null
@@ -1,153 +0,0 @@
----
-title: 'Babel'
----
-
-As of version 7.0, Storybook now re-uses your project’s Babel configuration to apply the same Babel plugins and presets in your Storybook stories as you do in your app. This makes it simpler, less buggy, easier to troubleshoot, and more consistent with other tools in the JS ecosystem.
-
-
-
-If you're not using Storybook 7, please reference the [previous documentation](../../../release-6-5/docs/configure/babel.md) for guidance on configuring your Babel setup.
-
-
-
-## CRA (Create React App)
-
-[CRA](https://create-react-app.dev/) apps using `@storybook/react-webpack5` with the `@storybook/preset-create-react-app` package use CRA's Babel handling to behave as close as possible to your actual application. None of the other documentation on this page applies.
-
-## Configuring
-
-In Storybook 7, you are responsible for configuring Babel using your `.babelrc` file, and Storybook does not provide any default. Storybook's frameworks and addons may provide minor programmatic modifications to the Babel configuration.
-
-## Migrating from V6
-
-For detailed instructions on migrating from `V6` mode, please see [MIGRATION.md](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#babel-mode-v7-exclusively).
-
-## Generate a babelrc
-
-If your app does not include a babelrc file, and you need one, you can create it by running the following command in your project directory:
-
-```sh
-npx storybook@latest babelrc
-```
-
-Once the command completes, you should have a `.babelrc.json` file created in the root directory of your project, similar to the following example:
-
-
-Example Babel configuration
-
-```json
-{
- "sourceType": "unambiguous",
- "presets": [
- [
- "@babel/preset-env",
- {
- "shippedProposals": true,
- "loose": true
- }
- ],
- "@babel/preset-typescript"
- ],
- "plugins": [
- "@babel/plugin-transform-shorthand-properties",
- "@babel/plugin-transform-block-scoping",
- [
- "@babel/plugin-proposal-decorators",
- {
- "legacy": true
- }
- ],
- [
- "@babel/plugin-proposal-class-properties",
- {
- "loose": true
- }
- ],
- [
- "@babel/plugin-proposal-private-methods",
- {
- "loose": true
- }
- ],
- "@babel/plugin-proposal-export-default-from",
- "@babel/plugin-syntax-dynamic-import",
- [
- "@babel/plugin-proposal-object-rest-spread",
- {
- "loose": true,
- "useBuiltIns": true
- }
- ],
- "@babel/plugin-transform-classes",
- "@babel/plugin-transform-arrow-functions",
- "@babel/plugin-transform-parameters",
- "@babel/plugin-transform-destructuring",
- "@babel/plugin-transform-spread",
- "@babel/plugin-transform-for-of",
- "babel-plugin-macros",
- "@babel/plugin-proposal-optional-chaining",
- "@babel/plugin-proposal-nullish-coalescing-operator",
- [
- "babel-plugin-polyfill-corejs3",
- {
- "method": "usage-global",
- "absoluteImports": "core-js",
- "version": "3.18.3"
- }
- ]
- ]
-}
-```
-
-
-
-Depending on your environment, you may need to install additional package dependencies.
-
-### Babelrc vs. Babel config
-
-Babel has two different configuration modes: babelrc and Babel config. As explained in more detail [in Babel's docs](https://babeljs.io/docs/en/config-files):
-
-- **babelrc** configures Babel for files in the same folder (or descendant folders) of the location of the babelrc
-- **Babel config** configures Babel globally
-
-Babel recommends to use babelrc, and it's what Storybook generates when you run `npx storybook babelrc`. If your stories are located in the current project directory (e.g., `stories: ['../src/**/*.stories.js']`) this approach will work well.
-However, when your Storybook refers to files outside of the current project directory (e.g., `stories: ['../../some-other-directory/**/*.stories.js']`), the babelrc will not apply to those files. However, a Babel config will, and is the recommended approach in that situation.
-
-## Troubleshooting
-
-### Babel configuration not working
-
-To troubleshoot your Babel configuration, set the `BABEL_SHOW_CONFIG_FOR` environment variable. For example, to see how Storybook is transpiling your `.storybook/preview.js` file, add the following environment variable:
-
-```sh
-BABEL_SHOW_CONFIG_FOR=.storybook/preview.js yarn storybook
-```
-
-When the command finishes running, it will display the available Babel configuration for the `.storybook/preview.js` file. You can use this information to debug issues with transpilation.
-
-
-
-Due to what appears to be a Babel bug, setting this flag causes Babel transpilation to fail on the file provided. Thus you cannot actually **run** Storybook using this command. However, it will print out the configuration information as advertised, and therefore you can use this to debug your Storybook. You'll need to remove the flag to actually run your Storybook.
-
-
-
-For more info, please refer to the [Babel documentation](https://babeljs.io/docs/en/configuration#print-effective-configs).
-
-### SWC alternative
-
-(⚠️ **Experimental**)
-
-If you're working with a Webpack-based project, you can opt into replacing Babel with the [SWC](https://swc.rs/) compiler, which can be faster for some projects. To do so, update your [Storybook configuration file](../api/main-config.md) (e.g., `.storybook/main.js|ts`) to enable the experimental `useSWC` option:
-
-
-
-
-
-
-
-See the [`useSWC` API reference](../api/main-config-framework.md#optionsbuilderuseswc) for more information.
diff --git a/docs/configure/compilers.md b/docs/configure/compilers.md
new file mode 100644
index 000000000000..fc18eac310aa
--- /dev/null
+++ b/docs/configure/compilers.md
@@ -0,0 +1,169 @@
+---
+title: 'Compiler support'
+---
+
+Javascript compilers are essential in optimizing and transforming code, enhancing performance, and ensuring compatibility across different environments. Storybook provides support for the leading compilers, ensuring lightning-fast build time and execution with [SWC](https://swc.rs/) or leveraging [Babel](https://babeljs.io/) with its extensive ecosystem of plugins and presets to allow you to use the latest features of the ecosystem with minimal configuration required for your Webpack-based project.
+
+## SWC
+
+SWC is a fast, highly extensible tool for compiling and bundling modern JavaScript applications. Powered by [Rust](https://www.rust-lang.org/), it improves performance and reduces build times. Storybook includes a built-in integration with SWC, allowing zero-configuration setup and built-in types for APIs. If you've initialized Storybook in a Webpack-based project with any of the supported [frameworks](./frameworks.md), except Angular, it will automatically use SWC as its default, providing you with faster loading time. However, if you're upgrading from a previous version of Storybook, you may need to opt-in to use SWC by adjusting your Storybook configuration file (i.e., `.storybook/main.js|ts`) as follows:
+
+
+
+
+
+
+
+
+
+Support for the SWC builder is currently experimental for Next.js projects, and it's not enabled by default. It requires you to opt in to use it.
+
+
+
+## Babel
+
+Babel is a widely adopted JavaScript compiler providing a modular architecture and extensive plugin system to support a wide range of use cases, enabling access to the cutting-edge features of the tooling ecosystem. Storybook provides a seamless integration with Babel, allowing you to share a standard setup between your project and Storybook without any additional configuration.
+
+
+
+If you're not using Storybook 7, please reference the [previous documentation](../../../release-6-5/docs/configure/babel.md) for guidance on configuring your Babel setup.
+
+
+
+### Configure
+
+By default, Babel provides an opinionated [configuration](https://babeljs.io/docs/config-files) that works for most projects, relying on two distinct methods for configuring projects with the tool:
+
+- **Project-wide configuration**: Babel will look for a `babel.config.js` or equivalent file in the root of your project and use it to configure your project's Babel setup.
+- **File-relative configuration**: Babel will look for a `.babelrc.json` or equivalent file, introspecting the project structure until it finds a configuration file. This will allow you to configure Babel individually for multiple aspects of your project.
+
+Storybook relies on an agnostic approach to configuring Babel, enabling you to provide the necessary configuration for your project, and it will use it. Based on the supported frameworks, builders, and addons, it may include minor adjustments to ensure compatibility with Storybook's features. If you need to provide a custom configuration, you can generate a `.babelrc.json` file by running the following command:
+
+
+
+
+
+
+
+When the command runs, it will prompt you to install additional packages and generate a `.babelrc.json` file in the current working directory of your project and apply it, assuming that you're using the default configuration and co-locating your Storybook stories in the current working directory of your project.
+
+
+Example Babel configuration
+
+```json
+{
+ "sourceType": "unambiguous",
+ "presets": [
+ [
+ "@babel/preset-env",
+ {
+ "shippedProposals": true,
+ "loose": true
+ }
+ ],
+ "@babel/preset-typescript"
+ ],
+ "plugins": [
+ "@babel/plugin-transform-shorthand-properties",
+ "@babel/plugin-transform-block-scoping",
+ [
+ "@babel/plugin-proposal-decorators",
+ {
+ "legacy": true
+ }
+ ],
+ [
+ "@babel/plugin-proposal-class-properties",
+ {
+ "loose": true
+ }
+ ],
+ [
+ "@babel/plugin-proposal-private-methods",
+ {
+ "loose": true
+ }
+ ],
+ "@babel/plugin-proposal-export-default-from",
+ "@babel/plugin-syntax-dynamic-import",
+ [
+ "@babel/plugin-proposal-object-rest-spread",
+ {
+ "loose": true,
+ "useBuiltIns": true
+ }
+ ],
+ "@babel/plugin-transform-classes",
+ "@babel/plugin-transform-arrow-functions",
+ "@babel/plugin-transform-parameters",
+ "@babel/plugin-transform-destructuring",
+ "@babel/plugin-transform-spread",
+ "@babel/plugin-transform-for-of",
+ "babel-plugin-macros",
+ "@babel/plugin-proposal-optional-chaining",
+ "@babel/plugin-proposal-nullish-coalescing-operator",
+ [
+ "babel-plugin-polyfill-corejs3",
+ {
+ "method": "usage-global",
+ "absoluteImports": "core-js",
+ "version": "3.18.3"
+ }
+ ]
+ ]
+}
+```
+
+
+
+
+
+For custom project configurations such as monorepos, where you have multiple Storybook configurations, creating a `.babelrc.json` file in your project's current working directory may not be sufficient. In those cases, you can create a `babel.config.js` file to override Babel's configuration, and Storybook will automatically detect and use it. See the Babel [documentation](https://babeljs.io/docs/config-files) for more information.
+
+
+
+### Working with Create React App
+
+If you're working with a project that was initialized with [Create React App](https://create-react-app.dev/), Storybook will automatically detect and use the Babel configuration provided by the tool enabled via the `@storybook/preset-create-react-app` preset, allowing to use Storybook without any additional configuration.
+
+## Troubleshooting
+
+
+
+### The SWC compiler doesn't work with React
+
+If you have enabled the SWC builder option in a React-based project and you are not explicitly importing React in your `jsx|tsx` files, it can cause Storybook to fail to load. SWC does not automatically import the `jsx-runtime` module when using the SWC builder. To resolve this issue, you need to adjust your Storybook configuration file (i.e., `.storybook/main.js|ts`) and configure the `swc` option as follows:
+
+
+
+
+
+
+
+
+
+### Babel configuration not working
+
+Out of the box, Storybook can detect and apply any Babel configuration you provided in your project. However, if you're running into a situation where your configuration is not being used, you configure the [`BABEL_SHOW_CONFIG_FOR`](https://babeljs.io/docs/configuration#print-effective-configs) environment variable and set it to the file you want to inspect. For example:
+
+```sh
+BABEL_SHOW_CONFIG_FOR=.storybook/preview.js yarn storybook
+```
+
+When the command runs, it will output the Babel configuration applied to the file you specified despite showing a transpilation error in the console and preventing Storybook from loading. This is a known issue with Babel unrelated to Storybook, which you address by turning off the environment variable after inspecting the configuration and restarting Storybook.
diff --git a/docs/configure/environment-variables.md b/docs/configure/environment-variables.md
index d4ba9252c58c..e2948c3027b6 100644
--- a/docs/configure/environment-variables.md
+++ b/docs/configure/environment-variables.md
@@ -111,7 +111,7 @@ Then they'll be hardcoded to the static version of your Storybook.
### Using Storybook configuration
-Additionally, you can extend your Storybook configuration file (i.e., [`.storybook/main.js|.ts`](../configure/overview.md#configure-story-rendering)) and provide a configuration field that you can use to define specific variables (e.g., API URLs). For example:
+Additionally, you can extend your Storybook configuration file (i.e., [`.storybook/main.js|.ts`](../configure/index.md#configure-story-rendering)) and provide a configuration field that you can use to define specific variables (e.g., API URLs). For example:
diff --git a/docs/configure/frameworks.md b/docs/configure/frameworks.md
index fc9010251423..3602138dab30 100644
--- a/docs/configure/frameworks.md
+++ b/docs/configure/frameworks.md
@@ -52,11 +52,11 @@ Every modern web application has unique requirements and relies on various tools
### NextJS 13 doesn't work with Storybook
-The latest release of [NextJS](https://nextjs.org/) introduced breaking changes (e.g., [TurboPack](https://turbo.build/pack), [Server Component](https://nextjs.org/docs/advanced-features/react-18/server-components), [SWC](https://nextjs.org/docs/advanced-features/compiler#why-swc)) that are not yet fully supported by Storybook. The Storybook team is working on adding support for these features. In the meantime, you can still use Storybook alongside your NextJS 13 project if you're not relying on them.
+With the release of Next.js [version 13](https://nextjs.org/blog/next-13), it introduced breaking changes (e.g., [TurboPack](https://turbo.build/pack), [Server Components](https://nextjs.org/docs/advanced-features/react-18/server-components)) that are not yet fully supported by Storybook. The Storybook team is working on adding support for these features. In the meantime, you can still use Storybook alongside your Next.js 13 project if you're not relying on them.
### My framework doesn't work with Storybook
-Out of the box, most frameworks work seamlessly with Storybook. However, some frameworks (e.g., [CRACO](https://craco.js.org/)) provide their own configuration that Storybook isn't prepared to handle without additional steps, either [via addon](../addons/writing-presets.md) or integration. To learn more, read our [addons guide](../addons/introduction.md).
+Out of the box, most frameworks work seamlessly with Storybook. However, some frameworks (e.g., [CRACO](https://craco.js.org/)) provide their own configuration that Storybook isn't prepared to handle without additional steps, either [via addon](../addons/writing-presets.md) or integration. To learn more, read our [addons guide](../addons/index.md).
### How do I build a Storybook framework?
diff --git a/docs/configure/overview.md b/docs/configure/index.md
similarity index 100%
rename from docs/configure/overview.md
rename to docs/configure/index.md
diff --git a/docs/configure/sidebar-and-urls.md b/docs/configure/sidebar-and-urls.md
index ab5f3afe509e..4e03f93be782 100644
--- a/docs/configure/sidebar-and-urls.md
+++ b/docs/configure/sidebar-and-urls.md
@@ -145,7 +145,7 @@ If you need to preserve the naming scheme, you can add the `title` element to th
### Auto-title prefixes
-Additionally, if you customize your Storybook to load your stories based on a [configuration object](./overview.md#with-a-configuration-object), including a `titlePrefix`, Storybook automatically prefixes all titles to matching stories. For example, assuming you have the following configuration:
+Additionally, if you customize your Storybook to load your stories based on a [configuration object](./index.md#with-a-configuration-object), including a `titlePrefix`, Storybook automatically prefixes all titles to matching stories. For example, assuming you have the following configuration:
diff --git a/docs/configure/story-layout.md b/docs/configure/story-layout.md
index 5adad91aebea..07236f9cbab4 100644
--- a/docs/configure/story-layout.md
+++ b/docs/configure/story-layout.md
@@ -6,7 +6,7 @@ The `layout` [parameter](../writing-stories/parameters.md) allows you to configu
## Global layout
-You can add the parameter to your [`./storybook/preview.js`](./overview.md#configure-story-rendering), like so:
+You can add the parameter to your [`./storybook/preview.js`](./index.md#configure-story-rendering), like so:
diff --git a/docs/configure/story-rendering.md b/docs/configure/story-rendering.md
index ae98bac3d9f3..fff549e8ef4c 100644
--- a/docs/configure/story-rendering.md
+++ b/docs/configure/story-rendering.md
@@ -6,7 +6,7 @@ In Storybook, your stories render in a particular “preview” iframe (Canvas t
## Adding to <head>
-If you need to add extra elements to the `head` of the preview iframe, for instance, to load static stylesheets, font files, or similar, you can create a file called [`.storybook/preview-head.html`](./overview.md#configure-story-rendering) and add tags like this:
+If you need to add extra elements to the `head` of the preview iframe, for instance, to load static stylesheets, font files, or similar, you can create a file called [`.storybook/preview-head.html`](./index.md#configure-story-rendering) and add tags like this:
diff --git a/docs/configure/storybook-addons.md b/docs/configure/storybook-addons.md
index 48315969243c..697e0884889a 100644
--- a/docs/configure/storybook-addons.md
+++ b/docs/configure/storybook-addons.md
@@ -4,7 +4,7 @@ title: 'Storybook Addons'
A key strength of Storybook is its extensibility. Use addons to extend and customize Storybook to fit your team’s development workflow.
-Addons are integral to the way Storybook works. Many of Storybook's core features are implemented as addons! These addons are installed out of the box with [essentials](../essentials/introduction.md).
+Addons are integral to the way Storybook works. Many of Storybook's core features are implemented as addons! These addons are installed out of the box with [essentials](../essentials/index.md).
## Addon features
diff --git a/docs/configure/styling-and-css.md b/docs/configure/styling-and-css.md
index 2f847b80935d..f2e70a9b6729 100644
--- a/docs/configure/styling-and-css.md
+++ b/docs/configure/styling-and-css.md
@@ -10,7 +10,7 @@ If you're using Vite to build your Storybook, you're covered! Storybook will use
## Importing CSS files
-Storybook is pre-configured to recognize imports for CSS files. To add global CSS for all your stories, import it in [`.storybook/preview.js`](./overview.md#configure-story-rendering).
+Storybook is pre-configured to recognize imports for CSS files. To add global CSS for all your stories, import it in [`.storybook/preview.js`](./index.md#configure-story-rendering).
diff --git a/docs/configure/telemetry.md b/docs/configure/telemetry.md
index 1d1af24046c1..f239c86a7247 100644
--- a/docs/configure/telemetry.md
+++ b/docs/configure/telemetry.md
@@ -34,8 +34,8 @@ Specifically, we track the following information in our telemetry events:
- Supported view layers (e.g., React, Vue, Angular, Svelte).
- Builder (e.g., Webpack5, Vite).
- Meta framework (e.g., [Next](https://nextjs.org/), [Gatsby](https://www.gatsbyjs.com/), [CRA](https://create-react-app.dev/)).
- - [Addons](https://storybook.js.org/integrations) (e.g., [Essentials](../essentials/introduction.md), [Accessibility](https://storybook.js.org/addons/@storybook/addon-a11y/)).
- - [Feature flags](./overview.md#feature-flags) (e.g., `buildStoriesJson`).
+ - [Addons](https://storybook.js.org/integrations) (e.g., [Essentials](../essentials/index.md), [Accessibility](https://storybook.js.org/addons/@storybook/addon-a11y/)).
+ - [Feature flags](./index.md#feature-flags) (e.g., `buildStoriesJson`).
- Package manager information (e.g., `npm`, `yarn`).
- Monorepo information (e.g., [NX](https://nx.dev/), [Turborepo](https://turborepo.org/)).
- In-app events (e.g., [Storybook guided tour](https://github.com/storybookjs/addon-onboarding)).
diff --git a/docs/configure/theming.md b/docs/configure/theming.md
index 73cc315f5fc6..5ac07a9b5a61 100644
--- a/docs/configure/theming.md
+++ b/docs/configure/theming.md
@@ -42,7 +42,7 @@ When setting a theme, set a complete theme object. The theme is replaced, not co
## Theming docs
-[Storybook Docs](../writing-docs/introduction.md) uses the same theme system as Storybook’s UI but is themed independently from the main UI.
+[Storybook Docs](../writing-docs/index.md) uses the same theme system as Storybook’s UI but is themed independently from the main UI.
Supposing you have a Storybook theme defined for the main UI in [`.storybook/manager.js`](./features-and-behavior.md):
@@ -56,7 +56,7 @@ Supposing you have a Storybook theme defined for the main UI in [`.storybook/man
-Here's how you'd specify the same theme for docs in [`.storybook/preview.js`](./overview.md#configure-story-rendering):
+Here's how you'd specify the same theme for docs in [`.storybook/preview.js`](./index.md#configure-story-rendering):
@@ -164,7 +164,7 @@ The same way as you can adjust your [preview’s head tag](../configure/story-re
If you're using MDX for docs, there's one more level of "themability". MDX allows you to completely override the rendered components from Markdown using a `components` parameter. It's an advanced usage that we don't officially support in Storybook, but it's a powerful construct if you need it.
-Here's how you might insert a custom code renderer for `code` blocks on the page, in [`.storybook/preview.js`](./overview.md#configure-story-rendering):
+Here's how you might insert a custom code renderer for `code` blocks on the page, in [`.storybook/preview.js`](./index.md#configure-story-rendering):
diff --git a/docs/configure/webpack.md b/docs/configure/webpack.md
index 61073d7b4374..41537c576f70 100644
--- a/docs/configure/webpack.md
+++ b/docs/configure/webpack.md
@@ -4,7 +4,7 @@ title: 'Webpack'
Storybook displays your components in a custom web application built using [Webpack](https://webpack.js.org/). Webpack is a complex tool, but our default configuration is intended to cover most use cases. [Addons](https://storybook.js.org/addons/) are also available that extend the configuration for other everyday use cases.
-You can customize Storybook's webpack setup by providing a `webpackFinal` field in [`.storybook/main.js`](./overview.md#configure-your-storybook-project) file.
+You can customize Storybook's webpack setup by providing a `webpackFinal` field in [`.storybook/main.js`](./index.md#configure-your-storybook-project) file.
The value should be an async function that receives a webpack config and eventually returns a webpack config.
@@ -65,7 +65,7 @@ Starting with Storybook 6.4, [bundle splitting](https://v4.webpack.js.org/guides
-When you start your Storybook, you'll see an improvement in loading times. Read more about it in the [announcement post](https://storybook.js.org/blog/storybook-on-demand-architecture/) and the [configuration documentation](./overview.md#on-demand-story-loading).
+When you start your Storybook, you'll see an improvement in loading times. Read more about it in the [announcement post](https://storybook.js.org/blog/storybook-on-demand-architecture/) and the [configuration documentation](./index.md#on-demand-story-loading).
### Webpack 5
@@ -117,7 +117,7 @@ This feature will mean build output is cached between runs of Storybook, speedin
### Extending Storybook’s webpack config
-To extend the above configuration, use the `webpackFinal` field of [`.storybook/main.js`](./overview.md#configure-story-rendering).
+To extend the above configuration, use the `webpackFinal` field of [`.storybook/main.js`](./index.md#configure-story-rendering).
The value should export a `function`, which will receive the default config as its first argument. The second argument is an options object from Storybook, and this will have information about where config came from, whether we're in production or development mode, etc.
@@ -159,7 +159,7 @@ If you're using a non-standard Storybook config directory, you should put `main.
### Using your existing config
-Suppose you have an existing webpack config for your project and want to reuse this app's configuration. In that case, you can import your main webpack config into Storybook's [`.storybook/main.js`](./overview.md#configure-story-rendering) and merge both:
+Suppose you have an existing webpack config for your project and want to reuse this app's configuration. In that case, you can import your main webpack config into Storybook's [`.storybook/main.js`](./index.md#configure-story-rendering) and merge both:
The following code snippet shows how you can replace the loaders from Storybook with the ones from your app's `webpack.config.js`:
diff --git a/docs/contribute/code.md b/docs/contribute/code.md
index 1ce7726caf3e..b30f3fe72aa9 100644
--- a/docs/contribute/code.md
+++ b/docs/contribute/code.md
@@ -106,7 +106,7 @@ When you're done coding, add documentation and tests as appropriate. That simpli
Adding a story or set of generic stories to our suite helps you test your work.
-Assuming you're working on one of the [Essential addons](../essentials/introduction.md), there's a chance that a complete set of stories already exists. Check the addon's `template/stories` directory that documents how it's supposed to work and add your stories there.
+Assuming you're working on one of the [Essential addons](../essentials/index.md), there's a chance that a complete set of stories already exists. Check the addon's `template/stories` directory that documents how it's supposed to work and add your stories there.
If you're modifying something related to a specific renderer (e.g., React, Vue, etc.), it will also have a similar `template/stories` directory in which you'll need to add your stories.
diff --git a/docs/contribute/framework.md b/docs/contribute/framework.md
index f3125080a4b9..a29ab99abc3b 100644
--- a/docs/contribute/framework.md
+++ b/docs/contribute/framework.md
@@ -2,7 +2,7 @@
title: 'Contributing a Storybook framework'
---
-A Storybook framework is a node package that enables out-of-the-box support for either a metaframework (Next.js, NuxtJS, SvelteKit) or a combination of [builder](../builders/overview) (Webpack, Vite) plus renderer (React, Angular, Vue, web components, etc).
+A Storybook framework is a node package that enables out-of-the-box support for either a metaframework (Next.js, NuxtJS, SvelteKit) or a combination of [builder](../builders/index.md) (Webpack, Vite) plus renderer (React, Angular, Vue, web components, etc).
For metaframeworks, the Storybook framework also takes care of additional configuration necessary to make Storybook behave similarly to apps generated by the metaframework. For example, `@storybook/nextjs` [recreates or mocks a number of features of Next.js apps](https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/README.md#supported-features) inside Storybook.
@@ -130,7 +130,7 @@ The [preset API](../addons/writing-presets) is where you will configure the Stor
#### `preview.js` ([example](https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/src/preview.tsx))
-The (optional) [preview API](../configure/overview#configure-story-rendering) is where you configure the rendering of stories, such as global decorators or initializing some runtime config needed for your framework to behave as expected. If your framework requires this file, note that you also need to [configure the `previewAnnotations` in `preset.js`](https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/src/preset.ts#L71-L74).
+The (optional) [preview API](../configure/index.md#configure-story-rendering) is where you configure the rendering of stories, such as global decorators or initializing some runtime config needed for your framework to behave as expected. If your framework requires this file, note that you also need to [configure the `previewAnnotations` in `preset.js`](https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/src/preset.ts#L71-L74).
#### `types.ts` ([example](https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/src/types.ts))
diff --git a/docs/contribute/how-to-reproduce.md b/docs/contribute/how-to-reproduce.md
index 90036ca37e89..95d81b691903 100644
--- a/docs/contribute/how-to-reproduce.md
+++ b/docs/contribute/how-to-reproduce.md
@@ -54,7 +54,7 @@ Install and configure any Storybook [addons](https://storybook.js.org/addons/) t
## Add stories
-Any Storybook reproduction wouldn't be complete without [stories](../writing-stories/introduction.md). To help fix your issue faster, we encourage you to include the minimum amount of stories that will replicate your issue.
+Any Storybook reproduction wouldn't be complete without [stories](../writing-stories/index.md). To help fix your issue faster, we encourage you to include the minimum amount of stories that will replicate your issue.
## Host
diff --git a/docs/contribute/how-to-contribute.md b/docs/contribute/index.md
similarity index 94%
rename from docs/contribute/how-to-contribute.md
rename to docs/contribute/index.md
index 35faaa534d55..a49fbeb2fc1a 100644
--- a/docs/contribute/how-to-contribute.md
+++ b/docs/contribute/index.md
@@ -1,5 +1,6 @@
---
title: 'How to contribute'
+hideRendererSelector: true
---
Storybook is a community-oriented open source project that welcomes contributions. Some of our most popular features started with a developer wanting to solve a problem for themselves.
@@ -15,7 +16,7 @@ In the interest of fostering an open and welcoming environment, we as contributo
- [**Frameworks**](./framework.md) to get started with a new framework
- [**Documentation**](./documentation-updates.md) for documentation improvements, typos, and clarifications
- [**Examples**](./new-snippets.md) for new snippets and examples
-- [**Addons**](./../addons/introduction.md) for new addons
+- [**Addons**](./../addons/index.md) for new addons
## Not sure how to get started?
diff --git a/docs/essentials/actions.md b/docs/essentials/actions.md
index 916488f7dcaf..090bc4f606b9 100644
--- a/docs/essentials/actions.md
+++ b/docs/essentials/actions.md
@@ -72,7 +72,7 @@ If you need more granular control over which `argTypes` are matched, you can adj
-If you're generating argTypes with another addon (like [docs](../writing-docs/introduction.md), which is the common behavior), ensure the actions addon **AFTER** the other addon. You can do this by listing it later in the addons registration code in [`.storybook/main.js`](../configure/overview.md#configure-story-rendering). This is default in [essentials](./introduction.md).
+If you're generating argTypes with another addon (like [docs](../writing-docs/index.md), which is the common behavior), ensure the actions addon **AFTER** the other addon. You can do this by listing it later in the addons registration code in [`.storybook/main.js`](../configure/index.md#configure-story-rendering). This is default in [essentials](./index.md).
diff --git a/docs/essentials/backgrounds.md b/docs/essentials/backgrounds.md
index f6b286ec350b..3c295a12b360 100644
--- a/docs/essentials/backgrounds.md
+++ b/docs/essentials/backgrounds.md
@@ -15,7 +15,7 @@ The backgrounds toolbar addon allows you to set the background color in which th
By default, the backgrounds toolbar includes a light and dark background.
-But you're not restricted to these backgrounds, you can configure your own set of colors with the `parameters.backgrounds` [parameter](../writing-stories/parameters.md) in your [`.storybook/preview.js`](../configure/overview.md#configure-story-rendering):
+But you're not restricted to these backgrounds, you can configure your own set of colors with the `parameters.backgrounds` [parameter](../writing-stories/parameters.md) in your [`.storybook/preview.js`](../configure/index.md#configure-story-rendering):
diff --git a/docs/essentials/controls.md b/docs/essentials/controls.md
index 7f8da1974127..131a38be6b8c 100644
--- a/docs/essentials/controls.md
+++ b/docs/essentials/controls.md
@@ -264,7 +264,7 @@ Controls supports the following configuration [parameters](../writing-stories/pa
Since Controls is built on the same engine as Storybook Docs, it can also show property documentation alongside your controls using the expanded parameter (defaults to false). This means you embed a complete [`Controls`](../api/doc-block-controls.md) doc block in the controls panel. The description and default value rendering can be [customized](#fully-custom-args) in the same way as the doc block.
-To enable expanded mode globally, add the following to [`.storybook/preview.js`](../configure/overview.md#configure-story-rendering):
+To enable expanded mode globally, add the following to [`.storybook/preview.js`](../configure/index.md#configure-story-rendering):
diff --git a/docs/essentials/introduction.md b/docs/essentials/index.md
similarity index 94%
rename from docs/essentials/introduction.md
rename to docs/essentials/index.md
index 4e89178bad28..4cddae864fee 100644
--- a/docs/essentials/introduction.md
+++ b/docs/essentials/index.md
@@ -1,5 +1,6 @@
---
title: 'Essential addons'
+hideRendererSelector: true
---
A major strength of Storybook are [addons](https://storybook.js.org/addons) that extend Storybook’s UI and behavior. Storybook ships by default with a set of “essential” addons that add to the initial user experience. There are many third-party addons as well as “official” addons developed by the Storybook core team.
@@ -7,7 +8,7 @@ A major strength of Storybook are [addons](https://storybook.js.org/addons) that
- [Actions](./actions.md)
- [Backgrounds](./backgrounds.md)
- [Controls](./controls.md)
-- [Docs](../writing-docs/introduction.md)
+- [Docs](../writing-docs/index.md)
- [Highlight](./highlight.md)
- [Measure & outline](./measure-and-outline.md)
- [Toolbars & globals](./toolbars-and-globals.md)
@@ -31,7 +32,7 @@ However, if you intend to install the Essentials addon manually into an existing
-Update your Storybook configuration (in [`.storybook/main.js|ts`](../configure/overview.md#configure-story-rendering)) to include the Essentials addon.
+Update your Storybook configuration (in [`.storybook/main.js|ts`](../configure/index.md#configure-story-rendering)) to include the Essentials addon.
@@ -48,7 +49,7 @@ Update your Storybook configuration (in [`.storybook/main.js|ts`](../configure/o
Essentials is "zero-config”. It comes with a recommended configuration out of the box.
-If you need to reconfigure any of the [individual Essentials addons](https://storybook.js.org/addons/tag/essentials), install them manually by following the installation instructions, and depending on the method of choice, register them in your Storybook configuration file (i.e., [`.storybook/main.js|ts`](../configure/overview.md#configure-story-rendering)) and adjust the configuration to suit your needs. For example:
+If you need to reconfigure any of the [individual Essentials addons](https://storybook.js.org/addons/tag/essentials), install them manually by following the installation instructions, and depending on the method of choice, register them in your Storybook configuration file (i.e., [`.storybook/main.js|ts`](../configure/index.md#configure-story-rendering)) and adjust the configuration to suit your needs. For example:
@@ -102,7 +103,7 @@ When you start Storybook, your custom configuration will override the default.
### Disabling addons
-If you need to disable any of the Essential's addons, you can do it by changing your [`.storybook/main.js`](../configure/overview.md#configure-story-rendering) file.
+If you need to disable any of the Essential's addons, you can do it by changing your [`.storybook/main.js`](../configure/index.md#configure-story-rendering) file.
For example, if you wanted to disable the [backgrounds addon](./backgrounds.md), you would apply the following change to your Storybook configuration:
diff --git a/docs/essentials/interactions.md b/docs/essentials/interactions.md
index 4ec0fe2314d5..9cf81f78eeff 100644
--- a/docs/essentials/interactions.md
+++ b/docs/essentials/interactions.md
@@ -32,7 +32,7 @@ Run the following command to install the interactions addon and related dependen
-Next, update [`.storybook/main.js|ts`](../configure/overview.md#configure-story-rendering) to the following:
+Next, update [`.storybook/main.js|ts`](../configure/index.md#configure-story-rendering) to the following:
@@ -47,12 +47,7 @@ Next, update [`.storybook/main.js|ts`](../configure/overview.md#configure-story-
-<<<<<<< HEAD
-💡 Make sure to list `@storybook/addon-interactions` **after** the [`@storybook/addon-essentials`](./introduction.md) addon.
-=======
-Make sure to list `@storybook/addon-interactions` **after** the [`@storybook/addon-essentials`](./introduction.md) addon (or the [`@storybook/addon-actions`](./actions.md) if you've installed it individually).
-
-> > > > > > > next
+Make sure to list `@storybook/addon-interactions` **after** the [`@storybook/addon-essentials`](./index.md) addon (or the [`@storybook/addon-actions`](./actions.md) if you've installed it individually).
diff --git a/docs/essentials/themes.md b/docs/essentials/themes.md
index cdb199452ef0..fbe2384b3b01 100644
--- a/docs/essentials/themes.md
+++ b/docs/essentials/themes.md
@@ -8,7 +8,7 @@ Storybook's [Themes](https://github.com/storybookjs/storybook/tree/next/code/add
## Theme decorators
-To make your themes accessible to your stories, `@storybook/addon-themes` exposes three [decorators](https://storybook.js.org/docs/react/writing-stories/decorators) for different methods of theming.
+To make your themes accessible to your stories, `@storybook/addon-themes` exposes three [decorators](https://storybook.js.org/docs/writing-stories/decorators) for different methods of theming.
### JSX providers
diff --git a/docs/essentials/toolbars-and-globals.md b/docs/essentials/toolbars-and-globals.md
index 6f7e2916daa0..ff169ff91aa8 100644
--- a/docs/essentials/toolbars-and-globals.md
+++ b/docs/essentials/toolbars-and-globals.md
@@ -16,7 +16,7 @@ When the globals change, the story re-renders, and the decorators rerun with the
## Global types and the toolbar annotation
-Storybook has a simple, declarative syntax for configuring toolbar menus. In your [`.storybook/preview.js|ts`](../configure/overview.md#configure-story-rendering), you can add your own toolbars by creating `globalTypes` with a `toolbar` annotation:
+Storybook has a simple, declarative syntax for configuring toolbar menus. In your [`.storybook/preview.js|ts`](../configure/index.md#configure-story-rendering), you can add your own toolbars by creating `globalTypes` with a `toolbar` annotation:
@@ -31,7 +31,7 @@ Storybook has a simple, declarative syntax for configuring toolbar menus. In you
-As globals are _global_ you can _only_ set `globalTypes` in [`.storybook/preview.js|ts`](../configure/overview.md#configure-story-rendering).
+As globals are _global_ you can _only_ set `globalTypes` in [`.storybook/preview.js|ts`](../configure/index.md#configure-story-rendering).
@@ -43,7 +43,7 @@ We have a `global` implemented. Let's wire it up! We can consume our new `theme`
-For example, suppose you are using [`styled-components`](https://styled-components.com/). You can add a theme provider decorator to your [`.storybook/preview.js|ts`](../configure/overview.md#configure-story-rendering) config:
+For example, suppose you are using [`styled-components`](https://styled-components.com/). You can add a theme provider decorator to your [`.storybook/preview.js|ts`](../configure/index.md#configure-story-rendering) config:
@@ -60,7 +60,7 @@ For example, suppose you are using [`styled-components`](https://styled-componen
-For example, suppose you are using [`Vuetify`](https://vuetifyjs.com/en/). You can add a theme provider decorator to your [`.storybook/preview.js|ts`](../configure/overview.md#configure-story-rendering) config:
+For example, suppose you are using [`Vuetify`](https://vuetifyjs.com/en/). You can add a theme provider decorator to your [`.storybook/preview.js|ts`](../configure/index.md#configure-story-rendering) config:
@@ -77,7 +77,7 @@ For example, suppose you are using [`Vuetify`](https://vuetifyjs.com/en/). You c
-For example, suppose you are using [`Angular Material`](https://material.angular.io/). You can add a theme provider decorator to your [`.storybook/preview.js|ts`](../configure/overview.md#configure-story-rendering) config:
+For example, suppose you are using [`Angular Material`](https://material.angular.io/). You can add a theme provider decorator to your [`.storybook/preview.js|ts`](../configure/index.md#configure-story-rendering) config:
@@ -93,7 +93,7 @@ For example, suppose you are using [`Angular Material`](https://material.angular
-Depending on your framework and theming library, you can extend your [`.storybook/preview.js|ts`](../configure/overview.md#configure-story-rendering) and provide a decorator to load the theme. For example:
+Depending on your framework and theming library, you can extend your [`.storybook/preview.js|ts`](../configure/index.md#configure-story-rendering) and provide a decorator to load the theme. For example:
@@ -114,7 +114,7 @@ So far, we've managed to create and consume a global inside Storybook.
Now let's take a look at a more complex example. Let's suppose we wanted to implement a new global called **locale** for internationalization, which shows a flag on the right side of the toolbar.
-In your [`.storybook/preview.js|ts`](../configure/overview.md#configure-story-rendering), add the following:
+In your [`.storybook/preview.js|ts`](../configure/index.md#configure-story-rendering), add the following:
diff --git a/docs/essentials/viewport.md b/docs/essentials/viewport.md
index d2742b73b81b..dd321d9f30ec 100644
--- a/docs/essentials/viewport.md
+++ b/docs/essentials/viewport.md
@@ -17,7 +17,7 @@ The Viewport toolbar item allows you to adjust the dimensions of the iframe your
Out of the box, the Viewport addon offers you a standard set of viewports that you can use.
-If you want to change the default set of viewports, you can set the global `parameters.viewport` [parameter](../writing-stories/parameters.md) in your [`.storybook/preview.js`](../configure/overview.md#configure-story-rendering):
+If you want to change the default set of viewports, you can set the global `parameters.viewport` [parameter](../writing-stories/parameters.md) in your [`.storybook/preview.js`](../configure/index.md#configure-story-rendering):
@@ -32,12 +32,12 @@ If you want to change the default set of viewports, you can set the global `para
The viewport global can take an object with the following keys:
-| Field | Type | Description | Default Value |
+| Field | Type | Description | Default Value |
| ---------------------- | :-----: | :-------------------------------------------------------: | :------------: |
-| **defaultViewport** | String | Sets the default viewport | `'responsive'` |
-| **defaultOrientation** | String | Sets the default orientation (e.g. portrait or landscape) | `'portrait'` |
-| **disable** | Boolean | Disables the viewport | N/A |
-| **viewports** | Object | The configuration object for the viewport | `{}` |
+| **defaultViewport** | String | Sets the default viewport | `'responsive'` |
+| **defaultOrientation** | String | Sets the default orientation (e.g. portrait or landscape) | `'portrait'` |
+| **disable** | Boolean | Disables the viewport | N/A |
+| **viewports** | Object | The configuration object for the viewport | `{}` |
The viewports object needs the following keys:
@@ -51,7 +51,7 @@ The viewports object needs the following keys:
By default, Storybook uses a [minimal set of viewports](https://github.com/storybookjs/storybook/blob/next/code/addons/viewport/src/defaults.ts#L167) to get you started. But you're not restricted to these. The addon offers a more granular list of devices that you can use.
-Change your [`.storybook/preview.js`](../configure/overview.md#configure-story-rendering) to the following:
+Change your [`.storybook/preview.js`](../configure/index.md#configure-story-rendering) to the following:
@@ -70,7 +70,7 @@ See [here](https://github.com/storybookjs/storybook/blob/master/addons/viewport/
### Add new devices
-If you have either a specific viewport or a list of viewports that you need to use, you can modify your [`.storybook/preview.js`](../configure/overview.md#configure-story-rendering) file and include them:
+If you have either a specific viewport or a list of viewports that you need to use, you can modify your [`.storybook/preview.js`](../configure/index.md#configure-story-rendering) file and include them:
diff --git a/docs/faq.md b/docs/faq.md
index 387986d9cfbc..580501e8ecd3 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -226,7 +226,7 @@ We're working on overcoming this limitation, and soon you'll be able to use them
Storybook does not work unless you have at least one local story (or docs page) defined in your project. In this context, local means a `.stories.*` or `.mdx` file that is referenced in your project's `.storybook/main.js` config.
-If you're in a [Storybook composition](https://storybook.js.org/docs/react/sharing/storybook-composition) scenario, where you have multiple Storybooks, and want to have an extra Storybook with no stories of its own, that serves as a "glue" for all the other Storybooks in a project for demo/documentation purposes, you can do the following steps:
+If you're in a [Storybook composition](https://storybook.js.org/docs/sharing/storybook-composition) scenario, where you have multiple Storybooks, and want to have an extra Storybook with no stories of its own, that serves as a "glue" for all the other Storybooks in a project for demo/documentation purposes, you can do the following steps:
Introduce a single `.mdx` docs page (addon-essentials or addon-docs required), that serves as an Introduction page, like so:
@@ -276,7 +276,7 @@ We're only covering versions 5.3 and 5.0 as they were important milestones for S
| | What's a story | [See current documentation](./get-started/whats-a-story.md) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/guides) |
| | Browse Stories | [See current documentation](./get-started/browse-stories.md) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/blob/release/5.0/docs/src/pages/guides) |
| | Setup | [See current documentation](./get-started/setup.md) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/guides) |
-| Write stories | Introduction | [See current documentation](./writing-stories/introduction.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
+| Write stories | Introduction | [See current documentation](./writing-stories/index.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
| | Parameters | [See current documentation](./writing-stories/parameters.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories/index.md#parameters) | Non existing feature or undocumented |
| | Decorators | [See current documentation](./writing-stories/decorators.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories/index.md#decorators) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories/index.md#using-decorators) |
| | Naming components and hierarchy | [See current documentation](./writing-stories/naming-components-and-hierarchy.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
@@ -301,10 +301,10 @@ We're only covering versions 5.3 and 5.0 as they were important milestones for S
| | Viewport | [See current documentation](./essentials/viewport.md) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/addons/viewport) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/addons/viewport) |
| | Backgrounds | [See current documentation](./essentials/backgrounds.md) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/addons/backgrounds) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/addons/backgrounds) |
| | Toolbars and globals | [See current documentation](./essentials/toolbars-and-globals.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/toolbar-guide) | Non existing feature or undocumented |
-| Configure | Overview | [See current documentation](./configure/overview.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/overview) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
+| Configure | Overview | [See current documentation](./configure/index.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/overview) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
| | Integration/Frameworks | [See current documentation](./configure/frameworks.md) | Non existing feature or undocumented | Non existing feature or undocumented |
| | Integration/Framework support for frameworks | [See current documentation](./configure/frameworks-feature-support.md) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Integration/Babel | [See current documentation](./configure/babel.md) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/custom-babel-config) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/custom-babel-config) |
+| | Integration/Compilers | [See current documentation](./configure/compilers.md) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/custom-babel-config) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/custom-babel-config) |
| | Integration/Typescript | [See current documentation](./configure/typescript.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/typescript-config) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/typescript-config) |
| | Integration/Styling and CSS | [See current documentation](./configure/styling-and-css.md) | See versioned documentation | See versioned documentation |
| | Integration/Images and assets | [See current documentation](./configure/images-and-assets.md) | See versioned documentation | See versioned documentation |
@@ -314,11 +314,11 @@ We're only covering versions 5.3 and 5.0 as they were important milestones for S
| | User Interface/Theming | [See current documentation](./configure/theming.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/theming) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/theming) |
| | User Interface/Sidebar & URLS | [See current documentation](./configure/sidebar-and-urls.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/options-parameter) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/options-parameter) |
| | Environment variables | [See current documentation](./configure/environment-variables.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/env-vars) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/env-vars) |
-| Builders | Introduction | [See current documentation](./builders/overview.md) | Non existing feature or undocumented | Non existing feature or undocumented |
+| Builders | Introduction | [See current documentation](./builders/index.md) | Non existing feature or undocumented | Non existing feature or undocumented |
| | Vite | [See current documentation](./builders/vite.md) | Non existing feature or undocumented | Non existing feature or undocumented |
| | Webpack | [See current documentation](./builders/webpack.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/custom-webpack-config/index.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/custom-webpack-config/index.md) |
| | Builder API | [See current documentation](./builders/builder-api.md) | Non existing feature or undocumented | Non existing feature or undocumented |
-| Addons | Introduction | [See current documentation](./addons/introduction.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/writing-addons) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/writing-addons) |
+| Addons | Introduction | [See current documentation](./addons/index.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/writing-addons) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/writing-addons) |
| | Install addons | [See current documentation](./addons/install-addons.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/using-addons/) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/using-addons/) |
| | Writing Addons | [See current documentation](./addons/writing-addons.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/writing-addons) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/writing-addons) |
| | Writing Presets | [See current documentation](./addons/writing-presets.md) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/presets/writing-presets) | Non existing feature or undocumented |
@@ -364,6 +364,7 @@ We're only covering versions 5.3 and 5.0 as they were important milestones for S
| | `main.js` configuration/previewHead | [See current documentation](./api/main-config-preview-head.md) | Non existing feature or undocumented | Non existing feature or undocumented |
| | `main.js` configuration/refs | [See current documentation](./api/main-config-refs.md) | Non existing feature or undocumented | Non existing feature or undocumented |
| | `main.js` configuration/staticDirs | [See current documentation](./api/main-config-static-dirs.md) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/swc | [See current documentation](./api/main-config-swc.md) | Non existing feature or undocumented | Non existing feature or undocumented |
| | `main.js` configuration/typescript | [See current documentation](./api/main-config-typescript.md) | Non existing feature or undocumented | Non existing feature or undocumented |
| | `main.js` configuration/viteFinal | [See current documentation](./api/main-config-vite-final.md) | Non existing feature or undocumented | Non existing feature or undocumented |
| | `main.js` configuration/webpackFinal | [See current documentation](./api/main-config-webpack-final.md) | Non existing feature or undocumented | Non existing feature or undocumented |
@@ -506,7 +507,7 @@ import type { ComponentStory, ComponentMeta } from '@storybook/react';
const StoryMeta: ComponentMeta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/react/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Button',
diff --git a/docs/frameworks.js b/docs/frameworks.js
index 39ecf0097495..8ce9fe8e62b2 100644
--- a/docs/frameworks.js
+++ b/docs/frameworks.js
@@ -18,7 +18,7 @@ module.exports = {
{
name: 'Docs',
unsupported: [],
- path: 'writing-docs/introduction',
+ path: 'writing-docs',
},
{
name: 'Viewport',
diff --git a/docs/get-started/browse-stories.md b/docs/get-started/browse-stories.md
index 391da5320dad..618c444e46ae 100644
--- a/docs/get-started/browse-stories.md
+++ b/docs/get-started/browse-stories.md
@@ -1,5 +1,6 @@
---
title: 'Browse Stories'
+hideRendererSelector: true
---
Last chapter, we learned that stories correspond with discrete component states. This chapter demonstrates how to use Storybook as a workshop for building components.
@@ -19,7 +20,6 @@ Navigate between stories by clicking on them in the sidebar. Try the sidebar sea
Or use keyboard shortcuts. Click on the Storybook's menu to see the list of shortcuts available.
-
![Storybook keyboard shortcuts examples](./storybook-keyboard-shortcuts.png)
## Toolbar
@@ -40,7 +40,7 @@ Storybook ships with time-saving tools built-in. The toolbar contains tools that
/>
-The [“Docs”](../writing-docs/introduction.md) page displays auto-generated documentation for components (inferred from the source code). Usage documentation is helpful when sharing reusable components with your team, for example, in an application.
+The [“Docs”](../writing-docs/index.md) page displays auto-generated documentation for components (inferred from the source code). Usage documentation is helpful when sharing reusable components with your team, for example, in an application.
![Storybook keyboard shortcuts examples](./mdx-example.png)
@@ -63,7 +63,7 @@ Addons are plugins that extend Storybook's core functionality. You can find them
/>
-Storybook is extensible. Our rich ecosystem of addons helps you test, document, and optimize your stories. You can also create an addon to satisfy your workflow requirements. Read more in the [addons section](../addons/introduction.md).
+Storybook is extensible. Our rich ecosystem of addons helps you test, document, and optimize your stories. You can also create an addon to satisfy your workflow requirements. Read more in the [addons section](../addons/index.md).
In the next chapter, we'll get your components rendering in Storybook so you can use it to supercharge component development.
diff --git a/docs/get-started/conclusion.md b/docs/get-started/conclusion.md
index 074d4dd09a48..83880dbc11bb 100644
--- a/docs/get-started/conclusion.md
+++ b/docs/get-started/conclusion.md
@@ -1,11 +1,12 @@
---
title: 'Conclusion'
+hideRendererSelector: true
---
Congratulations! You learned the basics. Storybook is the most popular tool for UI component development and documentation. You’ll be able to transfer these skills to thousands of companies that use Storybook to build UIs including GitHub, Airbnb, and Stripe.
If you’d like to learn workflows for building app UIs with Storybook, check out our in-depth guides over at the [tutorials](https://storybook.js.org/tutorials/) page. Continue reading for detailed information on how to use Storybook APIs.
-- [How to write stories](../writing-stories/introduction.md)
-- [How to document components and design systems](../writing-docs/introduction.md)
+- [How to write stories](../writing-stories/index.md)
+- [How to document components and design systems](../writing-docs/index.md)
- [View example Storybooks from leading companies](https://storybook.js.org/showcase)
diff --git a/docs/get-started/install.md b/docs/get-started/install.md
index beceee7c0401..2d01dfd1a0f2 100644
--- a/docs/get-started/install.md
+++ b/docs/get-started/install.md
@@ -2,8 +2,6 @@
title: 'Install Storybook'
---
-
-
Use the Storybook CLI to install it in a single command. Run this inside your _existing project’s_ root directory:
@@ -18,12 +16,6 @@ Use the Storybook CLI to install it in a single command. Run this inside your _e
-
-
-Check the [Troubleshooting section](#troubleshooting) below for guidance on how to solve it.
-
-
-
storybook init is not made for empty projects
@@ -49,6 +41,8 @@ The command above will make the following changes to your local environment:
- 📝 Add some boilerplate stories to get you started.
- 📡 Set up telemetry to help us improve Storybook. Read more about it [here](../configure/telemetry.md).
+
+
## Run the Setup Wizard
diff --git a/docs/get-started/setup.md b/docs/get-started/setup.md
index c454a7648edc..5bc7d986e822 100644
--- a/docs/get-started/setup.md
+++ b/docs/get-started/setup.md
@@ -57,7 +57,7 @@ Don't see the tool that you're looking for? Check out the [styling and css](../c
## Configure Storybook for your stack
-Storybook comes with a permissive [default configuration](../configure/overview.md). It attempts to customize itself to fit your setup. But it’s not foolproof.
+Storybook comes with a permissive [default configuration](../configure/index.md). It attempts to customize itself to fit your setup. But it’s not foolproof.
Your project may have additional requirements before components can be rendered in isolation. This warrants customizing configuration further. There are three broad categories of configuration you might need.
@@ -67,7 +67,7 @@ Your project may have additional requirements before components can be rendered
If you see errors on the CLI when you run the `yarn storybook` command, you likely need to make changes to Storybook’s build configuration. Here are some things to try:
- [Presets](../addons/addon-types.md) bundle common configurations for various technologies into Storybook. In particular, presets exist for Create React App and Ant Design.
-- Specify a custom [Babel configuration](../configure/babel.md#custom-babel-config) for Storybook. Storybook automatically tries to use your project’s config if it can.
+- Specify a custom [Babel configuration](../configure/compilers.md#babel) for Storybook. Storybook automatically tries to use your project’s config if it can.
- Adjust the [Webpack configuration](../builders/webpack.md) that Storybook uses. Try patching in your own configuration if needed.
@@ -86,7 +86,7 @@ If a particular story has a problem rendering, often it means your component exp
A common frontend pattern is for components to assume that they render in a specific “context” with parent components higher up the rendering hierarchy (for instance, theme providers).
-Use [decorators](../writing-stories/decorators.md) to “wrap” every story in the necessary context providers. The [`.storybook/preview.js`](../configure/overview.md#configure-story-rendering) file allows you to customize how components render in Canvas, the preview iframe. See how you can wrap every component rendered in Storybook with [Styled Components](https://styled-components.com/) `ThemeProvider`, [Vue's Fontawesome](https://github.com/FortAwesome/vue-fontawesome), or with an Angular theme provider component in the example below.
+Use [decorators](../writing-stories/decorators.md) to “wrap” every story in the necessary context providers. The [`.storybook/preview.js`](../configure/index.md#configure-story-rendering) file allows you to customize how components render in Canvas, the preview iframe. See how you can wrap every component rendered in Storybook with [Styled Components](https://styled-components.com/) `ThemeProvider`, [Vue's Fontawesome](https://github.com/FortAwesome/vue-fontawesome), or with an Angular theme provider component in the example below.
diff --git a/docs/get-started/whats-a-story.md b/docs/get-started/whats-a-story.md
index 5adfded2f947..8efc1b0e785e 100644
--- a/docs/get-started/whats-a-story.md
+++ b/docs/get-started/whats-a-story.md
@@ -1,5 +1,5 @@
---
-title: "What's a Story"
+title: "What's a story?"
---
A story captures the rendered state of a UI component. Developers write multiple stories per component that describe all the “interesting” states a component can support.
@@ -97,6 +97,6 @@ Stories are also helpful for checking that UI continues to look correct as you m
/>
-Checking component’s stories as you develop helps prevent accidental regressions. [Tools that integrate with Storybook can automate this](../writing-tests/introduction.md) for you.
+Checking component’s stories as you develop helps prevent accidental regressions. [Tools that integrate with Storybook can automate this](../writing-tests/index.md) for you.
Now that we’ve seen the basic anatomy of a story let’s see how we use Storybook’s UI to develop stories.
diff --git a/docs/get-started/why-storybook.md b/docs/get-started/why-storybook.md
index 1d0a47df3c37..c6a35d261daa 100644
--- a/docs/get-started/why-storybook.md
+++ b/docs/get-started/why-storybook.md
@@ -109,23 +109,23 @@ Most community members choose a [Component-Driven](https://www.componentdriven.o
When you write stories for components, you get a bunch of additional benefits for free.
-#### 📝 Develop UIs that are more durable
+**📝 Develop UIs that are more durable**
-Isolate components and pages and track their use cases as [stories](../writing-stories/introduction.md). Verify hard-to-reach edge cases of UI. Use addons to mock everything a component needs—context, API requests, device features, etc.
+Isolate components and pages and track their use cases as [stories](../writing-stories/index.md). Verify hard-to-reach edge cases of UI. Use addons to mock everything a component needs—context, API requests, device features, etc.
-#### ✅ Test UIs with less effort and no flakes
+**✅ Test UIs with less effort and no flakes**
Stories are a pragmatic, reproducible way of tracking UI states. Use them to spot-test the UI during development. Storybook offers built-in workflows for automated [Accessibility](../writing-tests/accessibility-testing.md), [Interaction](../writing-tests/interaction-testing.md), and [Visual](../writing-tests/visual-testing.md) testing. Or use stories as test cases by importing them into other JavaScript testing tools.
-#### 📚 Document UI for your team to reuse
+**📚 Document UI for your team to reuse**
-Storybook is the single source of truth for your UI. Stories index all your components and their various states, making it easy for your team to find and reuse existing UI patterns. Storybook also auto-generates [documentation](../writing-docs/introduction.md) from those stories.
+Storybook is the single source of truth for your UI. Stories index all your components and their various states, making it easy for your team to find and reuse existing UI patterns. Storybook also auto-generates [documentation](../writing-docs/index.md) from those stories.
-#### 📤 Share how the UI actually works
+**📤 Share how the UI actually works**
Stories show how UIs actually work, not just a picture of how they're supposed to work. That keeps everyone aligned on what's currently in production. [Publish Storybook](../sharing/publish-storybook.md) to get sign-off from teammates. Or [embed](../sharing/embed.md) them in wikis, Markdown, and Figma to streamline collaboration.
-#### 🚦Automate UI workflows
+**🚦Automate UI workflows**
Storybook is compatible with your continuous integration workflow. Add it as a CI step to automate user interface testing, review implementation with teammates, and get signoff from stakeholders.
diff --git a/docs/migration-guide.md b/docs/migration-guide.md
index ddd2d8faeab0..6f075c9904f2 100644
--- a/docs/migration-guide.md
+++ b/docs/migration-guide.md
@@ -69,7 +69,7 @@ In addition to the automated upgrades above, there are manual migrations that mi
### Upgrade MDX1 to MDX2
-Storybook 7 uses MDX2 by default for rendering [docs](./writing-docs/introduction.md). The upgrade from MDX1 to MDX2 is not fully automated, due to the large number of changes between versions. Fortunately, we have some tips to help make it a lot easier.
+Storybook 7 uses MDX2 by default for rendering [docs](./writing-docs/index.md). The upgrade from MDX1 to MDX2 is not fully automated, due to the large number of changes between versions. Fortunately, we have some tips to help make it a lot easier.
#### Automatically detect MDX2 errors with a CLI tool
@@ -183,7 +183,7 @@ npx storybook@latest migrate storiesof-to-csf --glob="src/**/*.stories.tsx"
### .stories.mdx to MDX+CSF
-Storybook 7 provides a cleaner [docs](./writing-docs/introduction.md) that defines manual documentation in pure MDX and stories in CSF, rather than the previous `.stories.mdx` hybrid approach, which is now deprecated. You can automatically convert your files using the following codemod (make sure to update the glob to fit your files):
+Storybook 7 provides a cleaner [docs](./writing-docs/index.md) that defines manual documentation in pure MDX and stories in CSF, rather than the previous `.stories.mdx` hybrid approach, which is now deprecated. You can automatically convert your files using the following codemod (make sure to update the glob to fit your files):
```sh
npx storybook@latest migrate mdx-to-csf --glob "src/**/*.stories.mdx"
diff --git a/docs/sharing/design-integrations.md b/docs/sharing/design-integrations.md
index ca0842f18b10..d85530557e9c 100644
--- a/docs/sharing/design-integrations.md
+++ b/docs/sharing/design-integrations.md
@@ -176,5 +176,5 @@ Integrate Adobe XD with Storybook using the [design addon](https://storybook.js.
Extend and customize Storybook by building an integration. Integrate with lower-level Storybook APIs or bootstrap an addon to customize Storybook's UI and behavior.
-- [Addon documentation](../addons/introduction.md)
+- [Addon documentation](../addons/index.md)
- [Create an addon tutorial](https://storybook.js.org/tutorials/create-an-addon/)
diff --git a/docs/sharing/index.md b/docs/sharing/index.md
new file mode 100644
index 000000000000..8e52d0b7a8cb
--- /dev/null
+++ b/docs/sharing/index.md
@@ -0,0 +1,12 @@
+---
+title: 'Sharing'
+hideRendererSelector: true
+---
+
+You have your components ready and tested. That's great! Now you want to make your component library available to your team or community to help them understand how they work. There are multiple ways you can do that. You can publish your Storybook to services like Chromatic, embed some of your stories in your own website, or use third party services like Figma.
+
+- [Publish](./publish-storybook.md)
+- [Embed](./embed.md)
+- [Design integrations](./design-integrations.md)
+- [Composition](./composition.md)
+- [Package Composition](./package-composition.md)
diff --git a/docs/sharing/package-composition.md b/docs/sharing/package-composition.md
index ba94040b90b0..96833ce02931 100644
--- a/docs/sharing/package-composition.md
+++ b/docs/sharing/package-composition.md
@@ -20,7 +20,7 @@ Composition happens automatically if the package [supports](#for-authors) it. Wh
### Set up
-If you want to configure how the composed Storybook behaves, you can disable the `ref` element in your [`.storybook/main.js`](../configure/overview.md#configure-story-rendering)
+If you want to configure how the composed Storybook behaves, you can disable the `ref` element in your [`.storybook/main.js`](../configure/index.md#configure-story-rendering)
diff --git a/docs/sharing/storybook-composition.md b/docs/sharing/storybook-composition.md
index a9e50a8c54d4..987d453e51df 100644
--- a/docs/sharing/storybook-composition.md
+++ b/docs/sharing/storybook-composition.md
@@ -17,7 +17,7 @@ You’ll see the composed Storybook’s stories in the sidebar alongside your ow
## Compose published Storybooks
-In your [`.storybook/main.js`](../configure/overview.md#configure-story-rendering) file add a `refs` field with information about the reference Storybook. Pass in a URL to a statically built Storybook.
+In your [`.storybook/main.js`](../configure/index.md#configure-story-rendering) file add a `refs` field with information about the reference Storybook. Pass in a URL to a statically built Storybook.
@@ -95,7 +95,7 @@ If you're using Storybook 6.4, or higher, you can optimize your composition via
-If you already enabled automatic code splitting via the [`storyStoreV7`](https://storybook.js.org/docs/react/builders/webpack#code-splitting), you won't need this flag as it will automatically generate the `index.json` file.
+If you already enabled automatic code splitting via the [`storyStoreV7`](https://storybook.js.org/docs/builders/webpack#code-splitting), you won't need this flag as it will automatically generate the `index.json` file.
diff --git a/docs/snippets/angular/build-storybook-production-mode.with-builder.js.mdx b/docs/snippets/angular/build-storybook-production-mode.with-builder.js.mdx
index 36fcc549b41c..326bfdb04741 100644
--- a/docs/snippets/angular/build-storybook-production-mode.with-builder.js.mdx
+++ b/docs/snippets/angular/build-storybook-production-mode.with-builder.js.mdx
@@ -1,6 +1,6 @@
```shell
# Builds Storybook with Angular's custom builder
-# See https://storybook.js.org/docs/angular/get-started/install
+# See https://storybook.js.org/docs/get-started/install
# to learn how to create the custom builder
ng run my-project:build-storybook
```
diff --git a/docs/snippets/angular/button-story-default-export.ts.mdx b/docs/snippets/angular/button-story-default-export.ts.mdx
index 1fde5eafe2ee..ba2fb09ff5b7 100644
--- a/docs/snippets/angular/button-story-default-export.ts.mdx
+++ b/docs/snippets/angular/button-story-default-export.ts.mdx
@@ -7,7 +7,7 @@ import { Button } from './button.component';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Button',
diff --git a/docs/snippets/angular/button-story-grouped.ts.mdx b/docs/snippets/angular/button-story-grouped.ts.mdx
index d7cb9f22491e..c3bc26b80c47 100644
--- a/docs/snippets/angular/button-story-grouped.ts.mdx
+++ b/docs/snippets/angular/button-story-grouped.ts.mdx
@@ -7,7 +7,7 @@ import { Button } from './button.component';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Design System/Atoms/Button',
diff --git a/docs/snippets/angular/button-story-hoisted.ts.mdx b/docs/snippets/angular/button-story-hoisted.ts.mdx
index 2f3ac8602bf5..cf3261257e3a 100644
--- a/docs/snippets/angular/button-story-hoisted.ts.mdx
+++ b/docs/snippets/angular/button-story-hoisted.ts.mdx
@@ -7,7 +7,7 @@ import { Button as ButtonComponent } from './button.component';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Design System/Atoms/Button',
diff --git a/docs/snippets/angular/button-story-rename-story.ts.mdx b/docs/snippets/angular/button-story-rename-story.ts.mdx
index 08c0c9a903e7..e71e1d6f5db1 100644
--- a/docs/snippets/angular/button-story-rename-story.ts.mdx
+++ b/docs/snippets/angular/button-story-rename-story.ts.mdx
@@ -14,7 +14,7 @@ type Story = StoryObj;
/*
*👇 Render functions are a framework specific feature to allow you control on how the component renders.
- * See https://storybook.js.org/docs/angular/api/csf
+ * See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary: Story = {
diff --git a/docs/snippets/angular/button-story-with-addon-example.ts.mdx b/docs/snippets/angular/button-story-with-addon-example.ts.mdx
index cfafc7520598..4515c118ae9b 100644
--- a/docs/snippets/angular/button-story-with-addon-example.ts.mdx
+++ b/docs/snippets/angular/button-story-with-addon-example.ts.mdx
@@ -7,7 +7,7 @@ import { Button } from './button.component';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Button',
@@ -25,7 +25,7 @@ type Story = StoryObj;
/*
*👇 Render functions are a framework specific feature to allow you control on how the component renders.
- * See https://storybook.js.org/docs/angular/api/csf
+ * See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Basic: Story = {
diff --git a/docs/snippets/angular/button-story-with-emojis.ts.mdx b/docs/snippets/angular/button-story-with-emojis.ts.mdx
index b89137122e33..4f42ba5a3d37 100644
--- a/docs/snippets/angular/button-story-with-emojis.ts.mdx
+++ b/docs/snippets/angular/button-story-with-emojis.ts.mdx
@@ -14,7 +14,7 @@ type Story = StoryObj;
/*
*👇 Render functions are a framework specific feature to allow you control on how the component renders.
- * See https://storybook.js.org/docs/angular/api/csf
+ * See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary: Story = {
diff --git a/docs/snippets/angular/button-story-with-parameters.ts.mdx b/docs/snippets/angular/button-story-with-parameters.ts.mdx
index a58321591b37..8cbd9e76fec5 100644
--- a/docs/snippets/angular/button-story-with-parameters.ts.mdx
+++ b/docs/snippets/angular/button-story-with-parameters.ts.mdx
@@ -7,7 +7,7 @@ import { Button } from './button.component';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Button',
diff --git a/docs/snippets/angular/button-story.ts.mdx b/docs/snippets/angular/button-story.ts.mdx
index 4afae9406a3a..3805e34f9615 100644
--- a/docs/snippets/angular/button-story.ts.mdx
+++ b/docs/snippets/angular/button-story.ts.mdx
@@ -14,7 +14,7 @@ type Story = StoryObj;
/*
*👇 Render functions are a framework specific feature to allow you control on how the component renders.
- * See https://storybook.js.org/docs/angular/api/csf
+ * See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary: Story = {
diff --git a/docs/snippets/angular/checkbox-story-grouped.ts.mdx b/docs/snippets/angular/checkbox-story-grouped.ts.mdx
index e99b39119e7d..c675e5804220 100644
--- a/docs/snippets/angular/checkbox-story-grouped.ts.mdx
+++ b/docs/snippets/angular/checkbox-story-grouped.ts.mdx
@@ -7,7 +7,7 @@ import { Checkbox } from './checkbox.component';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Design System/Atoms/Checkbox',
diff --git a/docs/snippets/angular/component-story-auto-title.csf3-story-ts.ts.mdx b/docs/snippets/angular/component-story-auto-title.csf3-story-ts.ts.mdx
index 904b9f7d1b95..5b756e34af14 100644
--- a/docs/snippets/angular/component-story-auto-title.csf3-story-ts.ts.mdx
+++ b/docs/snippets/angular/component-story-auto-title.csf3-story-ts.ts.mdx
@@ -7,7 +7,7 @@ import { MyComponent } from './MyComponent.component';
/**
* Story written in CSF 3.0 with auto title generation
- * See https://storybook.js.org/docs/angular/api/csf
+ * See https://storybook.js.org/docs/api/csf
* to learn more about it.
*/
const meta: Meta = {
diff --git a/docs/snippets/angular/component-story-figma-integration.ts.mdx b/docs/snippets/angular/component-story-figma-integration.ts.mdx
index 548298968037..84931c0e3026 100644
--- a/docs/snippets/angular/component-story-figma-integration.ts.mdx
+++ b/docs/snippets/angular/component-story-figma-integration.ts.mdx
@@ -5,7 +5,7 @@ import type { Meta, StoryObj } from '@storybook/angular/';
import { MyComponent } from './MyComponent.component';
-// More on default export: https://storybook.js.org/docs/angular/writing-stories/introduction#default-export
+// More on default export: https://storybook.js.org/docs/writing-stories/#default-export
const meta: Meta = {
component: MyComponent,
};
diff --git a/docs/snippets/angular/foo-bar-baz-story.ts.mdx b/docs/snippets/angular/foo-bar-baz-story.ts.mdx
index bba892a08542..ae0e503e1088 100644
--- a/docs/snippets/angular/foo-bar-baz-story.ts.mdx
+++ b/docs/snippets/angular/foo-bar-baz-story.ts.mdx
@@ -7,7 +7,7 @@ import { Foo } from './Foo.component';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Foo/Bar',
diff --git a/docs/snippets/angular/list-story-reuse-data.ts.mdx b/docs/snippets/angular/list-story-reuse-data.ts.mdx
index ce151c88fee7..3ff20f0d824a 100644
--- a/docs/snippets/angular/list-story-reuse-data.ts.mdx
+++ b/docs/snippets/angular/list-story-reuse-data.ts.mdx
@@ -28,7 +28,7 @@ type Story = StoryObj;
/*
*👇 Render functions are a framework specific feature to allow you control on how the component renders.
- * See https://storybook.js.org/docs/angular/api/csf
+ * See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const ManyItems: Story = {
diff --git a/docs/snippets/angular/list-story-template.ts.mdx b/docs/snippets/angular/list-story-template.ts.mdx
index b6e818e9c5c8..ec87766682d4 100644
--- a/docs/snippets/angular/list-story-template.ts.mdx
+++ b/docs/snippets/angular/list-story-template.ts.mdx
@@ -15,7 +15,7 @@ import { Unchecked } from './ListItem.stories';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'List',
@@ -33,7 +33,7 @@ type Story = StoryObj;
/*
*👇 Render functions are a framework specific feature to allow you control on how the component renders.
- * See https://storybook.js.org/docs/angular/api/csf
+ * See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
const ListTemplate: Story = {
diff --git a/docs/snippets/angular/list-story-unchecked.ts.mdx b/docs/snippets/angular/list-story-unchecked.ts.mdx
index b33477c61c4f..31b0be7651c7 100644
--- a/docs/snippets/angular/list-story-unchecked.ts.mdx
+++ b/docs/snippets/angular/list-story-unchecked.ts.mdx
@@ -15,7 +15,7 @@ import { Unchecked } from './ListItem.stories';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'List',
@@ -33,7 +33,7 @@ type Story = StoryObj;
/*
*👇 Render functions are a framework specific feature to allow you control on how the component renders.
- * See https://storybook.js.org/docs/angular/api/csf
+ * See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const OneItem: Story = {
diff --git a/docs/snippets/angular/loader-story.ts.mdx b/docs/snippets/angular/loader-story.ts.mdx
index b7f15ac294a2..1c9396e02dc9 100644
--- a/docs/snippets/angular/loader-story.ts.mdx
+++ b/docs/snippets/angular/loader-story.ts.mdx
@@ -26,7 +26,7 @@ type Story = StoryObj;
/*
*👇 Render functions are a framework specific feature to allow you control on how the component renders.
- * See https://storybook.js.org/docs/angular/api/csf
+ * See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary: Story = {
diff --git a/docs/snippets/angular/login-form-with-play-function.ts.mdx b/docs/snippets/angular/login-form-with-play-function.ts.mdx
index a5df81fb0f25..b420a284459d 100644
--- a/docs/snippets/angular/login-form-with-play-function.ts.mdx
+++ b/docs/snippets/angular/login-form-with-play-function.ts.mdx
@@ -17,7 +17,7 @@ type Story = StoryObj;
export const EmptyForm: Story = {};
/*
- * See https://storybook.js.org/docs/angular/writing-stories/play-function#working-with-the-canvas
+ * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas
* to learn more about using the canvasElement to query the DOM
*/
export const FilledForm: Story = {
@@ -29,7 +29,7 @@ export const FilledForm: Story = {
await userEvent.type(canvas.getByTestId('password'), 'a-random-password');
- // See https://storybook.js.org/docs/angular/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
+ // See https://storybook.js.org/docs/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
await userEvent.click(canvas.getByRole('button'));
// 👇 Assert DOM structure
diff --git a/docs/snippets/angular/my-component-play-function-alt-queries.ts.mdx b/docs/snippets/angular/my-component-play-function-alt-queries.ts.mdx
index 5cf997597d4c..71ce4f46cb7e 100644
--- a/docs/snippets/angular/my-component-play-function-alt-queries.ts.mdx
+++ b/docs/snippets/angular/my-component-play-function-alt-queries.ts.mdx
@@ -15,14 +15,14 @@ export default meta;
type Story = StoryObj;
/*
- * See https://storybook.js.org/docs/angular/writing-stories/play-function#working-with-the-canvas
+ * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas
* to learn more about using the canvasElement to query the DOM
*/
export const ExampleWithRole: Story = {
play: async ({ canvasElement }) => {
const canvas = within(canvasElement);
- // See https://storybook.js.org/docs/angular/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
+ // See https://storybook.js.org/docs/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
await userEvent.click(canvas.getByRole('button', { name: / button label/i }));
},
};
diff --git a/docs/snippets/angular/my-component-play-function-composition.ts.mdx b/docs/snippets/angular/my-component-play-function-composition.ts.mdx
index 04846bc51a1e..62c481ea1753 100644
--- a/docs/snippets/angular/my-component-play-function-composition.ts.mdx
+++ b/docs/snippets/angular/my-component-play-function-composition.ts.mdx
@@ -15,7 +15,7 @@ export default meta;
type Story = StoryObj;
/*
- * See https://storybook.js.org/docs/angular/writing-stories/play-function#working-with-the-canvas
+ * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas
* to learn more about using the canvasElement to query the DOM
*/
export const FirstStory: Story = {
diff --git a/docs/snippets/angular/my-component-play-function-query-findby.ts.mdx b/docs/snippets/angular/my-component-play-function-query-findby.ts.mdx
index 7e3d0c8972cd..86567e2fe4ec 100644
--- a/docs/snippets/angular/my-component-play-function-query-findby.ts.mdx
+++ b/docs/snippets/angular/my-component-play-function-query-findby.ts.mdx
@@ -15,7 +15,7 @@ export default meta;
type Story = StoryObj;
/*
- * See https://storybook.js.org/docs/angular/writing-stories/play-function#working-with-the-canvas
+ * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas
* to learn more about using the canvasElement to query the DOM
*/
export const AsyncExample: Story = {
diff --git a/docs/snippets/angular/my-component-play-function-waitfor.ts.mdx b/docs/snippets/angular/my-component-play-function-waitfor.ts.mdx
index d1b786e72899..f4fd2e9d6316 100644
--- a/docs/snippets/angular/my-component-play-function-waitfor.ts.mdx
+++ b/docs/snippets/angular/my-component-play-function-waitfor.ts.mdx
@@ -15,7 +15,7 @@ export default meta;
type Story = StoryObj;
/*
- * See https://storybook.js.org/docs/angular/writing-stories/play-function#working-with-the-canvas
+ * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas
* to learn more about using the canvasElement to query the DOM
*/
export const ExampleAsyncStory: Story = {
@@ -30,7 +30,7 @@ export const ExampleAsyncStory: Story = {
delay: 100,
});
- // See https://storybook.js.org/docs/angular/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
+ // See https://storybook.js.org/docs/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
const Submit = canvas.getByRole('button');
await userEvent.click(Submit);
diff --git a/docs/snippets/angular/my-component-play-function-with-clickevent.ts.mdx b/docs/snippets/angular/my-component-play-function-with-clickevent.ts.mdx
index fe4577f60347..68a2474115cf 100644
--- a/docs/snippets/angular/my-component-play-function-with-clickevent.ts.mdx
+++ b/docs/snippets/angular/my-component-play-function-with-clickevent.ts.mdx
@@ -15,14 +15,14 @@ export default meta;
type Story = StoryObj;
/*
- * See https://storybook.js.org/docs/angular/writing-stories/play-function#working-with-the-canvas
+ * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas
* to learn more about using the canvasElement to query the DOM
*/
export const ClickExample: Story = {
play: async ({ canvasElement }) => {
const canvas = within(canvasElement);
- // See https://storybook.js.org/docs/angular/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
+ // See https://storybook.js.org/docs/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
await userEvent.click(canvas.getByRole('button'));
},
};
@@ -31,7 +31,7 @@ export const FireEventExample: Story = {
play: async ({ canvasElement }) => {
const canvas = within(canvasElement);
- // See https://storybook.js.org/docs/angular/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
+ // See https://storybook.js.org/docs/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
await fireEvent.click(canvas.getByTestId('data-testid'));
},
};
diff --git a/docs/snippets/angular/my-component-play-function-with-delay.ts.mdx b/docs/snippets/angular/my-component-play-function-with-delay.ts.mdx
index 2715ac8fc647..1ddb3942fa11 100644
--- a/docs/snippets/angular/my-component-play-function-with-delay.ts.mdx
+++ b/docs/snippets/angular/my-component-play-function-with-delay.ts.mdx
@@ -15,7 +15,7 @@ export default meta;
type Story = StoryObj;
/*
- * See https://storybook.js.org/docs/angular/writing-stories/play-function#working-with-the-canvas
+ * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas
* to learn more about using the canvasElement to query the DOM
*/
export const DelayedStory: Story = {
diff --git a/docs/snippets/angular/my-component-play-function-with-selectevent.ts.mdx b/docs/snippets/angular/my-component-play-function-with-selectevent.ts.mdx
index a43771755ce2..df48f4df8008 100644
--- a/docs/snippets/angular/my-component-play-function-with-selectevent.ts.mdx
+++ b/docs/snippets/angular/my-component-play-function-with-selectevent.ts.mdx
@@ -20,7 +20,7 @@ function sleep(ms: number) {
}
/*
- * See https://storybook.js.org/docs/angular/writing-stories/play-function#working-with-the-canvas
+ * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas
* to learn more about using the canvasElement to query the DOM
*/
export const ExampleChangeEvent: Story = {
diff --git a/docs/snippets/angular/my-component-story-mandatory-export.ts.mdx b/docs/snippets/angular/my-component-story-mandatory-export.ts.mdx
index 17f2e6a170e8..2b52d9ae2671 100644
--- a/docs/snippets/angular/my-component-story-mandatory-export.ts.mdx
+++ b/docs/snippets/angular/my-component-story-mandatory-export.ts.mdx
@@ -7,7 +7,7 @@ import { MyComponent } from './MyComponent.component';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Path/To/MyComponent',
diff --git a/docs/snippets/angular/other-foo-bar-story.ts.mdx b/docs/snippets/angular/other-foo-bar-story.ts.mdx
index 606edfe6af2c..ed9d13ad4416 100644
--- a/docs/snippets/angular/other-foo-bar-story.ts.mdx
+++ b/docs/snippets/angular/other-foo-bar-story.ts.mdx
@@ -7,7 +7,7 @@ import { Foo } from './Foo.component';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'OtherFoo/Bar',
diff --git a/docs/snippets/angular/register-component-with-play-function.ts.mdx b/docs/snippets/angular/register-component-with-play-function.ts.mdx
index be2082d4eed2..a9e34a6e9484 100644
--- a/docs/snippets/angular/register-component-with-play-function.ts.mdx
+++ b/docs/snippets/angular/register-component-with-play-function.ts.mdx
@@ -15,7 +15,7 @@ export default meta;
type Story = StoryObj;
/*
- * See https://storybook.js.org/docs/angular/writing-stories/play-function#working-with-the-canvas
+ * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas
* to learn more about using the canvasElement to query the DOM
*/
export const FilledForm: Story = {
@@ -37,7 +37,7 @@ export const FilledForm: Story = {
await userEvent.type(passwordInput, 'ExamplePassword', {
delay: 100,
});
- // See https://storybook.js.org/docs/angular/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
+ // See https://storybook.js.org/docs/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
const submitButton = canvas.getByRole('button');
await userEvent.click(submitButton);
diff --git a/docs/snippets/angular/storybook-csf-3-auto-title-redundant.ts.mdx b/docs/snippets/angular/storybook-csf-3-auto-title-redundant.ts.mdx
index a1bbb5866e1d..d6e372d543c8 100644
--- a/docs/snippets/angular/storybook-csf-3-auto-title-redundant.ts.mdx
+++ b/docs/snippets/angular/storybook-csf-3-auto-title-redundant.ts.mdx
@@ -7,7 +7,7 @@ import { MyComponent } from './MyComponent.component';
const meta: Meta = {
/* 👇 The title prop is optional.
- * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading
+ * See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
component: MyComponent,
diff --git a/docs/snippets/angular/storybook-interactions-play-function.ts.mdx b/docs/snippets/angular/storybook-interactions-play-function.ts.mdx
index a56ce656a8b9..93ec0fe14272 100644
--- a/docs/snippets/angular/storybook-interactions-play-function.ts.mdx
+++ b/docs/snippets/angular/storybook-interactions-play-function.ts.mdx
@@ -19,7 +19,7 @@ export default meta;
type Story = StoryObj