--- title: Combining icons - Angular description: Learn how to combine multiple icons into a single icon nested SVG elements in your Angular application. --- # Combining icons You can combine multiple icons into a single icon by using SVG in SVG. This is useful for if you want to be creative and make your own custom icons by combining existing icons. ::: sandpack {template=angular showTabs=false editorHeight=400 editorWidthPercentage=60 dependencies="@lucide/angular"} ```ts /src/app/app.component.ts [active] import { Component, ViewEncapsulation } from "@angular/core"; import { LucideScan, LucideUser } from "@lucide/angular"; @Component({ selector: 'app', imports: [LucideScan, LucideUser], template: ` `, styleUrls: ['./app.component.css'], encapsulation: ViewEncapsulation.None, }) export class App { } ``` ::: This is valid SVG and all SVG properties are supported on the icons. The `x` and `y` coordinates can be adjusted to position the icons as you like. ::: info Limitation When combining icons, you need to make sure that the `x` and `y` coordinates are within the `viewBox` of the outer icon (24x24). ::: ## With custom SVG elements You can also use SVG elements to create your own icons. ### Example with notification badge For example, you can add a notification badge to an icon by using the `circle` SVG element. ::: sandpack {template=angular showTabs=false editorHeight=400 editorWidthPercentage=60 dependencies="@lucide/angular"} ```ts /src/app/app.component.ts [active] import { Component, ViewEncapsulation, signal } from "@angular/core"; import { LucideMail } from "@lucide/angular"; @Component({ selector: 'app', imports: [LucideMail], template: ` @if (hasUnreadMessages()) { } `, styleUrls: ['./app.component.css'], encapsulation: ViewEncapsulation.None, }) export class App { protected readonly hasUnreadMessages = signal(true); } ``` ::: ### Example with text element You can also use the `text` SVG element to add text to your icon. ::: sandpack {template=angular showTabs=false editorHeight=400 editorWidthPercentage=60 dependencies="@lucide/angular"} ```ts /src/app/app.component.ts [active] import { Component, ViewEncapsulation } from "@angular/core"; import { LucideFile } from "@lucide/angular"; @Component({ selector: 'app', imports: [LucideFile], template: ` JS `, styleUrls: ['./app.component.css'], encapsulation: ViewEncapsulation.None, }) export class App { } ``` :::