tooltip

A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.

PreviousNext
import { Component } from '@angular/core';

import { ZardButtonComponent } from '@/shared/components/button';
import { ZardTooltipImports } from '@/shared/components/tooltip/tooltip.imports';

@Component({
  selector: 'z-demo-tooltip-hover',
  imports: [ZardButtonComponent, ZardTooltipImports],
  template: `
    <button type="button" z-button zType="outline" zTooltip="Tooltip content">Hover</button>
  `,
})
export class ZardDemoTooltipHoverComponent {}

Installation

Copy
npx zard-cli@latest add tooltip

Usage

import { ZardTooltipImports } from '@/shared/components/tooltip/tooltip.imports';
Copy
<button z-button zType="outline" zTooltip="Add to library">Hover</button>
Copy

Examples

hover

import { Component } from '@angular/core';

import { ZardButtonComponent } from '@/shared/components/button';
import { ZardTooltipImports } from '@/shared/components/tooltip/tooltip.imports';

@Component({
  selector: 'z-demo-tooltip-hover',
  imports: [ZardButtonComponent, ZardTooltipImports],
  template: `
    <button type="button" z-button zType="outline" zTooltip="Tooltip content">Hover</button>
  `,
})
export class ZardDemoTooltipHoverComponent {}

click

import { Component } from '@angular/core';

import { ZardButtonComponent } from '@/shared/components/button';
import { ZardTooltipImports } from '@/shared/components/tooltip/tooltip.imports';

@Component({
  selector: 'z-demo-tooltip-click',
  imports: [ZardButtonComponent, ZardTooltipImports],
  template: `
    <button type="button" z-button zType="outline" zTooltip="Tooltip content" zTrigger="click">Click</button>
  `,
})
export class ZardDemoTooltipClickComponent {}

position

import { Component } from '@angular/core';

import { ZardButtonComponent } from '@/shared/components/button';
import { ZardTooltipImports } from '@/shared/components/tooltip/tooltip.imports';

@Component({
  selector: 'z-demo-tooltip-position',
  imports: [ZardButtonComponent, ZardTooltipImports],
  template: `
    <div class="flex flex-col space-y-2">
      <button type="button" z-button zType="outline" zTooltip="Tooltip content" zPosition="top">Top</button>

      <div class="flex space-x-2">
        <button type="button" z-button zType="outline" zTooltip="Tooltip content" zPosition="left">Left</button>
        <button type="button" z-button zType="outline" zTooltip="Tooltip content" zPosition="right">Right</button>
      </div>

      <button type="button" z-button zType="outline" zTooltip="Tooltip content" zPosition="bottom">Bottom</button>
    </div>
  `,
})
export class ZardDemoTooltipPositionComponent {}

with keyboard shortcut

import { Component } from '@angular/core';

import { NgIcon, provideIcons } from '@ng-icons/core';
import { lucideSave } from '@ng-icons/lucide';

import { ZardButtonComponent } from '@/shared/components/button';
import { ZardKbdComponent } from '@/shared/components/kbd';
import { ZardTooltipDirective } from '@/shared/components/tooltip/tooltip';

@Component({
  selector: 'z-demo-kbd-tooltip',
  imports: [NgIcon, ZardButtonComponent, ZardTooltipDirective, ZardKbdComponent],
  template: `
    <button type="button" z-button [zTooltip]="shortcutTip" zType="outline" zSize="icon-sm">
      <ng-icon name="lucideSave" />
    </button>

    <ng-template #shortcutTip>
      Save changes
      <z-kbd>S</z-kbd>
    </ng-template>
  `,
  viewProviders: [provideIcons({ lucideSave })],
})
export class ZardDemoTooltipWithKbdComponent {}

disabled button

import { Component } from '@angular/core';

import { ZardButtonComponent } from '@/shared/components/button';
import { ZardTooltipImports } from '@/shared/components/tooltip/tooltip.imports';

@Component({
  selector: 'z-demo-tooltip-disabled-button',
  imports: [ZardButtonComponent, ZardTooltipImports],
  template: `
    <span zTooltip="This feature is currently unavailable" class="block" tabindex="0">
      <button type="button" z-button zType="outline" [zDisabled]="true">Disabled</button>
    </span>
  `,
})
export class ZardDemoTooltipDisabledButtonComponent {}

events

Event: none
import { Component } from '@angular/core';

import { ZardButtonComponent } from '@/shared/components/button';
import { ZardTooltipImports } from '@/shared/components/tooltip/tooltip.imports';

@Component({
  selector: 'z-demo-tooltip-events',
  imports: [ZardButtonComponent, ZardTooltipImports],
  template: `
    <div class="flex w-25 flex-col gap-4">
      <button type="button" z-button zType="outline" zTooltip="Tooltip content" (zShow)="onShow()" (zHide)="onHide()">
        Events
      </button>

      <span class="text-sm">Event: {{ event }}</span>
    </div>
  `,
})
export class ZardDemoTooltipEventsComponent {
  protected event = 'none';

  protected onShow() {
    this.event = '(zShow)';
  }

  protected onHide() {
    this.event = '(zHide)';
  }
}

API Reference

[z-tooltip]Component

A directive that shows a tooltip popup on hover or click.

PropertyDescriptionTypeDefault
zTooltip The text content of tooltip string -
zPosition The position of the tooltip 'top' | 'bottom' | 'left' | 'right' 'top'
zPositionOffset The position of the tooltip offset number 4
zTrigger The tooltip trigger mode 'hover' | 'click' 'hover'
zShowDelay Delay showing the tooltip after trigger in milliseconds number 150
zHideDelay Delay hiding the tooltip after trigger in milliseconds number 100
(zShow) Emitted when the tooltip is shown output<void> -
(zHide) Emitted when the tooltip is hidden output<void> -
github iconwhatsapp icondiscord iconX icon

Made with in Brazil. Open source and available on GitHub .