# NeoUI -- Icon Libraries
NeoUI ships three icon libraries, all included transitively with `NeoUI.Blazor`.
No additional install step is required.
## Packages & Counts
| Package | Icons | Style | Import |
|---------|-------|-------|--------|
| NeoUI.Icons.Lucide | 1,640 | Stroke (outline) | `@using NeoUI.Icons.Lucide` |
| NeoUI.Icons.Heroicons | 1,288 | 4 variants | `@using NeoUI.Icons.Heroicons` |
| NeoUI.Icons.Feather | 286 | Thin stroke | `@using NeoUI.Icons.Feather` |
---
## Lucide Icons (1,640 icons)
**Recommended default.** Clean, consistent stroke-weight icons covering almost every UI need.
### Component
```razor
```
### Parameters
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `Name` | `string` | required | Kebab-case icon name (e.g. `"chevron-down"`, `"loader-circle"`) |
| `Size` | `int` | `24` | Width and height in pixels |
| `Class` | `string?` | `null` | Additional CSS classes |
| `StrokeWidth` | `double` | `2` | SVG stroke-width attribute |
| `Color` | `string?` | `null` | Inline color override (prefer Tailwind classes) |
| `AriaLabel` | `string?` | `null` | Accessible label; set for meaningful icons |
| `AriaHidden` | `bool` | `true` | Set false for semantic icons |
### Icon Categories
**Actions:** check, x, plus, minus, edit-2, trash-2, copy, download, upload, share, refresh-cw, search, filter, sort-asc, sort-desc, more-horizontal, more-vertical
**Arrows & Navigation:** arrow-left, arrow-right, arrow-up, arrow-down, chevron-left, chevron-right, chevron-up, chevron-down, chevrons-left, chevrons-right, move, external-link, corner-up-left
**Files & Data:** file, file-text, folder, folder-open, database, table-2, server, cloud, cloud-upload, cloud-download, hard-drive, archive, package
**Communication:** mail, message-circle, message-square, phone, video, bell, bell-off, rss, send, inbox, at-sign
**UI & Layout:** layout, layout-dashboard, panel-left, panel-right, sidebar, menu, grid, list, columns, rows, maximize, minimize, expand, shrink, align-left, align-center, align-right
**Media:** play, pause, stop-circle, skip-back, skip-forward, volume-2, volume-x, image, camera, mic, headphones, music
**Users & Security:** user, users, user-plus, user-minus, lock, unlock, shield, shield-check, key, eye, eye-off, fingerprint
**Status & Feedback:** check, check-circle, circle-check, alert-circle, alert-triangle, info, help-circle, loader, loader-circle, zap, star, heart, thumbs-up, thumbs-down
**Time & Calendar:** calendar, calendar-days, clock, timer, history, hourglass
**Charts & Analytics:** bar-chart, bar-chart-2, bar-chart-4, line-chart, pie-chart, area-chart, activity, trending-up, trending-down
**Settings & Tools:** settings, settings-2, sliders-horizontal, tool, wrench, terminal, code, code-2, brackets, bug
**E-Commerce:** shopping-cart, shopping-bag, credit-card, tag, tags, percent, dollar-sign, receipt, package
**Misc:** globe, map-pin, home, building, bookmark, link, link-2, paperclip, flag, award, gift, lightbulb, moon, sun, contrast
### Usage Examples
```razor
@* Button with icon *@
@* Icon-only button *@
@* Status indicator *@
Saved successfully
@* Sidebar menu item *@
Dashboard
@* Spinner alternative *@
```
---
## Heroicons (1,288 icons)
Icons from Tailwind's design team, available in four visual weight variants.
### Component
```razor
```
### Parameters
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `Name` | `string` | required | Kebab-case icon name |
| `Variant` | `HeroIconVariant` | `Outline` | `Outline` \| `Solid` \| `Mini` \| `Micro` |
| `Size` | `int` | `24` | Width and height in pixels (Mini defaults to 20, Micro to 16) |
| `Class` | `string?` | `null` | CSS classes |
| `AriaLabel` | `string?` | `null` | Accessible label |
| `AriaHidden` | `bool` | `true` | Decorative by default |
### Variants
- **Outline** (24px default) -- 1.5px stroke, for primary UI
- **Solid** (24px default) -- Filled, for emphasis and active states
- **Mini** (20px default) -- Compact filled icons
- **Micro** (16px default) -- Smallest, inline-text scale
```razor
```
---
## Feather Icons (286 icons)
Minimalist, thin-stroke icon set -- great for clean, modern interfaces.
### Component
```razor
```
### Parameters
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `Name` | `string` | required | Kebab-case icon name |
| `Size` | `int` | `24` | Width and height in pixels |
| `Class` | `string?` | `null` | CSS classes |
| `StrokeWidth` | `double` | `2` | SVG stroke-width |
| `AriaLabel` | `string?` | `null` | Accessible label |
---
## Choosing an Icon Library
| Scenario | Recommendation |
|----------|---------------|
| General app UI | **Lucide** -- largest catalog, best coverage |
| Tailwind CSS projects | **Heroicons** -- designed to complement Tailwind |
| Minimal/editorial design | **Feather** -- clean, thin strokes |
| Mixed | Use Lucide as default; mix Heroicons for specific icons |
## Accessibility
```razor
@* Decorative icon -- hidden from screen readers (default) *@
@* Meaningful icon with label *@
@* Icon inside labeled button -- icon is decorative *@
```
## Finding Icons
- Lucide: https://lucide.dev/icons/ -- search by keyword, browse by category
- Heroicons: https://heroicons.com -- search and copy name
- Feather: https://feathericons.com -- browse full catalog
## Custom SVG Icons
```razor
@* Inline SVG when a named icon isn't available *@
```