Skip to content

Storybook詳細

Button.stories.tsx
export default {
title: 'Components/Button',
component: Button,
argTypes: {
variant: {
control: 'select',
options: ['primary', 'secondary', 'danger'],
description: 'ボタンのバリアント',
},
size: {
control: 'radio',
options: ['small', 'medium', 'large'],
description: 'ボタンのサイズ',
},
disabled: {
control: 'boolean',
description: '無効化状態',
},
},
};
import { fn } from '@storybook/test';
export const WithActions: Story = {
args: {
onClick: fn(),
children: 'Click me',
},
};
export const Mobile: Story = {
args: {
children: 'Mobile Button',
},
parameters: {
viewport: {
defaultViewport: 'mobile1',
},
},
};
Terminal window
# よく使われるアドオン
npm install --save-dev @storybook/addon-essentials
npm install --save-dev @storybook/addon-a11y
npm install --save-dev @storybook/addon-viewport
npm install --save-dev @storybook/addon-docs
.storybook/preview.ts
import { withA11y } from '@storybook/addon-a11y';
export const decorators = [withA11y];
// Button.stories.tsx
export const AccessibilityTest: Story = {
args: {
children: 'Accessible Button',
'aria-label': 'Submit form',
},
};
Button.stories.tsx
import { Meta, StoryObj } from '@storybook/react';
const meta: Meta<typeof Button> = {
title: 'Components/Button',
component: Button,
parameters: {
docs: {
description: {
component: 'ボタンコンポーネントは、ユーザーのアクションをトリガーするために使用されます。',
},
},
},
};

Storybookの詳細機能を活用することで、より高度なコンポーネント開発とテストが可能になります。