# Icons **Always use the project's configured `iconLibrary` for imports.** Check the `iconLibrary` field from project context: `lucide` → `@lucide/vue`, `tabler` → `@tabler/icons-vue`, etc. Never assume `@lucide/vue`. --- ## 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:** ```html ``` **Correct:** ```html ``` --- ## 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:** ```html Settings ``` **Correct:** ```html Settings ``` --- ## Pass icons as component objects, not string keys Use `:icon="CheckIcon"`, not a string key to a lookup map. **Incorrect:** ```js ``` **Correct:** ```js ```