Ant Design Icons for Angular
- Tree shake.
- Providing dynamic and static loading.
- Reduced bundle size (500KB less if you only use dynamic loading).
- Better performance because of no
svg => abstract node => svg
process.
Installation
ng add @ant-design/icons-angular
Usage
You should import IconModule
in your application's root module.
import { IconModule } from '@ant-design/icons-angular';
@NgModule({
imports: [
IconModule
]
})
export class AppModule { }
And register the icons that you need to IconService
(all or explicitly, we call it static loading):
ATTENTION! We strongly suggest you not to register all icons. That would increase your bundle's size dramatically.
import { Component, OnInit } from '@angular/core';
import { IconDefinition, IconService } from '@ant-design/icons-angular';
import { AccountBookFill } from '@ant-design/icons-angular/icons'
@Component({
selector : 'app-root',
templateUrl: './app.component.html',
styleUrls : ['./app.component.css']
})
export class AppComponent implements OnInit {
constructor(private _iconService: IconService) {
this._iconService.addIcon(...[ AccountBookFill ]);
this._iconService.twoToneColor = { primaryColor: '#1890ff' };
}
}
When you want to render an icon:
<i antIcon type="ant-cloud" theme="outline"></i>
Checkout the demo for more details.
For icons provided by Ant Design, we provide dynamic loading strategy to reduce bundle's size. Just config your angular.json
and you even don't need to register the icons! Checkout our examples
dir and angular.json
file for more details.
Directive Inputs
class IconDirevtive {
@Input() type: string | StringifyIconDefinition;
@Input() theme: ThemeType;
@Input() twoToneColor: string;
}