title |
---|
Story rendering |
In Storybook, your stories render in a particular “preview” iframe (Canvas tab) inside the larger Storybook web application. The JavaScript build configuration of the preview is controlled by a webpack config, but you also may want to directly control the rendered HTML to help your stories render correctly.
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
and add tags like this:
<CodeSnippets paths={[ 'common/storybook-preview-head-example.html.mdx', ]} />
Storybook will inject these tags into the preview iframe where your components render, not the Storybook application UI.
It's also possible to modify the preview head HTML programmatically using a preset defined in the main.js
file. For more information see Preview/Manager templates.
Sometimes, you may need to add different tags to the <body>
. Helpful for adding some custom content roots.
You can accomplish this by creating a file called preview-body.html
inside your .storybook
directory and adding tags like this:
<CodeSnippets paths={[ 'common/storybook-preview-body-example.html.mdx', ]} />
If using relative sizing in your project (like rem
or em
), you may update the base font-size
by adding a style
tag to preview-body.html
:
<CodeSnippets paths={[ 'common/storybook-preview-body-font-size.html.mdx', ]} />
Storybook will inject these tags into the preview iframe where your components render, not the Storybook application UI.
Similarly to the preview head HTML, preview body HTML can also be updated programmatically using a preset. See Preview/Manager templates for more information.