IconButton Component v1.0.1

provides icon button functionality for Angular applications.

Overview

Import

Import the iconButton directive from the angular-awesome package:

// Import the iconButton directive
import { WaIconButtonDirective } from 'angular-awesome/icon-button';

Examples

Icon Button Examples

Basic Usage

<wa-icon-button name="star" label="Favorite"></wa-icon-button>

With Different Icon Variants

<!-- Regular variant -->
<wa-icon-button name="heart" variant="regular" label="Like"></wa-icon-button>

<!-- Solid variant -->
<wa-icon-button name="heart" variant="solid" label="Like"></wa-icon-button>

<!-- Brand icons -->
<wa-icon-button name="github" family="brands" label="GitHub"></wa-icon-button>
<wa-icon-button name="twitter" family="brands" label="Twitter"></wa-icon-button>

Disabled State

<wa-icon-button name="trash" label="Delete" disabled></wa-icon-button>

As Links

<wa-icon-button 
  name="external-link" 
  label="Visit Website" 
  href="https://example.com" 
  target="_blank">
</wa-icon-button>

<wa-icon-button 
  name="download" 
  label="Download File" 
  href="/assets/document.pdf" 
  download="document.pdf">
</wa-icon-button>

Using Custom SVG Source

<wa-icon-button src="/assets/icons/custom-icon.svg" label="Custom Action"></wa-icon-button>

Styling Icon Buttons

<!-- Using inline styles -->
<wa-icon-button 
  name="bell" 
  label="Notifications" 
  style="font-size: 1.5rem; color: #4a90e2;">
</wa-icon-button>

<!-- Using CSS classes -->
<style>
  .large-icon-button {
    font-size: 2rem;
  }
  .warning-icon-button {
    color: #f39c12;
    --background-color-hover: rgba(243, 156, 18, 0.1);
    --background-color-active: rgba(243, 156, 18, 0.2);
  }
</style>

<wa-icon-button 
  name="exclamation-triangle" 
  label="Warning" 
  class="large-icon-button warning-icon-button">
</wa-icon-button>

<!-- Using direct styling inputs -->
<wa-icon-button 
  name="heart" 
  label="Favorite" 
  [color]="'#ff0000'" 
  [fontSize]="'24px'" 
  [backgroundColor]="'#f8f8f8'">
</wa-icon-button>

<!-- Dynamic direct styling -->
<wa-icon-button 
  name="star" 
  label="Star" 
  [color]="isActive ? '#f39c12' : '#cccccc'" 
  [fontSize]="isLarge ? '2rem' : '1rem'">
</wa-icon-button>

Using with Angular Bindings

<wa-icon-button 
  [name]="iconName" 
  [family]="iconFamily" 
  [variant]="iconVariant"
  [label]="iconLabel"
  [disabled]="isDisabled"
  (focusEvent)="onFocus($event)"
  (blurEvent)="onBlur($event)">
</wa-icon-button>

<!-- Conditionally showing different icons -->
<wa-icon-button 
  [name]="isActive ? 'toggle-on' : 'toggle-off'" 
  [variant]="isActive ? 'solid' : 'regular'"
  [label]="isActive ? 'Deactivate' : 'Activate'"
  (click)="toggleActive()">
</wa-icon-button>

<!-- Using direct styling with Angular bindings -->
<wa-icon-button 
  [name]="iconName" 
  [label]="iconLabel" 
  [color]="iconColor" 
  [backgroundColor]="iconBackgroundColor" 
  [fontSize]="iconFontSize">
</wa-icon-button>

Common Use Cases

<!-- In a toolbar -->
<div class="wa-cluster wa-gap-s">
  <wa-icon-button name="bold" label="Bold"></wa-icon-button>
  <wa-icon-button name="italic" label="Italic"></wa-icon-button>
  <wa-icon-button name="underline" label="Underline"></wa-icon-button>
  <wa-icon-button name="align-left" label="Align Left"></wa-icon-button>
  <wa-icon-button name="align-center" label="Align Center"></wa-icon-button>
  <wa-icon-button name="align-right" label="Align Right"></wa-icon-button>
</div>

<!-- In a card header -->
<wa-card [withHeader]="true">
  <div slot="header" class="wa-split">
    <span>Card Title</span>
    <div class="wa-cluster wa-gap-xs">
      <wa-icon-button name="edit" label="Edit"></wa-icon-button>
      <wa-icon-button name="trash" label="Delete"></wa-icon-button>
    </div>
  </div>
  Card content goes here.
</wa-card>

<!-- With tooltip -->
<wa-icon-button id="info-button" name="circle-info" label="More Information"></wa-icon-button>
<wa-tooltip for="info-button">Click for more information</wa-tooltip>

API Reference

Styling