[EuiToolTip] Update the default font size#9627
Conversation
d010acc to
4346cae
Compare
4346cae to
7497856
Compare
There was a problem hiding this comment.
Pull request overview
This change updates EuiToolTip as a shared primitive across EUI: it removes the old configurable delay flow introduced in the linked tooltip work, switches visibility handling to synchronous + CSS-delayed animation, and then applies the requested default font-size reduction to xs/12px for issue #9560.
Changes:
- Makes
EuiToolTipshow/hide synchronously, removes the publicdelayAPI and related RTL helpers, and updates tooltip manager behavior. - Changes the default tooltip text size from
stoxsand simplifies the tooltip animation to opacity-only. - Propagates the tooltip API/test/story changes through wrappers, consumers, docs, and changelog entries.
Reviewed changes
Copilot reviewed 43 out of 60 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
packages/website/docs/components/display/tooltip.mdx |
Removes deprecated tooltip delay example from docs. |
packages/eui/src/test/rtl/component_helpers.ts |
Removes tooltip wait helpers; keeps focus-visible tooltip helper. |
packages/eui/src/test/rtl/component_helpers.d.ts |
Drops declarations for removed tooltip RTL helpers. |
packages/eui/src/components/tool_tip/tool_tip.tsx |
Removes runtime delay logic and makes tooltip visibility synchronous. |
packages/eui/src/components/tool_tip/tool_tip.test.tsx |
Updates tooltip unit tests for synchronous show/hide behavior. |
packages/eui/src/components/tool_tip/tool_tip.styles.ts |
Changes default tooltip font size and animation styling. |
packages/eui/src/components/tool_tip/tool_tip.stories.tsx |
Updates tooltip Storybook defaults and VRT wait behavior. |
packages/eui/src/components/tool_tip/tool_tip_manager.ts |
Prevents self-hiding on repeated registration of the same tooltip. |
packages/eui/src/components/tool_tip/tool_tip_manager.test.ts |
Adds coverage for same-tooltip re-registration. |
packages/eui/src/components/tool_tip/icon_tip.tsx |
Removes delay from EuiIconTip-forwarded tooltip props. |
packages/eui/src/components/tool_tip/icon_tip.test.tsx |
Updates icon tooltip tests for synchronous visibility. |
packages/eui/src/components/tool_tip/icon_tip.stories.tsx |
Removes deprecated delay story arg from icon tooltip story. |
packages/eui/src/components/table/table_header_cell.test.tsx |
Updates table header tooltip tests. |
packages/eui/src/components/selectable/selectable_list/selectable_list_item.test.tsx |
Updates selectable-item tooltip tests. |
packages/eui/src/components/markdown_editor/markdown_editor_toolbar.tsx |
Removes long tooltip delays from markdown toolbar buttons. |
packages/eui/src/components/list_group/list_group_item.tsx |
Removes long tooltip delay from list-group items. |
packages/eui/src/components/list_group/list_group_item.test.tsx |
Updates list-group tooltip tests. |
packages/eui/src/components/key_pad_menu/key_pad_menu_item.tsx |
Removes delay from keypad menu tooltip prop surface and usage. |
packages/eui/src/components/key_pad_menu/key_pad_menu_item.test.tsx |
Updates keypad menu tooltip tests. |
packages/eui/src/components/filter_group/filter_select_item.tsx |
Moves focused-tooltip toggling out of render into lifecycle hooks. |
packages/eui/src/components/filter_group/filter_select_item.test.tsx |
Updates focused filter-item tooltip tests. |
packages/eui/src/components/date_picker/super_date_picker/super_update_button.test.tsx |
Removes deprecated tooltip delay usage from tests. |
packages/eui/src/components/datagrid/controls/keyboard_shortcuts.tsx |
Removes long tooltip delay from datagrid keyboard shortcut button. |
packages/eui/src/components/datagrid/controls/fullscreen_selector.tsx |
Removes long tooltip delay from fullscreen selector button. |
packages/eui/src/components/datagrid/controls/display_selector.tsx |
Removes long tooltip delay from display selector button. |
packages/eui/src/components/copy/copy.test.tsx |
Updates copy tooltip tests for synchronous behavior. |
packages/eui/src/components/context_menu/context_menu_item.test.tsx |
Updates context-menu tooltip tests and props. |
packages/eui/src/components/combo_box/combo_box.test.tsx |
Updates combo box tooltip tests. |
packages/eui/src/components/color_picker/saturation.test.tsx |
Updates saturation tooltip tests. |
packages/eui/src/components/color_picker/hue.test.tsx |
Updates hue tooltip tests. |
packages/eui/src/components/color_picker/color_picker_swatch.tsx |
Removes delay from swatch tooltip prop typing. |
packages/eui/src/components/color_picker/color_picker_swatch.test.tsx |
Updates swatch tooltip tests. |
packages/eui/src/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.test.tsx |
Updates collapsed-nav tooltip snapshot test timing assumptions. |
packages/eui/src/components/button/split_button/split_button.test.tsx |
Updates split-button tooltip tests. |
packages/eui/src/components/button/split_button/split_button.stories.tsx |
Removes deprecated tooltip delay VRT arg from split-button story. |
packages/eui/src/components/button/button_group/button_group.test.tsx |
Updates button-group tooltip tests and props. |
packages/eui/src/components/button/button_group/button_group.stories.tsx |
Removes deprecated tooltip delay story args from button-group story. |
packages/eui/src/components/basic_table/table_types.ts |
Removes delay from public table tooltip prop typing. |
packages/eui/src/components/basic_table/default_item_action.tsx |
Removes long tooltip delay from default table actions. |
packages/eui/src/components/basic_table/default_item_action.test.tsx |
Updates default item action tooltip tests. |
packages/eui/src/components/basic_table/collapsed_item_actions.tsx |
Removes long tooltip delay from collapsed table actions. |
packages/eui/src/components/basic_table/collapsed_item_actions.test.tsx |
Updates collapsed action tooltip tests. |
packages/eui/changelogs/upcoming/9627.md |
Adds changelog entry for tooltip font-size change. |
packages/eui/changelogs/upcoming/9626.md |
Adds changelog entry for tooltip delay/animation API changes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@acstll good question! We coordinated the change with @JoseLuisGJ. It will be available in the next Figma library release (along with the same change to |
mgadewoll
left a comment
There was a problem hiding this comment.
🟢 Reviewed font-size changes only; it's looking as expected. I'll approve already now, before rebase.
|
Ah, I missed somehow that @acstll had already reviewed, sorry! 😅 |
7497856 to
79f5c71
Compare
|
@acstll @mgadewoll thank you both 🙏🏻 I rebased onto main and we can merge it before #9626, there should be no conflicts. |
💚 Build SucceededHistory
|
💚 Build Succeeded
History
|
|
Initially, the changes on this branch were based on top of #9626. After rebasing onto Because both of these PRs go into the same release, we decided to not revert and keep as is. |
## Dependency updates - `@elastic/eui` - v114.3.0 ⏩ v115.0.0 - `@elastic/eslint-plugin-eui` - v2.11.1 ⏩ v2.12.0 ## Package updates ### Summary > [!NOTE] > Please be mindful that as the Design System team we are not aware of your specific area pre-requisites and testing setups, and are realistically not capable of testing the entirety of Kibana. That being said, we want to do our best at migrating breaking changes. All tooltip usages were updated accordingly but there might be mistakes and bugs. That's why, **I would advise every reviewer to smoke-test their domain tooltips**. We'd also greatly appreciate your help with adjusting anything that may be wrong 🙏🏻 https://github.com/user-attachments/assets/2da29c89-aba1-40f9-ae3e-13790a34aedf - tooltips **no longer appear on programmatic focus return** (e.g. when closing flyouts, modals) - unless you're using the keyboard to navigate, - tooltips **do not persist on mouse click** which was annoying for the sighted users and tricky to handle in automated testing environments, - there's **no timeout-based delay** that's inconsistent across Kibana and makes the UI seem laggy, - we made the **animation simpler** and tooltip content **font-size smaller**, resulting in a better visual hierarchy, -VoiceOver no longer has problems with **announcing tooltip content** on trigger focus. These changes have been developed with [SC 1.4.13 Content on Hover or Focus](https://www.w3.org/TR/WCAG21/#content-on-hover-or-focus) in mind while providing the best possible UX. ### `@elastic/eui` [v115.0.0](https://github.com/elastic/eui/blob/main/packages/eui/changelogs/CHANGELOG_2026.md) - Updated `EuiToolTip` default font size from 14px to 12px ([#9627](elastic/eui#9627)) - Updated `EuiToolTip` show animation to opacity-only with a 150ms grace period delay, preventing visual flickering when quickly hovering over multiple tooltip triggers ([#9626](elastic/eui#9626)) - Updated `EuiToolTip` to respect input modality. Tooltip no longer persists on mouse-click focus or shows on programmatic focus return. ([#9624](elastic/eui#9624)) **Bug fixes** - Fixed `uiPlugins[].button` type to allow UI plugins to not have a toolbar button in `EuiMarkdownEditor` ([#9634](elastic/eui#9634)) - Fixed `EuiToolTip` self-hiding when the mouse moves over child elements within the trigger ([#9626](elastic/eui#9626)) **Breaking changes** - Removed `delay` prop and `ToolTipDelay` type from `EuiToolTip` and `EuiIconTip` ([#9626](elastic/eui#9626)) - Removed `waitForEuiToolTipVisible` and `waitForEuiToolTipHidden` RTL test helpers; tooltip show/hide is now synchronous so direct assertions can be used instead ([#9626](elastic/eui#9626)) **Accessibility** - Fixed invalid nested interactive elements in `EuiMarkdownEditor` by removing `role` from the drop zone wrapper. ([#9625](elastic/eui#9625)) ### `@elastic/eslint-plugin-eui` [v2.12.0](https://github.com/elastic/eui/blob/main/packages/eslint-plugin/changelogs/CHANGELOG_2026.md) - Added a new `prefer-tooltip-trigger-focus-test-utility` rule that flags `fireEvent.focus()` inside `it`/`test` blocks that also query for a tooltip. The rule auto-fixes to `focusEuiToolTipTrigger` from EUI's RTL test utilities. ([#9624](elastic/eui#9624)) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
## Dependency updates - `@elastic/eui` - v114.3.0 ⏩ v115.0.0 - `@elastic/eslint-plugin-eui` - v2.11.1 ⏩ v2.12.0 ## Package updates ### Summary > [!NOTE] > Please be mindful that as the Design System team we are not aware of your specific area pre-requisites and testing setups, and are realistically not capable of testing the entirety of Kibana. That being said, we want to do our best at migrating breaking changes. All tooltip usages were updated accordingly but there might be mistakes and bugs. That's why, **I would advise every reviewer to smoke-test their domain tooltips**. We'd also greatly appreciate your help with adjusting anything that may be wrong 🙏🏻 https://github.com/user-attachments/assets/2da29c89-aba1-40f9-ae3e-13790a34aedf - tooltips **no longer appear on programmatic focus return** (e.g. when closing flyouts, modals) - unless you're using the keyboard to navigate, - tooltips **do not persist on mouse click** which was annoying for the sighted users and tricky to handle in automated testing environments, - there's **no timeout-based delay** that's inconsistent across Kibana and makes the UI seem laggy, - we made the **animation simpler** and tooltip content **font-size smaller**, resulting in a better visual hierarchy, -VoiceOver no longer has problems with **announcing tooltip content** on trigger focus. These changes have been developed with [SC 1.4.13 Content on Hover or Focus](https://www.w3.org/TR/WCAG21/#content-on-hover-or-focus) in mind while providing the best possible UX. ### `@elastic/eui` [v115.0.0](https://github.com/elastic/eui/blob/main/packages/eui/changelogs/CHANGELOG_2026.md) - Updated `EuiToolTip` default font size from 14px to 12px ([#9627](elastic/eui#9627)) - Updated `EuiToolTip` show animation to opacity-only with a 150ms grace period delay, preventing visual flickering when quickly hovering over multiple tooltip triggers ([#9626](elastic/eui#9626)) - Updated `EuiToolTip` to respect input modality. Tooltip no longer persists on mouse-click focus or shows on programmatic focus return. ([#9624](elastic/eui#9624)) **Bug fixes** - Fixed `uiPlugins[].button` type to allow UI plugins to not have a toolbar button in `EuiMarkdownEditor` ([#9634](elastic/eui#9634)) - Fixed `EuiToolTip` self-hiding when the mouse moves over child elements within the trigger ([#9626](elastic/eui#9626)) **Breaking changes** - Removed `delay` prop and `ToolTipDelay` type from `EuiToolTip` and `EuiIconTip` ([#9626](elastic/eui#9626)) - Removed `waitForEuiToolTipVisible` and `waitForEuiToolTipHidden` RTL test helpers; tooltip show/hide is now synchronous so direct assertions can be used instead ([#9626](elastic/eui#9626)) **Accessibility** - Fixed invalid nested interactive elements in `EuiMarkdownEditor` by removing `role` from the drop zone wrapper. ([#9625](elastic/eui#9625)) ### `@elastic/eslint-plugin-eui` [v2.12.0](https://github.com/elastic/eui/blob/main/packages/eslint-plugin/changelogs/CHANGELOG_2026.md) - Added a new `prefer-tooltip-trigger-focus-test-utility` rule that flags `fireEvent.focus()` inside `it`/`test` blocks that also query for a tooltip. The rule auto-fixes to `focusEuiToolTipTrigger` from EUI's RTL test utilities. ([#9624](elastic/eui#9624)) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Summary
xs(12px) inEuiToolTipAPI Changes
N/A
Screenshots
Impact Assessment
Note: Most PRs should be tested in Kibana to help gauge their Impact before merging.
Impact level: 🟢 None
Release Readiness
Documentation: {link to docs page(s)}Figma: {link to Figma or issue}Migration guide: {steps or link, for breaking/visual changes or deprecations}Adoption plan (new features): {link to issue/doc or outline who will integrate this and where}QA instructions for reviewer
Checklist before marking Ready for Review
light/dark modes, high contrast, mobile,Chrome/Safari/Edge/Firefox,keyboard-only, screen readerQA: Tested in CodeSandbox and KibanaQA: Tested docs changesJest, Cypress, andVRTBreaking changes: Addedbreaking changelabel (if applicable)Reviewer checklist