import Button from "../app/components/Button"; export default { title: "Components/Button", component: Button, parameters: { layout: "centered", docs: { description: { component: "A versatile button component with multiple variants, sizes, and states. Can render as a button or link with full accessibility support. Includes focus states with keyboard navigation - use Tab key to test focus indicators.", }, }, }, argTypes: { variant: { control: { type: "select" }, options: [ "default", "secondary", "primary", "outlined", "dark", "inverse", ], description: "The visual style variant of the button", }, size: { control: { type: "select" }, options: ["xsmall", "small", "medium", "large", "xlarge"], description: "The size of the button", }, disabled: { control: { type: "boolean" }, description: "Whether the button is disabled", }, href: { control: { type: "text" }, description: "If provided, renders as a link instead of a button", }, onClick: { action: "clicked" }, }, tags: ["autodocs"], }; export const Default = { args: { children: "Button", }, }; export const Variants = { args: { children: "Button", size: "large", }, render: (args) => (
), parameters: { docs: { description: { story: "Different visual variants of the button component.", }, }, }, }; export const Sizes = { args: { children: "Button", variant: "default", }, render: (args) => (
), parameters: { docs: { description: { story: "Different sizes available for the button component.", }, }, }, }; export const States = { args: { children: "Button", size: "large", variant: "default", }, render: (args) => (
), parameters: { docs: { description: { story: "Different states of the button component.", }, }, }, }; export const AllVariants = { args: {}, render: () => (

Default Variant

Secondary Variant

Primary Variant

Outlined Variant

Dark Variant

Inverse Variant

Disabled States

), parameters: { docs: { description: { story: "Complete overview of all button variants, sizes, and states.", }, }, }, };