Skip to main content

UI Components

BunShip Pro includes 26 pre-installed shadcn/ui components built on Radix UI primitives and styled with Tailwind CSS v4.

Available Components

All components are in packages/ui/src/components/ and exported from @bunship/ui:

Layout & Structure

ComponentWhat It Does
CardContainer with header, content, and footer slots
SeparatorHorizontal or vertical divider line
ScrollAreaCustom scrollbar container
SheetSlide-out panel from the edge of the screen
TabsTabbed content switcher
AccordionCollapsible content sections

Forms & Inputs

ComponentWhat It Does
ButtonPrimary action element with variants (default, secondary, outline, ghost, destructive)
InputText input field
TextareaMulti-line text input
CheckboxBoolean toggle with a checkmark
SwitchBoolean toggle with a sliding track
LabelAccessible form field label

Data Display

ComponentWhat It Does
TableData table with header, body, rows, and cells
BadgeSmall status label with variants (default, secondary, destructive, outline, success, warning)
AvatarUser profile image with fallback initials
SkeletonLoading placeholder with shimmer animation
AlertHighlighted message box for info, warnings, errors
TooltipHover popup with additional context

Overlays & Feedback

ComponentWhat It Does
DialogModal dialog with title, description, and actions
DropdownMenuContext menu triggered by a button
SonnerToast notification system

Marketing

ComponentWhat It Does
FeatureCardFeature highlight card for landing pages
PricingCardPricing plan card with feature list
TestimonialCardCustomer quote card
StatsSectionKey metrics display
FaqSectionFAQ accordion section

Using Components

Import from @bunship/ui:
import { Button, Input, Table, TableHeader, TableBody, TableRow, TableCell } from "@bunship/ui";
Components follow shadcn/ui conventions. The cn() utility for merging class names is also exported:
import { cn } from "@bunship/ui";

<div className={cn("text-sm", isActive && "font-bold")}>Content</div>;

Adding New Components

Use the shadcn CLI to add components from the shadcn/ui registry:
cd packages/ui
bunx shadcn@latest add select
This generates the component file in packages/ui/src/components/. Then export it from the package’s index.ts so it’s available across the monorepo:
// packages/ui/src/index.ts
export * from "./components/select";
After adding, you can import it anywhere:
import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from "@bunship/ui";

Design Conventions

BunShip Pro follows these patterns across all pages:
PatternImplementation
Section headerstext-xs font-medium uppercase tracking-wider text-muted-foreground
Data valuestext-2xl font-semibold (Inter/sans, not monospace)
Data tablesTable / TableHeader / TableBody / TableRow / TableCell from @bunship/ui
Small labelsfont-mono text-[11px] uppercase tracking-widest
Action buttons in tablesButton variant="ghost" size="sm"
Flat layoutsNo cards wrapping content sections — use bg-muted/30 backgrounds with rounded-lg
Status indicatorsColored dots (bg-green-500, bg-red-500) not badges for active/inactive states
The dashboard uses flat, data-dense layouts inspired by Railway.app — typography hierarchy and subtle backgrounds instead of bordered cards.

Next Steps