Storybook詳細
Storybook詳細
Section titled “Storybook詳細”アドオンの活用
Section titled “アドオンの活用”1. Controls(コントロール)
Section titled “1. Controls(コントロール)”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: '無効化状態', }, },};2. Actions(アクション)
Section titled “2. Actions(アクション)”import { fn } from '@storybook/test';
export const WithActions: Story = { args: { onClick: fn(), children: 'Click me', },};3. Viewport(ビューポート)
Section titled “3. Viewport(ビューポート)”export const Mobile: Story = { args: { children: 'Mobile Button', }, parameters: { viewport: { defaultViewport: 'mobile1', }, },};アドオンのインストール
Section titled “アドオンのインストール”# よく使われるアドオンnpm install --save-dev @storybook/addon-essentialsnpm install --save-dev @storybook/addon-a11ynpm install --save-dev @storybook/addon-viewportnpm install --save-dev @storybook/addon-docsアクセシビリティテスト
Section titled “アクセシビリティテスト”import { withA11y } from '@storybook/addon-a11y';
export const decorators = [withA11y];
// Button.stories.tsxexport const AccessibilityTest: Story = { args: { children: 'Accessible Button', 'aria-label': 'Submit form', },};ドキュメントのカスタマイズ
Section titled “ドキュメントのカスタマイズ”import { Meta, StoryObj } from '@storybook/react';
const meta: Meta<typeof Button> = { title: 'Components/Button', component: Button, parameters: { docs: { description: { component: 'ボタンコンポーネントは、ユーザーのアクションをトリガーするために使用されます。', }, }, },};Storybookの詳細機能を活用することで、より高度なコンポーネント開発とテストが可能になります。