Lesson 6 / 25
Variants and States
Test all component variants and states using multiple stories and controls.
Component variants
Variants are different visual or behavioral versions of a component. Documenting them in Storybook helps developers and designers see all options at a glance.
Multiple variants in stories
Create separate stories for each significant variant or state.
import { Button } from './Button';
export default {
component: Button,
title: 'Components/Button',
};
export const Primary = () => <Button variant="primary">Primary</Button>;
export const Secondary = () => <Button variant="secondary">Secondary</Button>;
export const Danger = () => <Button variant="danger">Danger</Button>;
export const Loading = () => <Button loading>Loading...</Button>;
export const Disabled = () => <Button disabled>Disabled</Button>;Testing edge cases
Create stories for edge cases like empty states, loading, error, and disabled states. These stories act as a living documentation and regression test suite.
Size and spacing variants
Document all size and spacing variations to ensure consistency across your application.
export const Small = () => <Button size="small">Small</Button>;
export const Medium = () => <Button size="medium">Medium</Button>;
export const Large = () => <Button size="large">Large</Button>;