Core building blocks of the Alquimia UI system. These components are built following shadcn's standards and are fully customizable using Tailwind CSS.
All the components are capable of receiving props and custom classnames.
Text input component with support for various states and styles.
Copy <Input placeholder="Enter your name" />
Textarea
Multi-line text input for longer form content.
Copy <Textarea placeholder="Write your message" />
Select
Dropdown selection component with customizable options.
Copy <Select {...props}>
<SelectTrigger aria-label="Food">
<SelectValue placeholder="Select a fruit..." />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>Fruits</SelectLabel>
<SelectItem value="apple">Apple</SelectItem>
<SelectItem value="banana">Banana</SelectItem>
<SelectItem value="grapes">Grapes</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
Checkbox
Selectable checkbox component with label support.
Copy <Checkbox id="terms" />
<Label htmlFor="terms">Accept terms</Label>
Switch
Toggle switch for boolean settings.
Copy <Switch {...props} checked={true} defaultChecked={false} />
Label
Form label component with proper accessibility.
Copy <Label htmlFor="email">Email address</Label>
Slider
Range input component for numerical values.
Copy <Slider defaultValue={[50]} max={100} step={1} />
Display Components
Avatar
User avatar display with fallback support.
Copy <Avatar>
<AvatarImage src="user.jpg" />
<AvatarFallback>JD</AvatarFallback>
</Avatar>
Badge
Status indicator or label component.
Copy <Badge variant="success">Completed</Badge>
Card
Container for related content.
Copy <Card>
<CardHeader>
<CardTitle>Title</CardTitle>
<CardDescription>Description</CardDescription>
</CardHeader>
<CardContent>Content</CardContent>
</Card>
Skeleton
Loading state placeholder.
Copy <Skeleton className="h-4 w-[200px]" />
AspectRatio
Maintains consistent width/height ratios.
Copy <AspectRatio ratio={16 / 9}>
<img src="image.jpg" alt="Image" />
</AspectRatio>
Typography
Text components with predefined styles.
Copy <Typography typeStyle="display">{value}</Typography>
Interactive Components
Multi-purpose button component with variants.
Copy <Button variant="default" size="sm">Click me</Button>
<Button variant="outline" size="sm">Cancel</Button>
Toggle
Togglable button component.
Copy <Toggle variant="default" size="sm">
Toggle
</Toggle>
Navigation Components
Tabs
Tabbed interface component.
Copy <Tabs layout="centered">
<TabsList>
{tabs.map((tab) => (
<TabsTrigger key={tab.value} value={tab.value}>
{tab.label}
</TabsTrigger>
))}
</TabsList>
{tabs.map((tab) => (
<TabsContent key={tab.value} value={tab.value}>
{tab.content}
</TabsContent>
))}
</Tabs>
Breadcrumb
Navigation path indicator.
Copy const separator = <span style={{ margin: "0 4px" }}>|</span>
<Breadcrumb aria-label="breadcrumb">
<BreadcrumbList>
{items.map((item, index) => (
<BreadcrumbItem key={index}>
{item.current ? (
<BreadcrumbPage>{item.label}</BreadcrumbPage>
) : (
<BreadcrumbLink href={item.href}>{item.label}</BreadcrumbLink>
)}
{index < items.length - 1 &&
(separator ? separator : <BreadcrumbSeparator />)}
</BreadcrumbItem>
))}
</BreadcrumbList>
</Breadcrumb>
Overlay Components
Dialog
Modal dialog for important content.
Copy <Dialog open={isOpen} onOpenChange={onClose}>
<DialogTrigger>Open</DialogTrigger>
<DialogContent aria-describedby={"document-description"}>
<DialogHeader>
<DialogTitle>Dialog Title</DialogTitle>
</DialogHeader>
</DialogContent>
</Dialog>
Popover
Floating content container.
Copy <Popover>
<PopoverTrigger>Info</PopoverTrigger>
<PopoverContent>Details here</PopoverContent>
</Popover>
Toast
Notification system component. This component is intented to use with the Toaster component generally placed in the root of the application. this is initializes the context for the toast, and can be used across the app with the useToast hook.
Copy const { toast } = useToast();
<html lang="en">
<body className={nunito.className}>
{children}
<Toaster />
<Button
variant="outline"
onClick={() => {
toast({
title: "Scheduled: Catch up ",
description: "Friday, February 10, 2023 at 5:57 PM",
action: (
<ToastAction altText="Goto schedule to undo">Undo</ToastAction>
),
});
}}
>
Add to calendar
</Button>
</body>
</html>;
Data Display
Table
Data table with sorting and selection.
Copy <Table>
{caption && <TableCaption>{caption}</TableCaption>}
<TableHeader>
<TableRow>
{headers.map((header, index) => (
<TableHead key={index}>{header}</TableHead>
))}
</TableRow>
</TableHeader>
<TableBody>
{data.map((row, rowIndex) => (
<TableRow key={rowIndex}>
{row.map((cell, cellIndex) => (
<TableCell key={cellIndex}>{cell}</TableCell>
))}
</TableRow>
))}
</TableBody>
<TableFooter>
<TableRow>
<TableCell colSpan={headers.length}>Footer content</TableCell>
</TableRow>
</TableFooter>
</Table>
Customizable scrollable container.
Copy <ScrollArea className="flex-grow mb-4">
<div>Scrollable content</div>
</ScrollArea>
Feedback Components
Alert
Contextual feedback messages.
Copy <Alert variant="info">
<AlertTitle>Info</AlertTitle>
<AlertDescription>Update completed.</AlertDescription>
</Alert>
Loader
Loading state indicator.
Copy <Loader size="default" />
RichText
Formatted text content display.
Copy <RichText content={markdownContent} />
Utility Components
Drawer
Side panel component.
Copy <Drawer>
<DrawerTrigger>Open</DrawerTrigger>
<DrawerContent>
<DrawerHeader>
<DrawerTitle>Title</DrawerTitle>
<DrawerDescription>
Description
</DrawerDescription>
</DrawerHeader>
Drawer content
</DrawerContent>
</Drawer>
Last updated 4 months ago