# Icons **Always use the project's configured `iconLibrary` for imports.** Check the `iconLibrary` field from project context: `lucide` → `lucide-react`, `tabler` → `@tabler/icons-react`, etc. Never assume `lucide-react`. --- ## Icons in Button use data-icon attribute Add `data-icon="inline-start"` (prefix) or `data-icon="inline-end"` (suffix) to the icon. No sizing classes on the icon. **Incorrect:** ```tsx ``` **Correct:** ```tsx ``` --- ## No sizing classes on icons inside components Components handle icon sizing via CSS. Don't add `size-4`, `w-4 h-4`, or other sizing classes to icons inside `Button`, `DropdownMenuItem`, `Alert`, `Sidebar*`, or other shadcn components. Unless the user explicitly asks for custom icon sizes. **Incorrect:** ```tsx Settings ``` **Correct:** ```tsx Settings ``` --- ## Pass icons as component objects, not string keys Use `icon={CheckIcon}`, not a string key to a lookup map. **Incorrect:** ```tsx const iconMap = { check: CheckIcon, alert: AlertIcon, } function StatusBadge({ icon }: { icon: string }) { const Icon = iconMap[icon] return } ``` **Correct:** ```tsx // Import from the project's configured iconLibrary (e.g. lucide-react, @tabler/icons-react). import { CheckIcon } from "lucide-react" function StatusBadge({ icon: Icon }: { icon: React.ComponentType }) { return } ```