MDX
Let's get started with an example:
import { Title, Subtitle } from '@storybook/addon-docs/blocks';
import { PatternLoad, PatternPreview } from '@wingsuit-designsystem/storybook';
<PatternLoad patternId="grid">
{(pattern) => (
<>
<Title />
<Subtitle />
## Simple usage
....
<PatternPreview variant={pattern.getDefaultVariant()} columns="3" columns_width="25x50x25"/>
... More documentation.
</>
)}
</PatternLoad>
(The example is from organisms/grid/grid.mdx
in your starter kit.)
With PatternLoad
you can load any existing pattern. PatternLoad
calls the load function asynchronous after the pattern is loaded.
PatternPreview
renders the pattern with the preview data from the wingsuit.yml
file. Each attribute is passed to the pattern.
Presentational template
To render a presentational template use:
const template = require('./presentational.twig');
<RenderTwig data={template}></RenderTwig>;
Pattern documentation components
PatternProperties
Pattern properties shows Fields
and Settings
from your wingsuit.yml as a tabbed table.
import { PatternProperties } from '@wingsuit-designsystem/storybook';
<PatternProperties variant={variant} />
PatternInclude
PatternInclude shows a sample twig include.
import { PatternInclude } from '@wingsuit-designsystem/storybook';
<PatternInclude variant={variant} />
PatternDoc
PatternDoc renders the complete automatic pattern documentation.
import { PatternDoc } from '@wingsuit-designsystem/storybook';
<PatternDoc pattern={pattern} showInclude />
Token documentation components
Typeset
To show your Typeset system use <Typeset ..>
.
const fontSizes = {
small: '0.5rem',
base: '1rem',
large: '2rem',
}
<Typeset fontFamily={fontfamily} classNamePrefix=".text-" fontSizes={fontSizes} />
Spacing
To show your spacing system use <Spacing ..>
.
const spacing = {
small: '0.5rem',
base: '1rem',
large: '2rem',
};
<Spacing spacing={spacing} classNamePrefix=".w-" direction="vertical|horizontal"></Spacing>