Complete reference for all design tokens, colors, typography, and components.
IBM Plex Sans
font-sanstext-xsThe quick brown fox jumps over the lazy dog
text-smThe quick brown fox jumps over the lazy dog
text-baseThe quick brown fox jumps over the lazy dog
text-lgThe quick brown fox jumps over the lazy dog
text-xlThe quick brown fox jumps over the lazy dog
text-2xlThe quick brown fox jumps over the lazy dog
text-3xlThe quick brown fox jumps over the lazy dog
text-4xlThe quick brown fox jumps over the lazy dog
text-5xlThe quick brown fox jumps over the lazy dog
font-normalThe quick brown fox
350font-mediumThe quick brown fox
400font-semiboldThe quick brown fox
450font-boldThe quick brown fox
500font-blackThe quick brown fox
600Text gradient effects for creating visually appealing text with gradient colors. Includes animated shimmer effects and static gradients.
The TextShimmer component creates an animated gradient that moves across text, perfect for loading states and attention-grabbing text.
Loading content...
Processing your request
Welcome
Loading content...
Processing your request
Welcome
The shimmer effect automatically adapts colors: uses foreground color in light mode and primary color in dark mode. The effect may be more subtle in light mode due to the gradient animation.
Static gradient text using Tailwind's gradient utilities with bg-clip-text and text-transparent.
Gradient from muted colors
Gradient with primary colors
Bold gradient text
Gradient from muted colors
Gradient with primary colors
Bold gradient text
import { TextShimmer } from '@/common/components'<TextShimmer duration={1.5} spread={2}>Loading...</TextShimmer>className="from-primary via-accent to-primary bg-gradient-to-r bg-clip-text text-transparent"Colors automatically adapt to light and dark modes. Toggle your theme to see the differences.
primarybg-primarytext-primary-foregroundsecondarybg-secondarytext-secondary-foregroundsurfacebg-surfacetext-surface-foregroundsurface-hoverbg-surface-hovertext-surface-hover-foregroundbackgroundbg-backgroundtext-foregroundforegroundbg-foregroundtext-backgroundmutedbg-mutedtext-muted-foregroundaccentbg-accenttext-accent-foregrounddestructivebg-destructivetext-destructive-foregroundcardbg-cardtext-card-foregroundpopoverbg-popovertext-popover-foregroundborderbg-bordertext-foregroundborder-subtlebg-border-subtletext-foregroundborder-strongbg-border-strongtext-foregroundinputbg-inputtext-foregroundringbg-ringtext-backgroundThe following examples show how components and colors appear in dark mode. Toggle dark mode in Settings to see live examples.
Dark mode colors are defined in globals.css under the .dark class:
.dark {
--background: 180 0% 10%;
--foreground: 180 0% 98%;
--primary: 14 93% 63%;
--secondary: 180 0% 8%;
--surface: 180 0% 6%;
/* ... and more */
}Expands accordion content
animate-accordion-expandCollapses accordion content
animate-accordion-collapseFades in with upward movement
animate-fade-in-upPops in with scale and fade
animate-pop-inExtra small subtle shadow
shadow-subtle-xsSmall subtle shadow
shadow-subtle-smcalc(var(--radius) - 4px)
rounded-smcalc(var(--radius) - 2px)
rounded-mdvar(--radius)
rounded-lgForm components for building user interfaces. All components adapt to light and dark modes.
Email Address
Password
Search
Email Address
Password
Search
Input variants: default, ghost | Sizes: default, smMessage
Message
Select an option
Select an option
Button-based switcher for selecting between multiple options. Commonly used for theme selection, view modes, and similar choices.
Theme Selection
View Mode
Theme Selection
View Mode
Required Field
Optional Field
(Optional)
Field with Description
This is a helpful description for the field.
Icon library used in the application. Icons are from @tabler/icons-react and lucide-react.
Syntax-highlighted code blocks with support for multiple languages. Automatically adapts to light and dark modes.
The CodeBlock component supports the following languages:
javascript
function greet(name) {
return `Hello, ${name}!`;
}
const message = greet('World');
console.log(message);typescript
const defaultVariant = 'default';
console.log(defaultVariant);typescript
const secondaryVariant = 'secondary';
console.log(secondaryVariant);// Code block without header
const noHeader = true;
console.log(noHeader);Dialog and AlertDialog components for creating modals and confirmation dialogs. All modals automatically adapt to light and dark modes.
Standard dialog component for displaying content in a modal overlay.
typescript
<Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger asChild>
<Button>Open Dialog</Button>
</DialogTrigger>
<DialogContent ariaTitle="Dialog Title">
<DialogHeader>
<DialogTitle>Dialog Title</DialogTitle>
<DialogDescription>
Dialog description text.
</DialogDescription>
</DialogHeader>
<div>
{/* Your content here */}
</div>
<DialogFooter>
<Button variant="ghost">Cancel</Button>
<Button variant="primary">Confirm</Button>
</DialogFooter>
</DialogContent>
</Dialog>Alert dialog component for confirmation actions and important messages.
typescript
<AlertDialog open={open} onOpenChange={setOpen}>
<AlertDialogTrigger asChild>
<Button variant="destructive">Delete</Button>
</AlertDialogTrigger>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle>Are you sure?</AlertDialogTitle>
<AlertDialogDescription>
This action cannot be undone.
</AlertDialogDescription>
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel>Cancel</AlertDialogCancel>
<AlertDialogAction>Delete</AlertDialogAction>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>Command dialog component for search functionality and quick actions. Typically triggered with keyboard shortcuts.
typescript
<CommandDialog open={open} onOpenChange={setOpen}>
<div className="flex w-full flex-row items-center gap-2 p-0.5">
<CommandInput placeholder="Search..." className="w-full" />
<div className="flex shrink-0 items-center gap-1 px-2">
<Kbd className="h-5 w-5">
<IconCommand size={12} />
</Kbd>
<Kbd className="h-5 w-5">T</Kbd>
</div>
</div>
<div className="w-full">
<div className="border-border h-[1px] w-full border-b" />
</div>
<CommandList>
<CommandEmpty>No results found.</CommandEmpty>
<CommandGroup heading="Actions">
<CommandItem value="action" onSelect={handleAction}>
<Icon /> Action Name
</CommandItem>
</CommandGroup>
</CommandList>
</CommandDialog>Settings modal with sidebar navigation pattern for organizing multiple settings sections.
typescript
<Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger asChild>
<Button>Open Settings</Button>
</DialogTrigger>
<DialogContent
ariaTitle="Settings"
className="h-full max-h-[600px] !max-w-[760px] p-0"
>
<div className="overflow-y-auto">
<h3 className="border-border mx-5 border-b py-4 text-lg font-bold">
Settings
</h3>
<div className="flex flex-row gap-6 p-4">
<div className="flex w-[160px] shrink-0 flex-col gap-1">
{tabs.map(tab => (
<Button
key={tab.key}
variant={activeTab === tab.key ? 'secondary' : 'ghost'}
onClick={() => setActiveTab(tab.key)}
>
{tab.icon}
{tab.title}
</Button>
))}
</div>
<div className="flex flex-1 flex-col px-4">
{renderTabContent(activeTab)}
</div>
</div>
</div>
</DialogContent>
</Dialog>All components automatically adapt to light and dark modes. Toggle dark mode in Settings to see live examples.
Buttons automatically adapt their colors, borders, and hover states for optimal contrast in both themes.
Badges automatically adjust colors for optimal contrast in both themes.
Alert components for displaying inline messages, warnings, and notifications. All variants automatically adapt to light and dark modes.
Alert variants: default, success, info, warning, destructive
Toast notifications for temporary messages that appear and automatically dismiss. Use the buttons below to trigger different toast variants.
Toast variants: default, destructive. Toasts automatically dismiss after a delay and can include action buttons.