Skip to content

[FE-45] Build a shared UI component library on Radix primitives #916

Description

@mftee

Overview

@radix-ui/react-slot, class-variance-authority, clsx, and tailwind-merge are already installed (the standard shadcn/ui pattern) but no components/ui directory exists yet. Every page in this plan needs consistent Button, Input, Card, Badge, and Modal/Toast components rather than each page reinventing markup.

Acceptance Criteria

  • Create components/ui/ with Button, Input, Card, Badge, Dialog (Modal), and Toast components, using cva for variants and tailwind-merge for class composition
  • Components are theme-aware (light/dark via Tailwind's dark: variant)
  • Each component has a minimal set of variants documented via TypeScript prop types
  • At least one render test per component using the already-configured @testing-library/react + jest

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions