Free
Pro

Icon

ply-icon is easy way to add vector icons to your project. Use name="" to add preferred icon. Base theme has Base Icon Pack of 145 carefully curated icons. As well this way gives opportunity to add custom icons to your project. Override sprite paths once with provideBaseUI({ iconPath: 'assets/icons.svg' }) in app.config.ts — see Configuration. In this tutorial you can check how to do that.

free

View source

Playground

mirror
HTML
<ply-icon name="info-circle" mirror="auto" size="32">Icon</ply-icon>

Default Icon

Default icon example below.

Icon Color

Base Icon Pack is build with stroked icons. To control the color, use any color from Tailwindcss color palette classes with "stroke", for example class="stroke-slate-700".

Icon Size

Use Talwindcss classes width w- and height h- to control the icon size. It is mandatory to add equal values. There is no limits for preferred size

Installation

Run the following command to add this component to your project:

bash
npx ply-ui-cli add icon

API Reference

For AI agents

Copy a prompt with the registry name, CLI install, and import — or add the Ply MCP server.

bash
npx -y ply-ui-mcp

Ply provides standalone components. Import the exact elements you want to use into your component.

typescript (Example)
// Install: npx ply-ui-cli add icon
// Paths are relative to aliases.components (default: src/app/components)
import { IconComponent } from './icon/icon.component';

@Component({
  selector: 'app-your-component',
  imports: [
    IconComponent
  ],
  template: `...`
})
export class YourComponent {}

API for icon — generated from JSDoc in the library source.

API reference for icon
APIMemberTypeDefaultDescription
ply-iconclassstring''Additional host CSS classes (merged via cn()).
ply-iconnamestring | undefined''—
ply-iconpathstring''Outline sprite URL. Empty uses `provideBaseUI().iconPath` (default `assets/icons.svg`).
ply-iconcolorstring''—
ply-iconsizestring | number''Explicit size. Empty uses `provideBaseUI().defaultSize` unless the host already has a `w-*` / `h-*` class (those keep class-based sizing).
ply-iconfilledbooleanfalseRenders the solid variant from `filledPath` instead of the outline sprite.
ply-iconfilledPathstring''Solid sprite URL when `filled` is true. Empty uses `provideBaseUI().filledIconPath` (default `assets/icons-filled.svg`).
ply-iconmirror'auto' | 'on' | 'off''auto'`auto` mirrors icons that point left or right when an ancestor has `dir="rtl"`. `on` always mirrors. `off` keeps the glyph pointing the same way.