What is @storybook/addons?
The @storybook/addons package is a core module for Storybook that provides the infrastructure to build and use addons, which are essentially plugins that can be used to extend Storybook's UI and behavior. Addons can be used to add new features, integrate with other tools, customize the panel within Storybook, and enhance the development workflow.
What are @storybook/addons's main functionalities?
Addon Registration
This feature allows developers to register new addons with Storybook. The code sample demonstrates how to import the addons API and use it to register a custom addon.
import { addons } from '@storybook/addons';
import MyAddon from './my-addon';
addons.register('my-addon', MyAddon);
Addon Panel Creation
This feature allows developers to create new panels in the Storybook UI. The code sample shows how to add a new panel using the addons API.
import { addons, types } from '@storybook/addons';
import MyPanel from './my-panel';
addons.add('my-panel', {
type: types.PANEL,
title: 'My Panel',
render: ({ active, key }) => (
<MyPanel active={active} key={key} />
)
});
Addon Tool Registration
This feature enables the addition of tools to the Storybook toolbar. The code sample illustrates how to register a new tool that will be displayed when the view mode is set to 'story'.
import { addons, types } from '@storybook/addons';
import MyTool from './my-tool';
addons.add('my-tool', {
type: types.TOOL,
title: 'My Tool',
match: ({ viewMode }) => viewMode === 'story',
render: MyTool
});
Other packages similar to @storybook/addons
@storybook/api
The @storybook/api package provides a set of functions and hooks that can be used to interact with Storybook's internal state and events. It is similar to @storybook/addons in that it allows for extension and customization of Storybook, but it focuses more on the state and event management aspects.
@storybook/components
The @storybook/components package offers a library of pre-built components that can be used within Storybook addons. While @storybook/addons provides the framework for creating and managing addons, @storybook/components provides the building blocks for the UI of those addons.
@storybook/theming
The @storybook/theming package allows for customization of Storybook's appearance through theming. It is similar to @storybook/addons in that it enhances the Storybook experience, but it specifically targets the visual style rather than functionality or UI extension.
The contents of this package have moved to @storybook/preview-api
and @storybook/manager-api
. Please update your import depending on where are using this API.
This package will no longer be released as part of the 8.0 release of storybook.