🚀 Monorepo Fullstack Starter
Packages

UI Components (@repo/ui)

The shared component library built with shadcn/ui.

The @repo/ui package is a shared component library built with shadcn/ui. It provides 40+ pre-built, accessible components used across all frontend apps.

How It Works

Components are installed via the shadcn CLI into packages/ui/src/ and then exported for consumption by apps. Each app imports components directly:

import { Button, Card, Input, Dialog } from '@repo/ui';

Available Components

Layout

  • Card — Flexible content containers
  • Separator — Visual dividers
  • Aspect Ratio — Maintain aspect ratios

Form

  • Button — Various button styles and sizes
  • Input — Text inputs with validation
  • Textarea — Multi-line text inputs
  • Select — Dropdown selections
  • Checkbox — Boolean inputs
  • Radio Group — Single selection from options
  • Switch — Toggle switches
  • Slider — Range inputs
  • Form — React Hook Form integration
  • Navigation Menu — Complex navigation structures
  • Breadcrumb — Hierarchical navigation
  • Pagination — Page navigation
  • Tabs — Tabbed content

Feedback

  • Alert — Important messages
  • Toast / Sonner — Temporary notifications
  • Progress — Loading indicators
  • Skeleton — Loading placeholders

Overlay

  • Dialog — Modal dialogs
  • Drawer — Slide-out panels
  • Popover — Contextual overlays
  • Tooltip — Helpful hints
  • Sheet — Side panels

Data Display

  • Table — Data tables
  • Badge — Status indicators
  • Avatar — User representations
  • Calendar — Date selection
  • Chart — Data visualizations (Recharts)

Adding a New Component

Use the shadcn CLI from the UI package:

cd packages/ui
npx shadcn@latest add <component-name>

The component will be added to packages/ui/src/ and automatically available to all apps.

Customizing Components

All components live in packages/ui/src/ as regular React files. You can modify them directly — they're not hidden in node_modules.

On this page