What is @storybook/docs-tools?
The @storybook/docs-tools package is a part of the Storybook ecosystem, designed to enhance the documentation capabilities within Storybook. It provides tools and utilities to help developers create better documentation for their UI components, integrating seamlessly with Storybook's UI component development environment.
What are @storybook/docs-tools's main functionalities?
MDX Support
Enables writing documentation using MDX (Markdown for JSX), which allows for rich and interactive documentation. This feature lets you embed live examples and props tables directly in your markdown files.
import { Meta, Story, ArgsTable, Primary } from '@storybook/addon-docs/blocks';
<Meta title='Your Component Title' />
<Story name='Default View' height='400px'>
<YourComponent />
</Story>
<ArgsTable of={YourComponent} />
Component Props Table
Automatically generates and displays a table of properties (props) for your components. This is useful for documenting the different props that can be used with a component, including types, default values, and descriptions.
import { ArgsTable } from '@storybook/addon-docs/blocks';
<ArgsTable of={YourComponent} />
Custom Doc Blocks
Allows the creation of custom documentation blocks within MDX files, enabling more structured and styled documentation. This feature supports various blocks like Title, Subtitle, Description, and more.
import { Title, Subtitle, Description, Primary } from '@storybook/addon-docs/blocks';
<Title>My Custom Component</Title>
<Subtitle>Component Subtitle</Subtitle>
<Description>{`This is a detailed description of the custom component.`}</Description>
<Primary>/* Render your component here */</Primary>
Other packages similar to @storybook/docs-tools
react-docgen
React Docgen automatically parses React component files to extract prop types and descriptions. It's similar to @storybook/docs-tools in that it helps generate documentation for components, but it does not integrate directly with Storybook or support MDX.
docusaurus
Docusaurus is a static site generator that can be used for creating project documentation. Unlike @storybook/docs-tools, which is specifically tailored for Storybook and UI components, Docusaurus provides a more general approach to documentation across different frameworks and libraries.
8.6.0
The 8.6 release focuses on Storybook Test, which brings realtime component, accessibility, and visual UI tests to your favorite component workshop.
Here’s what’s new:
- 🎁 Storybook Test installer for out-of-the-box tests in new projects
- 🦾 Accessibility “todo” workflow to systematically fix a11y violations
- 🗜️ 80% smaller create-storybook package for much faster installs
- 🧪 Dozens of Test fixes based on user feedback
- 📕 Docs fixes for table of contents, code snippets, and more
- 🚨 Key security fixes for Vite and ESbuild
- 💯 Hundreds more improvements
<details>
<summary>List of all updates</summary>
- Addon A11y: Introduce parameters.a11y.test - #30516, thanks @valentinpalkovic!
- Addon-A11y: Fix preset loading when loaded via getAbsolutePath - #30563, thanks @valentinpalkovic!
- Addon-Docs: Change URL hash when TOC item is clicked, and fix TOC loading bugs - #30130, thanks @Sidnioulz!
- Addon-docs: Consider custom code snippet in story code panel and update styles - #30179, thanks @larsrickert!
- Addon-Test: Add telemetry data for Focused Tests - #30568, thanks @JReinhold!
- Addon-Test: Fix config and watch mode inconsistencies - #30491, thanks @JReinhold!
- Addon-Test: Fix console error in build mode - #30625, thanks @JReinhold!
- Addon-Test: Make sure that only one global portable story config is ever loaded - #30582, thanks @kasperpeulen!
- Angular: Fix accent character issue - #30276, thanks @valentinpalkovic!
- Angular: Support experimental zoneless mode - #28657, thanks @anedomansky!
- Angular: Support v19.2 when @angular/animations is not installed - #30611, thanks @valentinpalkovic!
- Builder-Vite: Fix resolve id warning - #30511, thanks @valentinpalkovic!
- Builder-Vite: Fix runtime and iframe 404 on first load - #30567, thanks @valentinpalkovic!
- Bun: Add support for text lock file - #30160, thanks @Arctomachine!
- Cleanup: Remove unused constants in viewport addon - #30479, thanks @Guria!
- CLI: Don't initially select Documentation and Testing features - #30599, thanks @ghengeveld!
- CLI: Fix peer dep issues for npm users during upgrade - #30616, thanks @valentinpalkovic!
- CLI: Fix printing of selected features - #30605, thanks @ghengeveld!
- CLI: Make telemetry data an object - #30581, thanks @ndelangen!
- CLI: Prompt users for RN vs RNW on init - #30635, thanks @shilman!
- CLI: Reimplement features prompt logic to handle
--yes
and fix --features
- #30534, thanks @ghengeveld!
- CLI: Remove Storybook dependencies before adding re-adding them - #30600, thanks @valentinpalkovic!
- CLI: Use correct storybook internals import in automigration - #30290, thanks @yannbf!
- Codemod: Always get real path of files - #30650, thanks @yannbf!
- Codemod: Handle addon essentials differently in csf factories - #30649, thanks @yannbf!
- Codemod: Migrate meta.args to meta.input.args in csf factories - #30641, thanks @yannbf!
- Codemod: Use real path from symbolic links - #30642, thanks @yannbf!
- Core: Add
UniversalStore
API to sync state/events between multiple environments - #30445, thanks @JReinhold!
- Core: Add connection timeout notification - #30288, thanks @valentinpalkovic!
- Core: Allow empty render functions in CSF factories - #30565, thanks @kasperpeulen!
- Core: Always place cache dir inside
node_modules
- #30643, thanks @ndelangen!
- Core: Don't set process.env.NODE_ENV and process.env.DEV - #30651, thanks @valentinpalkovic!
- Core: Fix addon essentials preview preset - #30647, thanks @yannbf!
- Core: Fix extracting import path when it's not a core addon - #30640, thanks @yannbf!
- Core: Fix invalid Websocket termination - #30408, thanks @valentinpalkovic!
- Core: Fix statically serving single files and multiple dirs on the same endpoint - #30467, thanks @JReinhold!
- Core: Fix undeclared internal dependencies - #30566, thanks @kasperpeulen!
- Core: Improve type compatibility with React 19 - #30031, thanks @mrginglymus!
- Core: Move CSF to monorepo - #30488, thanks @kasperpeulen!
- Csf Tools: Allow ConfigFile to create more import syntaxes - #30204, thanks @yannbf!
- CSF: Add support for CSF factories - #30197, thanks @kasperpeulen!
- Essentials: Fix
addon-essentials
not working when used with getAbsolutePath
- #30557, thanks @JReinhold!
- Manager: Escape single quotes in dynamic import paths in wrapManagerEntries function - #30278, thanks @valentinpalkovic!
- Manager: Fix escaping of single quotes in dynamic import paths - #30278, thanks @valentinpalkovic!
- Manager: Fix panel reactivity - #30638, thanks @valentinpalkovic!
- React: Fix incorrect import in preview.ts - #30542, thanks @mrginglymus!
- Svelte: Fix conflicting variable names and support for
+page.svelte
files - #30369, thanks @xeho91!
- Test addon: Only update
vitest.config.ts
with workspaces, otherwise create vitest.workspace.ts
- #30583, thanks @ghengeveld!
</details>