Tooltip Overview
The Tooltip component in App Builder lets you surface contextual help or supplemental information when users hover over or focus on a target element in your application. Tooltips are configured visually through the Properties panel, and their trigger and content can all be customized without writing code.
Tooltips use the underlying Ignite UI Tooltip component and generate clean, framework-specific code for Angular, React, Blazor, and Web Components.
Key Features
Adding a Tooltip to a Component
Tooltips are enabled directly from the target component's Properties panel. To attach a tooltip:
- Select the target component on the Design Canvas.
- In the Properties panel, scroll to the Tooltip section.
- Toggle Enable Tooltip on.
- Click the Edit Tooltip link that appears to open the tooltip and configure its properties (Target, Mode, Show delay, Hide delay, Arrow).
Alternatively, you can add a Tooltip by dragging it from the Components Toolbox or using the quick-add shortcut Ctrl+E (⌘+E on Mac) and searching for "Tooltip".
Tooltip Content
You can bind the tooltip content to a variable or a data field from a connected data source, enabling dynamic, context-aware hints at runtime.
Show / Hide Delay
Control the responsiveness of tooltips by setting:
- Show delay — the time (ms) before the tooltip appears after the user hovers over the target. Defaults to 300 ms.
- Hide delay — the time (ms) before the tooltip disappears after the cursor leaves. Defaults to 0 ms.
These delays improve usability and prevent tooltip flicker for users who quickly move the cursor across multiple elements.
Mode
The Mode property controls how the tooltip is dismissed:
- Default — the tooltip appears on hover/focus and dismisses automatically when the cursor or focus leaves the target.
- Sticky — the tooltip remains visible until the user explicitly closes it.
Arrow
Toggle the directional Arrow indicator on or off. When enabled, a small arrow points from the tooltip toward its target element, making the association between the tooltip and its target visually clear.
Tooltip Trigger
By default, tooltips are triggered on hover (mouse) and focus (keyboard). This dual behavior ensures accessibility compliance with WCAG guidelines.
Supported Properties
| Property | Description |
|---|---|
| Target | The component the tooltip is attached to |
| Mode | How the tooltip is dismissed: default (auto) or sticky (manual) |
| Show delay | Delay (ms) before the tooltip is shown. Defaults to 300 |
| Hide delay | Delay (ms) before the tooltip is hidden. Defaults to 0 |
| Arrow | Toggles the directional arrow indicator on or off |
Accessibility
The Tooltip component is built with accessibility in mind:
- The target element receives
aria-describedbylinking it to the tooltip content. - Tooltips are keyboard-accessible via focus events.
- Screen reader support is provided through proper ARIA roles.
Code Generation
App Builder generates framework-specific tooltip code based on your visual configuration:
- Angular: Uses
igxTooltipandigxTooltipTargetdirectives from Ignite UI for Angular. - React: Uses the
IgrTooltipcomponent from Ignite UI for React. - Blazor: Uses
IgbTooltipfrom Ignite UI for Blazor. - Web Components: Uses
igc-tooltipfrom Ignite UI for Web Components.
Note
Tooltip content bound to variables or data fields is reflected in the generated code as dynamic bindings specific to each framework.
Known Issues and Limitations
- Nested tooltips are not allowed.
- Repeated tooltips in generated code:
- Angular ✔️
- React, Blazor, Web Components 🚧 — the tooltip does not get correctly attached to the repeated target.
- Tooltip in a repeated Select item: Tooltips attached to repeated Select items don't work in Angular unless the
ngProjectAsattribute is added to theng-containerwrapping the select item. For example:
<igx-select type="border" class="user-input">
@for (item of northwindCategories; track item) {
<ng-container ngProjectAs="igx-select-item">
<igx-select-item value="Option" #selectItem [igxTooltipTarget]="tooltip4" [showDelay]="300" [hideDelay]="0">
{{ item.name }}
</igx-select-item>
<div #tooltip4="tooltip" igxTooltip>
<div class="column-layout group_1">
<p class="ig-typography__body-2 text">
{{ item.description }}
</p>
</div>
</div>
</ng-container>
}
<label igxLabel>Label/Placeholder</label>
</igx-select>
