[EuiComboBox] listbox UI enhancements#9538
Draft
mgadewoll wants to merge 20 commits intoelastic:feat/selectable-ui-enhancementsfrom
Draft
[EuiComboBox] listbox UI enhancements#9538mgadewoll wants to merge 20 commits intoelastic:feat/selectable-ui-enhancementsfrom
mgadewoll wants to merge 20 commits intoelastic:feat/selectable-ui-enhancementsfrom
Conversation
- based on review feedback design adjustment
- due to removed text padding
- this was originally part of EuiSelectableList already
- with this we can prevent showcasing unwanted prop combinations
17 tasks
Collaborator
💚 Build Succeededcc @mgadewoll |
Collaborator
💚 Build Succeeded
cc @mgadewoll |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Important
This PR is based on #9530 and #9532 and requires those PRs to be reviewed and merged first.
Once both are merged, this PR can be rebased.
Important
This PR merges into a feature branch
closes https://github.com/elastic/eui-private/issues/544
This PR updates
EuiComboBoxand its subcomponentsEuiComboBoxOptionsListby implementingEuiListItemLayoutas render component for list items instead of handling it custom.This change ensures that the new expected layout and style updates (Figma ideation specs) are implemented and aligned across different selection/list components.
Note
EuiListItemLayoutwas introduced in #9530.Changes
EuiComboBoxOptionsListto useEuiListItemLayout, replacing the custom logic and stylesbuttontoli(to align with native<select>as well asEuiSelectablethat use option in a listbox)aria-activedescendantand customisFocusedhighlightingidto use the originaloptionarray index instead of the mutated list indexaria-activedescendantworks as expected and does not lose focus on selecting an optionEuiComboBoxto exclude disabled options from list navigation (aligned with native<select>andEuiSelectablebehavior)findNextSelectableOptionIndexEuiComboBoxOptionsListto useVariableSizeListinstead ofFixedSizeListfromreact-windowEnterbadge by default. AddsonFocusBadgeprop (defaultfalse) instead (naming is chosen to be the same as forEuiSelectable)API Changes
EuiComboBoxOptionsListonFocusBadgeEnterkey should be pressed for selection.Screenshots
Accessibility Check
Note
Instead of following the default defined in
EuiListItemLayoutthat would usearia-checkedfor multi-selection,EuiComboBoxusesaria-selectedinstead as the selected list items are being removed.Screen.Recording.2026-03-27.at.16.04.33.mov
Screen.Recording.2026-03-25.at.17.08.13.mov
Screen.Recording.2026-03-27.at.16.05.28.mov
Screen.Recording.2026-03-27.at.16.02.02.mov
Impact Assessment
Impact level: 🟢 Low - 🟡 Moderate
This is an internal change, but since we're changing DOM elements and styles, tests and snapshots might fail and any custom style overrides might result in unexpected output.
The changes will go into a QA phase in Kibana to ensure nothing breaks unexpectedly.
Release Readiness
Documentation: {link to docs page(s)}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
💻 EuiComboBox storybook
onFocusBadge=trueChecklist before marking Ready for Review
QA: Tested docs changesBreaking changes: Addedbreaking changelabel (if applicable)Reviewer checklist