SVG icon system with customizable colors and sizes. Default color is var(--color-icon).
Preset sizes:
size="small"size="default"size="large"Custom sizes (numeric):
size={12}size={28}size={32}size={48}var(--color-icon)
{ name: "heart", size: 32 }Custom color via className
{ name: "heart", size: 32, className: "text-blue-500" }Custom color via className
{ name: "delete", size: 32, className: "text-red-500" }Click any icon to copy its usage code to clipboard
Icon in DesignButton component
{ name: "plus", size: "default" }Icon with DesignInput component
{ name: "search", size: "default" }Icon in DropdownMenuItem
{ name: "edit", size: "default" }Icon as status with DesignCard
{ name: "check", size: "small" }Icon in navigation with DesignCard
{ name: "chevron-right", size: "default" }Icon in alert with DesignCard
{ name: "close", size: "default" }Error message
small (16px), default (20px), large (24px)size={32})var(--color-icon)className to customize color with Tailwind classescurrentColor to inherit text colorImport and Usage:
import { DesignIcon } from "@/components/ui/design-icon"
import { DesignButton } from "@/components/ui/design-button"
import { DesignInput } from "@/components/ui/design-input"
// Basic usage (default size: 20px)
<DesignIcon name="check" />
// Preset sizes
<DesignIcon name="check" size="small" /> // 16px
<DesignIcon name="check" size="default" /> // 20px
<DesignIcon name="check" size="large" /> // 24px
// Custom numeric size
<DesignIcon name="check" size={32} />
// Custom color
<DesignIcon name="check" className="text-blue-500" />
// In DesignButton
<DesignButton
leftIcon={<DesignIcon name="plus" />}
>
Add Item
</DesignButton>
// In DesignInput
<div className="relative">
<DesignIcon
name="search"
className="absolute left-3 top-1/2 -translate-y-1/2 z-10 pointer-events-none"
/>
<DesignInput placeholder="Search..." className="pl-9" />
</div>