Each registered icon is stored by its icon name. For built-in Lucide icons, this is typically the kebab-case icon name.
For example, registering `LucideSquareCheck` makes it available as:
```html
<svg lucideIcon="square-check"></svg>
```
If an icon defines aliases, those aliases are also registered automatically.
## Registering custom icons
`provideLucideIcons` can also register custom icon data objects.
```ts [custom-icon.ts]
import { LucideIconData } from '@lucide/angular';
export const MyCustomIcon: LucideIconData = {
name: 'my-custom-icon',
node: [
['circle', { cx: 12, cy: 12, r: 8 }],
],
};
```
```ts [app.config.ts]
import { ApplicationConfig } from '@angular/core';
import { provideLucideIcons } from '@lucide/angular';
import { MyCustomIcon } from './custom-icon';
export const appConfig: ApplicationConfig = {
providers: [
provideLucideIcons(MyCustomIcon),
],
};
```
```html [app.html]
<svg lucideIcon="my-custom-icon"></svg>
```
## Using legacy icon nodes
If you have icons in the legacy node format, such as custom icons matching `lucide-angular` or `@lucide/lab`, you can convert them using `lucideLegacyIcon`.
```ts [app.config.ts]
import { ApplicationConfig } from '@angular/core';
import { provideLucideIcons, lucideLegacyIcon } from '@lucide/angular';