'use client'
import * as React from 'react'
import { ThemeToggle } from '@/components/theme-toggle'
import { Button } from '@/components/ui/button'
import { Badge } from '@/components/ui/badge'
import { Input } from '@/components/ui/input'
import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from '@/components/ui/card'
import { Avatar, AvatarImage, AvatarFallback, AvatarGroup } from '@/components/ui/avatar'
import { Progress, CircularProgress, LoaderBar } from '@/components/ui/progress'
import { AudioPlayer, Equalizer } from '@/components/ui/audio-player'
import { Chat, Message, Presence } from '@/components/ui/chat'
import { StatCard, StatsGrid, XPBar, LeaderboardEntry } from '@/components/ui/stat-card'
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'
import { Switch } from '@/components/ui/switch'
import { Slider } from '@/components/ui/slider'
import { Label } from '@/components/ui/label'
// Section wrapper component
function Section({
title,
description,
children
}: {
title: string
description?: string
children: React.ReactNode
}) {
return (
Component
{title}
{description && (
{description}
)}
{children}
)
}
// Preview box
function PreviewBox({
label,
children,
className = ''
}: {
label?: string
children: React.ReactNode
className?: string
}) {
return (
{label && (
{label}
)}
{children}
)
}
export default function DesignSystemPage() {
const [demoMessages] = React.useState([
{
content: 'Hey! Check out this new beat I just finished.',
sender: { name: 'Alex Chen', initials: 'AC' },
timestamp: '10:32 AM',
isOwn: false,
},
{
content: 'This is fire! The 808s hit different.',
sender: { name: 'You', initials: 'ME' },
timestamp: '10:33 AM',
isOwn: true,
status: 'read' as const,
},
{
content: 'Thanks! I spent 3 hours on the mix. Want the stems?',
sender: { name: 'Alex Chen', initials: 'AC' },
timestamp: '10:34 AM',
isOwn: false,
reactions: [{ emoji: '🔥', count: 2 }],
},
])
return (
{/* Background gradients */}
{/* Header */}
VEZA
/
TALAS
Design System v2.0
{/* Hero */}
Neon Ronin Aesthetic
Design System
A professional, modern, and elegant design system built for the VEZA music platform.
Production-ready components for your legacy frontend refactor.
{/* Main content */}
{/* Color Palette */}
{[
{ name: 'Primary (Cyan)', var: 'bg-primary', text: 'text-primary-foreground' },
{ name: 'Secondary (Magenta)', var: 'bg-secondary', text: 'text-secondary-foreground' },
{ name: 'Success (Lime)', var: 'bg-success', text: 'text-success-foreground' },
{ name: 'Warning', var: 'bg-warning', text: 'text-warning-foreground' },
{ name: 'Destructive', var: 'bg-destructive', text: 'text-destructive-foreground' },
{ name: 'Info', var: 'bg-info', text: 'text-info-foreground' },
].map((color) => (
))}
{['bg-background', 'bg-card', 'bg-muted', 'bg-accent', 'bg-border'].map((bg, i) => (
))}
{/* Typography */}
Heading 1 - Space Grotesk Bold
Heading 2 - Space Grotesk Semibold
Heading 3 - Space Grotesk Medium
Body text - Clean and readable for long-form content.
font-mono - JetBrains Mono for code and technical data
Gradient Text Effect
{/* Buttons */}
{/* Badges */}
Default
Secondary
Success
Warning
Destructive
Info
Outline
Muted
XP +500
Organic
LIVE
Premium
{/* Inputs */}
{/* Cards */}
Default Card
Standard card with subtle shadow
Basic card component for general content display.
Glow Card
Hover for cyan neon glow
Interactive card with primary color glow on hover.
Magenta Glow
Hover for magenta neon glow
Secondary color glow effect for featured content.
{/* Avatars */}
{/* Progress */}
{/* Audio Player */}
{/* Chat */}
{/* Stats & Gaming */}
{/* Form Controls */}
{/* Tabs */}
Tracks
Albums
Playlists
Artists
Your uploaded tracks will appear here. Start creating to see your music library grow.
Organize your tracks into albums for better discoverability.
Create and manage playlists to curate your favorite sounds.
Artists you collaborate with will show up here.
{/* Footer */}
)
}