UNPKG

angular-line-awesome

Version:

Angular Line Awesome is an Angular component to manage Line Awesome icons.

194 lines (137 loc) 8.89 kB
# Angular Line Awesome Angular Line Awesome is an [Angular](https://angular.io) component to manage [Line Awesome](https://icons8.com/line-awesome) icons. _Click [here](https://angular-line-awesome.herokuapp.com/) to see the demo examples in the component page._ # How to install **Install the package through [NPM](https://www.npmjs.com/package/angular-line-awesome)** `npm install angular-line-awesome` **Setup** 1. Import { AngularLineAwesomeModule, LaIconLibrary } from "angular-line-awesome" 2. Add AngularLineAwesomeModule to the imports array 3. Inject LaIconLibrary into the constructor of the module 4. Import an icon like "lasHippo" from "angular-line-awesome/icons" 5. Add icon to the library with library.addIcons([lasHippo]) in the AppModule constructor ```typescript //... import { AngularLineAwesomeModule, LaIconLibrary } from 'angular-line-awesome'; import { lasHippo, lasHeart, labAngular } from 'angular-line-awesome/icons'; @NgModule({ //... imports: [ //... AngularLineAwesomeModule ] //... }) export class AppModule { constructor(library: LaIconLibrary) { // Add an icon to the library for convenient access in other components library.addIcons([lasHippo, lasHeart, labAngular]); } } ``` # Usage and options | Name | Type | Options | Optional | | ---------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | icon | `String, IconProp` | [Line Awesome Icons](https://icons8.com/line-awesome) <br> \*Ignore the **_las_** and **_la-_** part, this will be added by default.\* | No | | title | `String` | Free text | Yes | | size | `String` | `xs, lg, sm, lx, 1x, 2x, 3x, 4x, 5x, 6x, 7x, 8x, 9x, 10x` | Yes | | fixedWidth | `Boolean` | `true, false` | Yes | | rotate | `Number, String` | `90, 180, 270` | Yes | | flip | `String` | `horizontal, vertical, both` | Yes | | pull | `String` | `left, right` | Yes | | spin | `Boolean` | `true, false` | Yes | | pulse | `Boolean` | `true, false` | Yes | | border | `Boolean` | `true, false` | Yes | | inverse | `Boolean` | `true, false` | Yes | | transform | `String` | `grow-NUMBER,`<br> `shrink-NUMBER,`<br> `up-NUMBER,`<br> `left-NUMBER,`<br> `right-NUMBER,`<br> `up-NUMBER,`<br> `down-NUMBER,` <br> `rotate-DEGREES,`<br> `flip-v,` <br> `flip-h` <br><br> \*NUMBER is a number representings pixel, DEGREES is a number representings degrees, e.g. **grow-1**, **rotate-90\*** | Yes | **Examples** ```html <la-icon icon="hippo"></la-icon> <la-icon icon="hippo" size="2x"></la-icon> <la-icon icon="hippo" rotate="90"></la-icon> <la-icon icon="hippo" flip="horizontal"></la-icon> <la-icon icon="hippo" pull="right"></la-icon> <la-icon icon="hippo" spin="true"></la-icon> <la-icon icon="hippo" pulse="true"></la-icon> <la-icon icon="hippo" border="true"></la-icon> <la-icon icon="hippo" inverse="true"></la-icon> <la-icon icon="las hippo" transform="grow-10 down-4 right-8 rotate-45 flip-v flip-h"></la-icon> ``` Note: the prefix is not necessary because the library uses the prefix 'las' as default. **Angular bind sintaxe** ```html <!-- ['las', 'hippo'] is an array that indicates the [prefix, iconName] --> <la-icon [icon]="['las', 'hippo']"></la-icon> ``` --- ```javascript // component ts icon: IconProp = { prefix: 'lab', iconName: 'angular' }; ``` ```html <!-- component view --> <la-icon [icon]="icon"></la-icon> ``` --- ```javascript // component ts icon: IconProp = ['lab', 'angular']; iconSize: string = '2x'; ``` ```html <!-- component view --> <la-icon [icon]="icon" [size]="iconSize"></la-icon> ``` --- ```javascript // component ts transform: Transform = { size: 1, x: 1, y: -1, rotate: 90, flipX: true, flipY: true }; ``` ```html <!-- component view --> <la-icon icon="lab angular" [transform]="transform"></la-icon> ``` ## Important release notes and breaking changes **_19.0.x_** - Angular 19 **_18.0.x_** - Angular 18 **_17.0.x_** - Angular 17 **_16.0.x_** - Angular 16 **_15.0.x_** - Angular 15 **_14.0.x_** - Angular 14 **_13.0.x_** - Angular 13 **_1.2.x_** - Angular 11 **_1.1.x_** - Angular 9 - Line Awesome 1.3.0 SVG Icons (the icons are now loaded in SVG format) - Tree shakable icons (import only the necessary icons) - Removed the Font Icons support From the 1.0.x version, there is a small breaking changes: - You need to import the icons that you are using in your AppModule - You can now remove the lineawesome package from your node modules - Remove the lineawesome styles import on your angular.json file **_1.0.x_** - Angular 8 - Line Awesome 1.3.0 Font Icons ## Contributions ```code Clone repo: git clone git@github.com:marco-martins/angular-line-awesome.git Build: npm run build angular-line-awesome Note: It's important to run the build with "npm run build" instead of "ng build" because there are some hooks running on "postbuild" Run the project (demo-example by default): ng serve Run the tests: ng test angular-line-awesome Pull requests to the DEVELOP branch ``` ## TODO - Create separated icons packages to the regular, solid and brands SVG icons