@mgustmann/heroicons v2.1.3
Angular Heroicons
A set of free MIT-licensed high-quality SVG icons for you to use in your web projects.
This project is a fork of https://github.com/renatoaraujoc/heroicons, which is a fork of https://github.com/tailwindlabs/heroicons. It fixes the issue that solid SVGs don't respect the fill and stroke attributes properly.
Preview and search icons at https://www.heroicons.com
Installing Library
npm i @mgustmann/heroiconsor
yarn add @mgustmann/heroiconsFirst steps
This library has been updated to Angular 13 (Ivy is default) and also to include two global (and child module level) options.
defaultHostDisplaywill determine which internaldisplayclass to use on host element (<hero-icon />), possible options areblock,inlineBlockornone(default isnone, which means this option is disabled).attachDefaultDimensionsIfNoneFoundoption is now introduced to try to figure out if the host element has any dimension (width or height), if nothing is found, it will provide a default dimension class foroutlineorsolidicon. (default isfalse, which means this option is disabled)
For best experience I recommend { defaultHostDisplay: 'inlineBlock', attachDefaultDimensionsIfNoneFound: true }!
On root module:
import { menu, HeroIconModule } from '@mgustmann/heroicons'
@NgModule({
declarations: [],
imports: [
HeroIconModule.forRoot(
{
menu,
},
{
defaultHostDisplay: 'inlineBlock', // default 'none'
attachDefaultDimensionsIfNoneFound: true, // default 'false'
}
),
],
})
export class AppModule {}On child modules
Call the module with withIcons function passing the wanted icons and optionally overriding the options, e.g.:
import { annotation, menu, HeroIconModule } from '@mgustmann/heroicons'
@NgModule({
declarations: [],
imports: [
HeroIconModule.withIcons(
{
annotation,
menu,
},
{
/**
* Child level options.
* Non passed options will use the rootModule options.
*/
defaultHostDisplay: 'block',
}
),
],
})
export class AppModule {}On views
Use the component like this:
<hero-icon name="annotation" hostDisplay="inlineBlock" type="outline" class="w-6 h-6"></hero-icon>
<hero-icon
name="annotation"
type="solid"
class="w-4 h-4 text-gray-600 hover:text-gray-500"
></hero-icon>
<hero-icon [name]="'menu'" [type]="'solid'" [class]="'w-4 h-4 text-red-900'"></hero-icon>