Skip to content

UI Components Overview

UI components are the building blocks of your interface. They’re designed to be composable, accessible, and customizable through props.

Components are organized into subcategories under src/components/ui/.

ComponentPurpose
ButtonClickable actions with multiple variants
InputText input with label, hint, and error states
TextareaMulti-line text input
SelectDropdown select menu
CheckboxCheckbox input with label
RadioRadio button for single selection
SwitchToggle switch input
ComponentPurpose
CardContainer with structured content
BadgeStatus labels and tags
AvatarUser profile images
AvatarGroupGrouped avatar display
TableData table with styling
PaginationPage navigation controls
ProgressProgress bar indicator
SkeletonLoading placeholders
ComponentPurpose
AlertContextual feedback messages
ToastTemporary notification messages
TooltipHover tooltips
ComponentPurpose
DialogModal dialogs
DropdownDropdown menus
TabsHorizontal tab navigation
VerticalTabsVertical tab navigation
AccordionCollapsible content sections
ComponentPurpose
SeparatorVisual divider between sections
ComponentPurpose
IconSVG icon component
ComponentPurpose
CodeBlockSyntax-highlighted code
ComponentPurpose
LogoBrand logo with variants
CTACall-to-action sections
NpmCopyButtonNPM install command copier
SocialProofTestimonial cards
TerminalDemoAnimated terminal demo

Most UI components share these patterns:

Visual style options:

<Button variant="primary">Primary</Button>
<Button variant="secondary">Secondary</Button>
<Button variant="outline">Outline</Button>
<Button variant="ghost">Ghost</Button>

Size options (usually sm, md, lg):

<Button size="sm">Small</Button>
<Button size="md">Medium</Button>
<Button size="lg">Large</Button>

For dark backgrounds:

<Button colorScheme="invert">On Dark</Button>
---
import { Button, Input, Card } from '@/components/ui';
---
<Card>
<Input label="Email" name="email" type="email" />
<Button>Submit</Button>
</Card>