storybook/docs/snippets/vue/badge-story-starter-example.mdx.mdx
2022-07-07 18:50:21 +01:00

73 lines
1.6 KiB
Plaintext

```md
<!-- Badge.stories.mdx -->
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import Badge from './Badge.vue';
import Icon from './Icon.vue';
<Meta title="MDX/Badge" component={Badge} />
<!--
👇 Render functions are a framework specific feature to allow you control on how the component renders.
See https://storybook.js.org/docs/7.0/vue/api/csf
to learn how to use render functions.
-->
# Badge
Let's define a story for our `Badge` component:
<Story
name="positive"
render={() => ({
components: { Badge },
template: `<Badge status="positive">Positive</Badge>`,
})} />
We can drop it in a `Canvas` to get a code snippet:
<Canvas>
<Story
name="negative"
render={() => ({
components: { Badge },
template: `<Badge status="negative">Negative</Badge>`,
})} />
</Canvas>
We can even preview multiple stories in a block. This
gets rendered as a group, but defines individual stories
with unique URLs and isolated snapshot tests.
<Canvas>
<Story
name="warning"
render={() => ({
components: { Badge },
template: `<Badge status="warning">Warning</Badge>`,
})} />
<Story
name="neutral"
render={() => ({
components: { Badge },
template: `<Badge status="neutral">Neutral</Badge>`,
})} />
<Story
name="error"
render={() => ({
components: { Badge },
template: `<Badge status="error">Error</Badge>`,
})} />
<Story
name="with icon"
render={() => ({
components: { Badge, Icon },
template: `
<Badge status="warning">
<Icon icon="check" inline />
with icon
</Badge>`,
})} />
</Canvas>
```