{"id":13808606,"url":"https://github.com/ng-icons/ng-icons","last_synced_at":"2026-05-29T10:00:56.653Z","repository":{"id":38046994,"uuid":"401142168","full_name":"ng-icons/ng-icons","owner":"ng-icons","description":"The ultimate icon library for Angular","archived":false,"fork":false,"pushed_at":"2026-04-20T17:11:16.000Z","size":132726,"stargazers_count":564,"open_issues_count":3,"forks_count":42,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-17T18:32:48.533Z","etag":null,"topics":["angular","bootstrap-icons","feather-icons","heroicons","icons","jam-icons","material-icons","octicons","radix-ui","tabler-icons"],"latest_commit_sha":null,"homepage":"https://ng-icons.github.io/ng-icons/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ng-icons.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"ashley-hunter","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"polar":null,"custom":null}},"created_at":"2021-08-29T21:04:49.000Z","updated_at":"2026-05-16T22:44:51.000Z","dependencies_parsed_at":"2024-01-12T03:12:24.438Z","dependency_job_id":"4d432722-68ad-4256-af21-25f7c0ce5c07","html_url":"https://github.com/ng-icons/ng-icons","commit_stats":{"total_commits":258,"total_committers":13,"mean_commits":"19.846153846153847","dds":"0.19767441860465118","last_synced_commit":"5c5f79981739112ed4628ca1e3a047be2adac483"},"previous_names":[],"tags_count":96,"template":false,"template_full_name":null,"purl":"pkg:github/ng-icons/ng-icons","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ng-icons%2Fng-icons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ng-icons%2Fng-icons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ng-icons%2Fng-icons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ng-icons%2Fng-icons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ng-icons","download_url":"https://codeload.github.com/ng-icons/ng-icons/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ng-icons%2Fng-icons/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33646428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","bootstrap-icons","feather-icons","heroicons","icons","jam-icons","material-icons","octicons","radix-ui","tabler-icons"],"created_at":"2024-08-04T01:01:47.279Z","updated_at":"2026-05-29T10:00:56.646Z","avatar_url":"https://github.com/ng-icons.png","language":"TypeScript","funding_links":["https://github.com/sponsors/ashley-hunter"],"categories":["Third Party Components"],"sub_categories":["Icons"],"readme":"\u003cimg width=\"600\" alt=\"logo\" src=\"https://github.com/ng-icons/ng-icons/assets/20795331/8781b0a9-2c8a-4a7f-9afd-13e47d14cffe\"\u003e\n\n\u003cdiv style=\"margin-top: 1rem;\"\u003e\n  \u003cimg alt=\"NPM Downloads\" src=\"https://img.shields.io/npm/dt/%40ng-icons%2Fcore\"\u003e\n  \u003cimg alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/%40ng-icons%2Fcore\"\u003e\n  \u003cimg alt=\"GitHub Sponsors\" src=\"https://img.shields.io/github/sponsors/ashley-hunter\"\u003e\n\u003c/div\u003e\n\n# Ng Icons\n\nThe all-in-one icon library for Angular. This allows you to use icons from multiple icon sets with a single icon component.\nContaining over 100,000 icons for you to use in your projects.\n\nCurrently, we support the following libraries:\n\n- [Bootstrap Icons](https://icons.getbootstrap.com/)\n- [Heroicons](https://heroicons.com/)\n- [Ionicons](https://ionic.io/ionicons)\n- [Material Icons](https://fonts.google.com/icons?selected=Material+Icons)\n- [Material File Icons](https://github.com/PKief/vscode-material-icon-theme)\n- [CSS.gg](https://css.gg/)\n- [Feather Icons](https://feathericons.com/)\n- [Jam Icons](https://jam-icons.com/)\n- [Octicons](https://github.com/primer/octicons)\n- [Radix UI Icons](https://www.radix-ui.com/icons)\n- [Tabler Icons](https://tabler-icons.io/)\n- [Akar Icons](https://akaricons.com/)\n- [Iconoir](https://iconoir.com/)\n- [Cryptocurrency Icons](http://cryptoicons.co/)\n- [Simple Icons](https://simpleicons.org/)\n- [Typicons](https://www.s-ings.com/typicons/)\n- [Dripicons](https://github.com/amitjakhu/dripicons)\n- [UX Aspects](https://uxaspects.github.io/UXAspects/)\n- [Circum Icons](https://circumicons.com/)\n- [Remix Icon](https://remixicon.com/)\n- [Font Awesome](https://fontawesome.com/)\n- [Iconsax](https://iconsax.io/)\n- [TDesign Icons](https://github.com/Tencent/tdesign-icons)\n- [Phosphor Icons](https://phosphoricons.com/)\n- [Lets Icons](https://www.figma.com/community/file/886554014393250663/free-icon-pack-1800-icons)\n- [Huge Icons](https://hugeicons.com/)\n- [Devicon](https://github.com/devicons/devicon/)\n- [Game Icons](https://game-icons.net/)\n- [Flag Icons](https://flagicons.lipis.dev/)\n- [Solar Icons](https://github.com/480-Design/Solar-Icon-Set)\n- [SVGL](https://svgl.app)\n- [Material Symbols](https://fonts.google.com/icons?icon.set=Material+Symbols)\n- [MynaUI](https://mynaui.com/icons)\n- [Boxicons](https://boxicons.com/)\n- [Mono Icons](https://icons.mono.company/)\n- [Lucide Icons](https://lucide.dev/)\n- [Coolicons](https://coolicons.cool/)\n\nGot suggestions for additional iconsets? Create an issue and we can consider adding them!\n\n## Supporting Ng Icons\n\nNg Icons is an MIT-licensed open source project with its ongoing development made possible by contributors and sponsors.\n\n[Become a Sponsor!](https://github.com/sponsors/ashley-hunter).\n\n## Supported Versions\n\n| Angular Version | Ng Icon Version |\n| --------------- | --------------- |\n| 11.x.x          | 12.x.x          |\n| 12.x.x          | 12.x.x - 13.x.x |\n| 13.x.x          | 13.x.x - 17.x.x |\n| 14.x.x          | 17.x.x - 22.x.x |\n| 15.x.x          | 23.x.x - 24.x.x |\n| 16.x.x          | 25.x.x          |\n| 17.x.x          | 26.x.x - 27.x.x |\n| 18.x.x          | 28.x.x - 29.x.x |\n| 19.x.x          | 30.x.x - 31.x.x |\n| 20.x.x          | 32.x.x          |\n| 21.x.x          | 33.x.x          |\n\n\u003e **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.\n\n## Installation\n\nYou must install the `@ng-icons/core` package, however you only need to install the iconset libraries you intend to use.\n\nE.g:\n\n```bash\nnpm i @ng-icons/core @ng-icons/heroicons ...\n```\n\nor\n\n```bash\nyarn add @ng-icons/core @ng-icons/heroicons ...\n```\n\n## Packages\n\nThe following packages are available:\n\n| Package                          | License                               |\n| -------------------------------- | ------------------------------------- |\n| `@ng-icons/core`                 | MIT                                   |\n| `@ng-icons/bootstrap-icons`      | MIT                                   |\n| `@ng-icons/heroicons`            | MIT                                   |\n| `@ng-icons/ionicons`             | MIT                                   |\n| `@ng-icons/material-icons`       | Apache 2.0                            |\n| `@ng-icons/material-file-icons`  | MIT                                   |\n| `@ng-icons/css.gg`               | MIT                                   |\n| `@ng-icons/feather-icons`        | MIT                                   |\n| `@ng-icons/jam-icons`            | MIT                                   |\n| `@ng-icons/octicons`             | MIT                                   |\n| `@ng-icons/radix-icons`          | MIT                                   |\n| `@ng-icons/tabler-icons`         | MIT                                   |\n| `@ng-icons/akar-icons`           | MIT                                   |\n| `@ng-icons/iconoir`              | MIT                                   |\n| `@ng-icons/cryptocurrency-icons` | CC0-1.0                               |\n| `@ng-icons/simple-icons`         | CC0-1.0                               |\n| `@ng-icons/typicons`             | CC-BY-SA-4.0                          |\n| `@ng-icons/dripicons`            | CC-BY-SA-4.0                          |\n| `@ng-icons/ux-aspects`           | Apache 2.0                            |\n| `@ng-icons/circum-icons`         | MPL-2.0                               |\n| `@ng-icons/remixicon`            | Apache 2.0                            |\n| `@ng-icons/font-awesome`         | CC BY 4.0                             |\n| `@ng-icons/iconsax`              | [Custom](https://iconsax.io/#license) |\n| `@ng-icons/tdesign-icons`        | MIT                                   |\n| `@ng-icons/phosphor-icons`       | MIT                                   |\n| `@ng-icons/lets-icons`           | CC-BY-4.0                             |\n| `@ng-icons/huge-icons`           | CC0-1.0                               |\n| `@ng-icons/devicon`              | MIT                                   |\n| `@ng-icons/game-icons`           | CC BY 3.0                             |\n| `@ng-icons/solar-icons`          | CC BY 4.0                             |\n| `@ng-icons/svgl`                 | MIT                                   |\n| `@ng-icons/material-symbols`     | Apache 2.0                            |\n| `@ng-icons/mynaui`               | MIT                                   |\n| `@ng-icons/boxicons`             | MIT                                   |\n| `@ng-icons/mono-icons`           | MIT                                   |\n| `@ng-icons/lucide`               | MIT                                   |\n| `@ng-icons/coolicons`            | CC-BY-4.0                             |\n\n## Usage\n\nImport the `NgIconsModule` and register the icons you wish to use:\n\n```ts\nimport { NgIconsModule } from '@ng-icons/core';\nimport { featherAirplay } from '@ng-icons/feather-icons';\nimport { heroUsers } from '@ng-icons/heroicons/outline';\n\n@NgModule({\n  imports: [BrowserModule, NgIconsModule.withIcons({ featherAirplay, heroUsers })],\n})\nexport class AppModule {}\n```\n\nYou can register icons in multiple modules, this allows icons to be lazy loaded in child modules.\n\nYou can then use the icon in your templates:\n\n```html\n\u003cng-icon name=\"featherAirplay\"\u003e\u003c/ng-icon\u003e\n```\n\n| Name        | Type                 | Description                                                                        |\n| ----------- | -------------------- | ---------------------------------------------------------------------------------- |\n| size        | `string`             | Define the size of the icon. This defaults to the current font size.               |\n| color       | `string`             | Define the color of the icon. This defaults to the current text color.             |\n| strokeWidth | `string` \\| `number` | Define the stroke-width of the icon. This only works on iconsets that use strokes. |\n\n### Standalone Components\n\nAs 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\nwould be in the `@Component` providers array.\n\nYou can also import the component directly by importing `NgIcon` or the `NG_ICON_DIRECTIVES` constant.\n\n```ts\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { featherAirplay } from '@ng-icons/feather-icons';\nimport { heroUsers } from '@ng-icons/heroicons/outline';\n\n@Component({\n  standalone: true,\n  imports: [NgIcon],\n  providers: [provideIcons({ featherAirplay, heroUsers })],\n})\nexport class AppComponent {}\n```\n\n#### Directly supplying an SVG\n\nShould you need to supply an SVG directly set the `svg` input to the SVG string. This avoids the need to register the icon.\nOnly icons from NG Icons iconsets will support the `color`, `size` and `strokeWidth` inputs.\n\n```ts\nimport { featherAirplay } from '@ng-icons/feather-icons';\n\n// parent.component.ts\n@Component({\n  standalone: true,\n  template: '\u003capp-child [icon]=\"icon\" /\u003e',\n})\nexport class ParentComponent {\n  icon = featherAirplay;\n}\n\n// child.component.ts\nimport { NgIcon } from '@ng-icons/core';\n\n@Component({\n  standalone: true,\n  selector: 'app-child',\n  imports: [NgIcon],\n  template: '\u003cng-icon [svg]=\"icon\" /\u003e',\n})\nexport class ChildComponent {\n  @Input({ required: true }) icon!;\n}\n```\n\n### Global Configuration\n\nYou can configure the default size of icons by providing a `NgIconsConfig` object to the `provideNgIconsConfig`:\n\n#### NgModule\n\n```ts\nimport { NgIconsModule, provideNgIconsConfig } from '@ng-icons/core';\nimport { featherAirplay } from '@ng-icons/feather-icons';\n\n@NgModule({\n  imports: [BrowserModule, NgIconsModule.withIcons({ featherAirplay, heroUsers })],\n  providers: [\n    provideNgIconsConfig({\n      size: '1.5em',\n      color: 'red',\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\n#### Standalone\n\n```ts\nimport { NgIcon, provideIcons, provideNgIconsConfig } from '@ng-icons/core';\n\nbootstrapApplication(AppComponent, {\n  providers: [\n    provideNgIconsConfig({\n      size: '1.5em',\n    }),\n  ],\n});\n```\n\n### Content Security Policy\n\nIf your application has a strict Content Security Policy (CSP) you may need to add the following to your global configuration to ensure you do not get any errors.\n\n```ts\nimport { NgIcon, provideIcons, provideNgIconsConfig, withContentSecurityPolicy } from '@ng-icons/core';\n\nbootstrapApplication(AppComponent, {\n  providers: [provideNgIconsConfig({}, withContentSecurityPolicy())],\n});\n```\n\n### Logging\n\nBy default Ng Icons will log warnings or errors to the console - notably if you try to use an icon that has not been registered.\nShould you want stricter checks you can enable the `ExceptionLogger` which will throw an error if you try to use an icon that has not been registered.\n\nYou can enable this by providing the `withExceptionLogger` function to the `provideNgIconsConfig` function.\n\n```ts\nimport { NgIcon, provideIcons, provideNgIconsConfig, withExceptionLogger } from '@ng-icons/core';\n\nbootstrapApplication(AppComponent, {\n  providers: [provideNgIconsConfig({}, withExceptionLogger())],\n});\n```\n\n### Dynamically Loading Icons\n\nThe most common way to load icons is simply by registering them individually, however you may want to load icons lazily from a URL, or generate an SVG programatically on the fly. This can be achived using an icon loader. Icon loaders are a function that receives the name of the requested icon, and can return an `Observable\u003cstring\u003e`, `Promise\u003cstring\u003e` or a `string` containing the SVG to render. Within this function you can do whatever you need to retrieve an icon.\n\nThe function is also run within the injection context, this allows you to inject dependencies as you need such as the `HttpClient`.\n\n```ts\nbootstrapApplication(AppComponent, {\n  providers: [\n    provideNgIconLoader(name =\u003e {\n      const http = inject(HttpClient);\n      return http.get(`/assets/icons/${name}.svg`, { responseType: 'text' });\n    }),\n  ],\n});\n```\n\nAdditionally add caching to your loader to prevent multiple requests for the same icon.\n\n```ts\nbootstrapApplication(AppComponent, {\n  providers: [\n    provideNgIconLoader(name =\u003e {...}, withCaching()),\n  ],\n});\n```\n\n## Experimental Features\n\n### Icon Stack\n\nNg Icons now supports icon stacking. This allows you to layer multiple icons on top of each other. This is useful for creating complex icons from multiple simpler icons.\n\n```html\n\u003cng-icon-stack size=\"32px\"\u003e\n  \u003cng-icon name=\"faCircle\" /\u003e\n  \u003cng-icon name=\"faFlag\" size=\"16px\" /\u003e\n\u003c/ng-icon-stack\u003e\n```\n\nThe `size` must be defined on the `ng-icon-stack` component. Any icons within the stack will inherit this size unless it is overridden.\n\n### Variable Icon Fonts\n\nWe have added support for variable icon fonts. This is currently only supported by the [Material Symbols](https://github.com/marella/material-symbols/tree/main/material-symbols#readme) iconset.\n\nTo enable this feature you must install the icon font and load the `material-symbols` stylesheet. Unlike the static SVG icons, Ng Icons does not bundle the icon font, you must load it yourself.\n\nTo use it you must register the variable fonts you want to use. The default iconset will be the first one registered.\n\n```ts\nimport { provideNgGlyphs } from '@ng-icons/core';\nimport { withMaterialSymbolsOutlined, withMaterialSymbolsRounded } from '@ng-icons/material-symbols';\n\nbootstrapApplication(AppComponent, {\n  providers: [provideNgGlyphs(withMaterialSymbolsOutlined(), withMaterialSymbolsRounded())],\n});\n```\n\nYou can then use the following in your HTML:\n\n```html\n\u003cng-glyph name=\"settings\" /\u003e\n```\n\nThe following inputs are available on `ng-glyph`:\n\n| Name        | Type                 | Description                                                                                             |\n| ----------- | -------------------- | ------------------------------------------------------------------------------------------------------- |\n| name        | `string`             | Define the name of the icon.                                                                            |\n| glyphset    | `string`             | Define the glyphset to use. This defaults to the first registered glyphset.                             |\n| size        | `string` \\| `number` | Define the size of the icon as a pixel value or as a CSS value. This defaults to the current text size. |\n| opticalSize | `number`             | Define the optical size of the icon in `px`. This defaults to `20`                                      |\n| color       | `string`             | Define the color of the icon. This defaults to the current text color.                                  |\n| weight      | `number`             | Define the weight of the icon. This defaults to `400`.                                                  |\n| grade       | `number`             | Define the grade of the icon. This defaults to `0`.                                                     |\n| fill        | `boolean`            | Define if the icon should be filled. This defaults to `false`.                                          |\n\nThe default values for `size`, `weight`, `grade` and `fill` can be configured using the `provideNgGlyphsConfig` function.\n\n```ts\nimport { provideNgGlyphsConfig } from '@ng-icons/core';\n\nbootstrapApplication(AppComponent, {\n  providers: [\n    provideNgGlyphsConfig({\n      size: 24,\n      weight: 400,\n      grade: 0,\n      fill: false,\n    }),\n  ],\n});\n```\n\nThis feature is experimental and does not follow the same versioning as the rest of the library. Breaking changes may be introduced at any time.\n\nWe appreciate any feedback you have on this feature.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fng-icons%2Fng-icons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fng-icons%2Fng-icons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fng-icons%2Fng-icons/lists"}