Component Library
A collection of beautiful, accessible, and reusable components built with React, Tailwind CSS, and Radix UI
Badges
Display short labels with various styles and colors
import { Badge } from "@/components/ui/badge";
<Badge>Default</Badge>
<Badge variant="secondary">Secondary</Badge>
<Badge variant="success">Success</Badge>
<Badge variant="gradient">Gradient</Badge>Alerts
Display important messages with icons and dismiss functionality
Default Alert
Success!
Warning
Error
import { Alert, AlertTitle, AlertDescription } from "@/components/ui/alert";
<Alert variant="success">
<AlertTitle>Success!</AlertTitle>
<AlertDescription>
Your changes have been saved.
</AlertDescription>
</Alert>Cards
Flexible container component for displaying content
API Integration
Connect your AI models seamlessly
Our REST API makes it easy to integrate powerful AI capabilities into your applications with just a few lines of code.
Featured Card
Highlighted with a custom border
Cards can be customized with different borders, backgrounds, and hover effects to match your design.
import { Card, CardHeader, CardTitle, CardDescription, CardContent } from "@/components/ui/card";
<Card>
<CardHeader>
<CardTitle>Card Title</CardTitle>
<CardDescription>Card description</CardDescription>
</CardHeader>
<CardContent>
<p>Your content here</p>
</CardContent>
</Card>Spinners
Loading indicators in various sizes and styles
Small
Medium
Large
XL
import { Spinner } from "@/components/ui/spinner";
<Spinner size="sm" />
<Spinner size="md" />
<Spinner size="lg" variant="secondary" />Progress
Show completion status with animated progress bars
import { Progress } from "@/components/ui/progress";
<Progress value={66} />
<Progress value={33} indicatorClassName="bg-gradient-to-r from-purple-500 to-pink-500" />Tabs
Organize content into switchable sections
This is the preview tab. You can display any content here.
Preview content goes here
import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/components/ui/tabs";
<Tabs defaultValue="preview">
<TabsList>
<TabsTrigger value="preview">Preview</TabsTrigger>
<TabsTrigger value="code">Code</TabsTrigger>
</TabsList>
<TabsContent value="preview">Preview content</TabsContent>
<TabsContent value="code">Code content</TabsContent>
</Tabs>Avatars
Display user profile images with fallbacks
import { Avatar, AvatarImage, AvatarFallback } from "@/components/ui/avatar";
<Avatar>
<AvatarImage src="/avatar.jpg" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>Stat Cards
Display key metrics with icons and trends
Total Users
50,234
+12.5% from last month
Active Sessions
2,847
+8.2% from last week
AI Requests
1.2M
+45.1% from yesterday
import { StatCard } from "@/components/StatCard";
import { Users } from "lucide-react";
<StatCard
title="Total Users"
value="50,234"
change="+12.5% from last month"
changeType="positive"
icon={Users}
gradient="from-purple-500 to-pink-500"
/>Timeline
Display events in chronological order
Product Launch
Jan 2025Released version 1.0 of our AI platform
API v2 Released
Dec 2024Launched faster, more efficient API
Reached 50K Users
Nov 2024Hit major milestone in user growth
Company Founded
Jun 2024Started the journey to democratize AI
import { Timeline } from "@/components/Timeline";
import { Rocket } from "lucide-react";
<Timeline
items={[
{
title: "Product Launch",
description: "Released version 1.0",
date: "Jan 2025",
icon: Rocket,
},
]}
/>Inputs
Form inputs with various types and styles
import { Input } from "@/components/ui/input";
<Input placeholder="Email address" type="email" />
<Input placeholder="Password" type="password" />
<Input placeholder="Disabled input" disabled />Code Blocks
Display code with syntax highlighting and copy functionality
1 import { CodeBlock } from "@/components/CodeBlock"; 2 3 function Example() { 4 const message = "Hello, World!"; 5 console.log(message); 6 return <div>{message}</div>; 7 }
Buttons
Interactive buttons in various styles and sizes
import { Button } from "@/components/ui/button";
<Button>Default</Button>
<Button variant="secondary">Secondary</Button>
<Button size="lg">Large</Button>
<Button disabled>Disabled</Button>