Storybook

Component library documentation and visual testing

Overview

Storybook provides an isolated environment to develop, document, and test UI components independently from the main application.

Structure

package.json
tsconfig.json

Purpose

Running Storybook

cd apps/storybook
pnpm dev

Access at: http://localhost:6006

cd apps/storybook
pnpm build

Builds static Storybook site to storybook-static/

cd apps/storybook
pnpm chromatic

Runs visual regression tests with Chromatic

Writing Stories

Basic Story

src/stories/inputs/Button.stories.tsx
import type { Meta, StoryObj } from "@storybook/react"

import { Button } from "@shared/ui"

const meta: Meta<typeof Button> = {
  title: "Inputs/Button",
  component: Button,
  tags: ["autodocs"],
}

export default meta
type Story = StoryObj<typeof Button>

export const Primary: Story = {
  args: {
    children: "Click me",
    variant: "contained",
    color: "primary",
  },
}

export const Secondary: Story = {
  args: {
    children: "Click me",
    variant: "outlined",
    color: "secondary",
  },
}

Testing

Component Tests (Vitest)

cd apps/storybook
pnpm test

UI Mode

cd apps/storybook
pnpm test:ui

Interactive test runner with UI.

Deployment

Storybook is automatically deployed to Vercel on every push to main:


Next: Learn about the Documentation site.