Skip to content

[Epic] [Component sweep] Tooltips: EuiToolTip #9440

@alexmarhaba

Description

@alexmarhaba

Project Board: https://github.com/orgs/elastic/projects/1079/views/81

Summary / Pitch

Tooltips in Kibana are inconsistent, sometimes invisible, and sometimes too visible. Browser tooltips appear where they shouldn't, EUI tooltips don't appear where they should, and there's a noticeable lag before any tooltip shows up. This epic fixes five user-facing tooltip problems, eliminating browser tooltips, removing hover delay, suppressing unwanted focus-return tooltips, ensuring every icon button has a tooltip, and reducing font size.

Context

Tooltips are the most widely used overlay component in Kibana (~135 files use EuiToolTip, ~90 use EuiIconTip), yet they have no centralized defaults, no lint enforcement, and no shared utilities.

Goals

  1. Browser tooltips leak through. ~20-30 interactive elements use the HTML title attribute, producing unstyled native tooltips that conflict with or replace EUI tooltips.
  2. Hover delay feels sluggish. EuiToolTip enforces a hardcoded 250ms delay with no instant option.
  3. Focus return triggers unwanted tooltips. Closing a modal or popover returns focus to the trigger, which unconditionally fires the tooltip.
  1. Icon buttons lack visible tooltips. Dozens of EuiButtonIcon instances have aria-label for screen readers but no tooltip for sighted users. Some have placeholder labels like aria-label={'oi'} that shipped to production.
  2. Font size is too large. Tooltips render at body-text size (~14px), competing visually with the content they describe.

On the DX side, six separate TooltipWrapper components exist across packages with different delay defaults, zero ESLint rules enforce tooltip patterns, and no developer documentation covers common pitfalls (disabled button tooltips, title attribute conflicts, disableScreenReaderOutput usage).

Out of scope

  • Chart tooltips (Elastic Charts / @elastic/charts tooltip system) — these are a separate rendering pipeline with different positioning logic.
  • Tooltip content authoring (i.e., what text to put in tooltips) — this is a content/UX writing concern, not a component concern.
  • Mobile / touch tooltip behavior — EuiToolTip does not currently support touch interactions and that is a separate effort.

Definition of Ready for Dev

Definition of done

Milestones

2026-04 (April)

[Pay down Tech Debt]

[Tackle biggest UX issues]

2026-05 (May)

[Stretch]

Useful Links

Metadata

Metadata

Labels

No labels
No labels

Type

No fields configured for Epic.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions