@vyriy/storybook-config
v0.8.9
Published
Shared Storybook config for Vyriy projects
Readme
@vyriy/storybook-config
Part of Vyriy - a calm architecture toolkit for TypeScript, React, SSR, SSG, APIs, and cloud-ready apps.
Full documentation: https://vyriy.dev/docs/storybook/
Shared Storybook config for Vyriy projects.
Purpose
This package provides the base Storybook setup used in Vyriy repositories:
- shared
mainconfig - shared
previewconfig - addon defaults
- docs and theme behavior
- common Storybook ergonomics for React projects
Install
With npm:
npm install -D @vyriy/storybook-config storybookWith Yarn:
yarn add -D @vyriy/storybook-config storybookInstall storybook in the consumer project so CLI commands are available.
The shared style rule is reused from @vyriy/webpack-config, so consumers do not need local style loader dependencies for the default setup.
The config also replaces Storybook's built-in CSS rule with the shared CSS/PostCSS/Sass pipeline, so project configs should not need to remove Storybook CSS rules locally.
Storybook addons and the React Webpack framework are resolved from this shared config package, so consumers do not need to install those addon packages separately for the default setup.
Usage
Create .storybook/main.ts:
import config, { type StorybookConfig } from '@vyriy/storybook-config/main';
import { path } from '@vyriy/path';
const mainConfig: StorybookConfig = {
...config,
stories: [
path('packages', '**/*.mdx'),
path('packages', '**/*.stories.@(js|jsx|mjs|ts|tsx)'),
],
};
export default mainConfig;Create .storybook/preview.ts:
export { default } from '@vyriy/storybook-config/preview';If you customize preview locally, the preview module also exposes Preview.
import config, { type Preview } from '@vyriy/storybook-config/preview';
const preview: Preview = {
...config,
tags: ['autodocs'],
};When a project needs custom docs themes, use createThemedDocsContainer so shared Markdown behavior stays enabled.
import config, { createThemedDocsContainer, type Preview } from '@vyriy/storybook-config/preview';
import themeDark from './theme-dark';
import themeLight from './theme-light';
const preview: Preview = {
...config,
parameters: {
...config.parameters,
docs: {
container: createThemedDocsContainer({
dark: themeDark,
light: themeLight,
}),
},
},
};The shared preview container configures Storybook Markdown blocks to render Mermaid fenced code blocks.
import Structure from './STRUCTURE.md?raw';
import { Markdown } from '@storybook/addon-docs/blocks';
<Markdown>{Structure}</Markdown>;The underlying renderer is also available as @vyriy/storybook-config/mermaid-markdown for custom docs surfaces outside the shared preview container.
Current Vyriy Usage
In this repository:
.storybook/main.tsre-exports@vyriy/storybook-config/main.storybook/preview.tsimports local styles and re-exports@vyriy/storybook-config/preview
See the article with a complete Storybook setup walkthrough: https://vyriy.dev/examples/vyriy-storybook-config/.
