title |
---|
Controls |
The Controls
block can be used to show a dynamic table of args for a given story, as a way to document its interface, and to allow you to change the args for a (separately) rendered story (via the Story
or Canvas
blocks).
💡 If you’re looking for a static table that shows a component's arg types with no controls, see the ArgTypes
block instead.
{/* ButtonDocs.mdx */}
import { Meta, Canvas, Controls } from '@storybook/blocks';
import * as ButtonStories from './Button.stories'
<Meta of={ButtonStories} />
<Canvas of={ButtonStories.Primary} />
<Controls of={ButtonStories.Primary} />
import { Controls } from '@storybook/blocks';
Configuring with props and parameters
ℹ️ Like most blocks, the Controls
block is configured with props in MDX. Many of those props derive their default value from a corresponding parameter in the block's namespace, parameters.docs.controls
.
The following exclude
configurations are equivalent:
<CodeSnippets paths={[ 'angular/api-doc-block-controls-parameter.ts.mdx', 'web-components/api-doc-block-controls-parameter.js.mdx', 'web-components/api-doc-block-controls-parameter.ts.mdx', 'common/api-doc-block-controls-parameter.js.mdx', 'common/api-doc-block-controls-parameter.ts.mdx', ]} />
{/* ButtonDocs.mdx */}
<Controls of={ButtonStories} exclude={['style']} />
The example above applied the parameter at the component (or meta) level, but it could also be applied at the project or story level.
Type: string[] | RegExp
Default: parameters.docs.controls.exclude
Specifies which controls to exclude from the args table. Any controls whose names match the regex or are part of the array will be left out.
Type: string[] | RegExp
Default: parameters.docs.controls.include
Specifies which controls to include in the args table. Any controls whose names don't match the regex or are not part of the array will be left out.
Type: Story export or CSF file exports
Specifies which story to get the controls from. If a CSF file exports is provided, it will use the primary (first) story in the file.
Type: 'none' | 'alpha' | 'requiredFirst'
Default: parameters.docs.controls.sort
or 'none'
Specifies how the controls are sorted.
- none: Unsorted, displayed in the same order the controls are processed in
- alpha: Sorted alphabetically, by the arg type's name
- requiredFirst: Same as
alpha
, with any required controls displayed first