JSPM

  • Created
  • Published
  • Downloads 37848
  • Score
    100M100P100Q138478F
  • License MIT

Package Exports

  • @ng-icons/core
  • @ng-icons/core/package.json

Readme

logo

Ng Icons

The all-in-one icon library for Angular. This allows you to use icons from multiple icon sets with a single icon component. Containing over 28,000 icons for you to use in your projects.

Currently, we support the following libraries:

Got suggestions for additional iconsets? Create an issue and we can consider adding them!

Supported Versions

Angular Version Ng Icon Version
11.x.x 12.x.x
12.x.x 12.x.x - 13.x.x
13.x.x 13.x.x - 17.x.x
14.x.x 17.x.x - 22.x.x
15.x.x 23.x.x

Note: Ng Icons relies on modern browser features and is designed to work on evergreen browsers. We do not support older browsers such as IE11.

Installation

You must install the @ng-icons/core package, however you only need to install the iconset libraries you intend to use.

E.g:

npm i @ng-icons/core @ng-icons/heroicons ...

or

yarn add @ng-icons/core @ng-icons/heroicons ...

Packages

The following packages are available:

Package License
@ng-icons/core MIT
@ng-icons/bootstrap-icons MIT
@ng-icons/heroicons MIT
@ng-icons/ionicons MIT
@ng-icons/material-icons Apache 2.0
@ng-icons/material-file-icons MIT
@ng-icons/css.gg MIT
@ng-icons/feather-icons MIT
@ng-icons/jam-icons MIT
@ng-icons/octicons MIT
@ng-icons/radix-icons MIT
@ng-icons/tabler-icons MIT
@ng-icons/akar-icons MIT
@ng-icons/iconoir MIT
@ng-icons/cryptocurrency-icons CC0-1.0
@ng-icons/simple-icons CC0-1.0
@ng-icons/typicons CC-BY-SA-4.0
@ng-icons/dripicons CC-BY-SA-4.0
@ng-icons/ux-aspects Apache 2.0
@ng-icons/circum-icons MPL-2.0

Usage

Import the NgIconsModule and register the icons you wish to use:

import { NgIconsModule } from '@ng-icons/core';
import { featherAirplay } from '@ng-icons/feather-icons';
import { heroUsers } from '@ng-icons/heroicons/outline';

@NgModule({
  imports: [
    BrowserModule,
    NgIconsModule.withIcons({ featherAirplay, heroUsers }),
  ],
})
export class AppModule {}

You can register icons in multiple modules, this allows icons to be lazy loaded in child modules.

You can then use the icon in your templates:

<ng-icon name="featherAirplay"></ng-icon>
Name Type Description
size string Define the size of the icon. This defaults to the current font size.
color string Define the color of the icon. This defaults to the current text color.
strokeWidth string | number Define the stroke-width of the icon. This only works on iconsets that use strokes.

Standalone Components

As of version 18.0.0 Ng Icons nows supports standalone components. You can import icons using the provideIcons function which can be placed anywhere you can register providers. The optimal location would be in the @Component providers array.

You can also import the component directly by importing NgIconComponent or the NG_ICON_DIRECTIVES constant.

import { NgIconComponent, provideIcons } from '@ng-icons/core';
import { featherAirplay } from '@ng-icons/feather-icons';
import { heroUsers } from '@ng-icons/heroicons/outline';

@Component({
  standalone: true,
  imports: [NgIconComponent],
  providers: [provideIcons({ featherAirplay, heroUsers })],
})
export class AppComponent {}