docs/_snippets/button-story-with-args.md
import type { Meta, StoryObj } from '@storybook/angular/';
import { Button } from './button.component';
const meta: Meta<Button> = {
component: Button,
};
export default meta;
type Story = StoryObj<Button>;
export const Primary: Story = {
args: {
primary: true,
label: 'Button',
},
};
import preview from '../.storybook/preview';
import { Button } from './button.component';
const meta = preview.meta({
component: Button,
});
export const Primary = meta.story({
args: {
primary: true,
label: 'Button',
},
});
export default {
/* ๐ The title prop is optional.
* See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Button',
};
/*
*๐ Render functions are a framework specific feature to allow you control on how the component renders.
* See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary = {
render: (args) => {
const btn = document.createElement('button');
btn.innerText = args.label;
const mode = args.primary ? 'storybook-button--primary' : 'storybook-button--secondary';
btn.className = ['storybook-button', 'storybook-button--medium', mode].join(' ');
return btn;
},
args: {
primary: true,
label: 'Button',
},
};
import type { Meta, StoryObj } from '@storybook/html';
type ButtonArgs = {
primary: boolean;
label: string;
};
const meta: Meta<ButtonArgs> = {
/* ๐ The title prop is optional.
* See https://storybook.js.org/docs/configure/#configure-story-loading
* to learn how to generate automatic titles
*/
title: 'Button',
};
export default meta;
type Story = StoryObj<ButtonArgs>;
/*
*๐ Render functions are a framework specific feature to allow you control on how the component renders.
* See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary: Story = {
render: (args) => {
const btn = document.createElement('button');
btn.innerText = args.label;
const mode = args.primary ? 'storybook-button--primary' : 'storybook-button--secondary';
btn.className = ['storybook-button', 'storybook-button--medium', mode].join(' ');
return btn;
},
args: {
primary: true,
label: 'Button',
},
};
/** @jsx h */
import { h } from 'preact';
import { Button } from './Button';
export default {
component: Button,
};
/*
*๐ Render functions are a framework specific feature to allow you control on how the component renders.
* See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary = {
render: (args) => <Button {...args} />,
args: {
primary: true,
label: 'Button',
},
};
import { Button } from './Button';
export default {
component: Button,
};
export const Primary = {
args: {
label: 'Button',
primary: true,
},
};
// Replace your-framework with the framework you are using, e.g. react-vite, nextjs, nextjs-vite, etc.
import type { Meta, StoryObj } from '@storybook/your-framework';
import { Button } from './Button';
const meta = {
component: Button,
} satisfies Meta<typeof Button>;
export default meta;
type Story = StoryObj<typeof meta>;
export const Primary: Story = {
args: {
primary: true,
label: 'Button',
},
};
import { Button } from './Button';
export default {
component: Button,
};
export const Primary = {
args: {
label: 'Button',
primary: true,
},
};
import type { Meta, StoryObj } from 'storybook-solidjs-vite';
import { Button } from './Button';
const meta = {
component: Button,
} satisfies Meta<typeof Button>;
export default meta;
type Story = StoryObj<typeof meta>;
export const Primary: Story = {
args: {
primary: true,
label: 'Button',
},
};
<script module>
import { defineMeta } from '@storybook/addon-svelte-csf';
import Button from './Button.svelte';
const { Story } = defineMeta({
component: Button,
});
</script>
<Story
name="Primary"
args={{
primary: true,
label: 'Button'
}}
/>
import Button from './Button.svelte';
export default {
component: Button,
};
export const Primary = {
args: {
primary: true,
label: 'Button',
},
};
<script module>
import { defineMeta } from '@storybook/addon-svelte-csf';
import Button from './Button.svelte';
const { Story } = defineMeta({
component: Button,
});
</script>
<Story
name="Primary"
args={{
primary: true,
label: 'Button'
}}
/>
// Replace your-framework with svelte-vite or sveltekit
import type { Meta, StoryObj } from '@storybook/your-framework';
import Button from './Button.svelte';
const meta = {
component: Button,
} satisfies Meta<typeof Button>;
export default meta;
type Story = StoryObj<typeof meta>;
export const Primary: Story = {
args: {
primary: true,
label: 'Button',
},
};
import Button from './Button.vue';
export default {
component: Button,
};
/*
*๐ Render functions are a framework specific feature to allow you control on how the component renders.
* See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary = {
render: (args) => ({
components: { Button },
setup() {
return { args };
},
template: '<Button v-bind="args" />',
}),
args: {
primary: true,
label: 'Button',
},
};
import type { Meta, StoryObj } from '@storybook/vue3-vite';
import Button from './Button.vue';
const meta = {
component: Button,
} satisfies Meta<typeof Button>;
export default meta;
type Story = StoryObj<typeof meta>;
/*
*๐ Render functions are a framework specific feature to allow you control on how the component renders.
* See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary: Story = {
render: (args) => ({
components: { Button },
setup() {
return { args };
},
template: '<Button v-bind="args" />',
}),
args: {
primary: true,
label: 'Button',
},
};
import preview from '../.storybook/preview';
import Button from './Button.vue';
const meta = preview.meta({
component: Button,
});
/*
*๐ Render functions are a framework specific feature to allow you control on how the component renders.
* See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary = meta.story({
render: (args) => ({
components: { Button },
setup() {
return { args };
},
template: '<Button v-bind="args" />',
}),
args: {
primary: true,
label: 'Button',
},
});
import preview from '../.storybook/preview';
import Button from './Button.vue';
const meta = preview.meta({
component: Button,
});
/*
*๐ Render functions are a framework specific feature to allow you control on how the component renders.
* See https://storybook.js.org/docs/api/csf
* to learn how to use render functions.
*/
export const Primary = meta.story({
render: (args) => ({
components: { Button },
setup() {
return { args };
},
template: '<Button v-bind="args" />',
}),
args: {
primary: true,
label: 'Button',
},
});
export default {
component: 'demo-button',
};
export const Primary = {
args: {
primary: true,
label: 'Button',
},
};
import type { Meta, StoryObj } from '@storybook/web-components-vite';
const meta: Meta = {
component: 'demo-button',
};
export default meta;
type Story = StoryObj;
export const Primary: Story = {
args: {
primary: true,
label: 'Button',
},
};
import preview from '../.storybook/preview';
const meta = preview.meta({
component: 'demo-button',
});
export const Primary = meta.story({
args: {
primary: true,
label: 'Button',
},
});
import preview from '../.storybook/preview';
const meta = preview.meta({
component: 'demo-button',
});
export const Primary = meta.story({
args: {
primary: true,
label: 'Button',
},
});
import preview from '../.storybook/preview';
import { Button } from './Button';
const meta = preview.meta({
component: Button,
});
export const Primary = meta.story({
args: {
primary: true,
label: 'Button',
},
});
import preview from '../.storybook/preview';
import { Button } from './Button';
const meta = preview.meta({
component: Button,
});
export const Primary = meta.story({
args: {
label: 'Button',
primary: true,
},
});