feat: add Storybook with component stories

Installs @storybook/nextjs-vite. Stories co-located with components,
grouped by layer (Shared/Entities/Widgets). Multi-variant cases use
render functions instead of one story per variant/size.
This commit is contained in:
Ilia Mashkov
2026-04-19 09:19:17 +03:00
parent a47341ffcb
commit de03d21429
21 changed files with 2052 additions and 16 deletions
@@ -0,0 +1,37 @@
import type { Meta, StoryObj } from '@storybook/nextjs-vite'
import { ProjectCard } from './ProjectCard'
const meta: Meta<typeof ProjectCard> = {
title: 'Entities/ProjectCard',
component: ProjectCard,
decorators: [
(Story) => (
<div className="p-8 bg-white max-w-md">
<Story />
</div>
),
],
}
export default meta
type Story = StoryObj<typeof ProjectCard>
export const Default: Story = {
args: {
title: 'Portfolio Website',
year: '2024',
description: 'A brutalist portfolio site built with Next.js and Tailwind CSS.',
tags: ['React', 'TypeScript', 'Next.js'],
},
}
export const WithImage: Story = {
args: {
title: 'Portfolio Website',
year: '2024',
description: 'A brutalist portfolio site built with Next.js and Tailwind CSS.',
tags: ['React', 'TypeScript', 'Next.js'],
imageUrl: 'https://placehold.co/800x450/3B4A59/D9B48F?text=Project',
},
}