Skip to content

[EuiButtonGroup] Implement redesign #4 - Update Options API styles and implementations - #9953

Draft
mgadewoll wants to merge 6 commits into
elastic:mainfrom
mgadewoll:buttongroup/redesign-part-4
Draft

[EuiButtonGroup] Implement redesign #4 - Update Options API styles and implementations#9953
mgadewoll wants to merge 6 commits into
elastic:mainfrom
mgadewoll:buttongroup/redesign-part-4

Conversation

@mgadewoll

@mgadewoll mgadewoll commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Note

This PR is part 4 of implementing the new button group design and API.
It builds on the selection variant that was added in part 3.

  • What: Migrates EuiButtonGroup with the legacy Options API to use the new redesign styles aligning it with the styles of the previously added Children API. Additionally this PR updates all eui-internal usages.
  • Why: Part of the button group redesign work. Closes https://github.com/elastic/eui-private/issues/755.
  • How:
    • Added redesign styles (inset styles, similar to previous compressed styles) to Options API
    • Changes Options API selected state color to light grey (matching the default from Children API "display="regular")
    • Updated EuiFilterGroup styles (base alignment update only; there will be a standalone PR to fully update the component as part of https://github.com/elastic/eui-private/issues/728)
    • Updated EuiSuperDatePicker's TimeWindowButtons to use the new EuiButtonGroup with Children API
    • Updated EuiDataGrids EuiDataGridColumnSortingDraggable and RowHeightControl and DensityControl button group usages
    • Refactored euiButtonSizeMap to provide an inset height via getInsetHeight

API Changes

component / parent prop / child change description
EuiButtonGroup (Options API only) options Deprecated Use with the new Children API via children instead
EuiButtonGroup (Options API only) buttonSize="compressed" Soft deprecated Renders as s now internally.
EuiButtonGroup (Options API only) color Deprecated color="text" will be a static styling int he future.

Screenshots

Description Before After
light mode Screenshot 2026-08-25 at 10 35 00 Screenshot 2026-08-25 at 10 34 50
dark mode Screenshot 2026-08-25 at 10 35 20 Screenshot 2026-08-25 at 10 35 18
EuiFilterGroup Screenshot 2026-08-25 at 10 49 30 Screenshot 2026-08-25 at 10 49 42 Screenshot 2026-08-25 at 10 49 27 Screenshot 2026-08-25 at 10 49 36
EuiSuperDatePicker TimeWindowButtons Screenshot 2026-08-25 at 09 08 00 Screenshot 2026-08-25 at 09 08 09
EuiDataGrid column sorting Screenshot 2026-08-25 at 09 08 46 Screenshot 2026-08-25 at 09 50 10
EuiDataGrid display selectors Screenshot 2026-08-25 at 09 52 44 Screenshot 2026-08-25 at 09 52 50

Impact Assessment

Note: Most PRs should be tested in Kibana to help gauge their Impact before merging.

  • 🔴 Breaking changes — What will break? How many usages in Kibana/Cloud UI are impacted?
  • 💅 Visual changes — May impact style overrides; could require visual testing. Explain and estimate impact.
  • 🧪 Test impact — May break functional or snapshot tests (e.g., HTML structure, class names, default values).
  • 🔧 Hard to integrate — If changes require substantial updates to Kibana, please stage the changes and link them here.

Impact level: 🟢 None / 🟢 Low / 🟡 Moderate / 🔴 High

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

💻 Storybook
💻 Storybook kitchen sink

  • verify legacy EuiButtonGroup with Options API styles match the styles of the Children API with variant="selection"
  • verify that the selected state for the Options API uses backgrundLightText color instead of regular text filled button
  • verify there is no functional regression for the Options API with production
  • verify that buttonSize="compressed" renders same as s
  • verify that EuiFilterGroup (and internal EuiFilterButton styles are aligned with the new button group styles and there is no unexpected regression
  • verify that EuiDataGrids display selection and column sorting use the new Children API button group and there is no functional regression
  • verify that EuiSuperDatePickers time window buttons use the new Children API button group and there is no functional regression

Checklist before marking Ready for Review

Reviewer checklist

  • Approved Impact Assessment — Acceptable to merge given the consumer impact.
  • Approved Release Readiness — Docs, Figma, and migration info are sufficient to ship.

@mgadewoll mgadewoll self-assigned this Aug 25, 2026
@mgadewoll
mgadewoll force-pushed the buttongroup/redesign-part-4 branch from a68e91f to a4499d8 Compare August 25, 2026 11:54
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown

📷 36 visual difference(s) found

Look at the visual diff below. If everything is expected, run Approve visual changes to update baselines, re-run the job or make appropriate fixes.

See the visual regression testing wiki for more information.

Expand to review

euifilterbutton (4 differences)

StoryDiff %BeforeAfterDiff
full width and grow desktop 4.55%
full width and grow mobile 0.78%
high contrast desktop 4.61%
high contrast mobile 0.78%

euifiltergroup (2 differences)

StoryDiff %BeforeAfterDiff
playground desktop n/a
playground mobile 3.58%

euisearchbar (4 differences)

StoryDiff %BeforeAfterDiff
playground desktop 3.75%
playground mobile 3.02%
playground desktop n/a
playground mobile 4.83%

euisuperdatepicker (6 differences)

StoryDiff %BeforeAfterDiff
time window buttons compressed desktop 0.68%
time window buttons compressed mobile 2.66%
time window buttons desktop 0.73%
time window buttons mobile 2.84%
time window buttons with zoom in desktop 1.06%
time window buttons with zoom in mobile 4.21%

euibuttongroup (14 differences)

StoryDiff %BeforeAfterDiff
disabled with tooltips desktop 0.36%
disabled with tooltips mobile 1.43%
high contrast desktop n/a
high contrast mobile n/a
icon only desktop 21.24%
icon only mobile 21.24%
kitchen sink desktop 0.89%
kitchen sink mobile 3.02%
multi selection desktop n/a
multi selection mobile n/a
single selection desktop n/a
single selection mobile n/a
with tooltips desktop 0.35%
with tooltips mobile 1.38%

euidatagrid (4 differences)

StoryDiff %BeforeAfterDiff
column sorting desktop 0.23%
column sorting mobile 4.63%
display selector desktop 0.35%
display selector mobile 8.63%

euiinmemorytable (2 differences)

StoryDiff %BeforeAfterDiff
kitchen sink desktop 0.11%
kitchen sink mobile 0.10%

@mgadewoll
mgadewoll force-pushed the buttongroup/redesign-part-4 branch from a4499d8 to e96822c Compare August 25, 2026 13:34
@infra-vault-gh-plugin-prod

Copy link
Copy Markdown

💔 Build Failed

Failed CI Steps

History

cc @mgadewoll

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown

📷 36 visual difference(s) found

Look at the visual diff below. If everything is expected, run Approve visual changes to update baselines, re-run the job or make appropriate fixes.

See the visual regression testing wiki for more information.

Expand to review

euifilterbutton (4 differences)

StoryDiff %BeforeAfterDiff
full width and grow desktop 4.55%
full width and grow mobile 0.78%
high contrast desktop 4.61%
high contrast mobile 0.78%

euifiltergroup (2 differences)

StoryDiff %BeforeAfterDiff
playground desktop n/a
playground mobile 3.58%

euisearchbar (4 differences)

StoryDiff %BeforeAfterDiff
playground desktop 3.75%
playground mobile 3.02%
playground desktop n/a
playground mobile 4.83%

euisuperdatepicker (6 differences)

StoryDiff %BeforeAfterDiff
time window buttons compressed desktop 0.68%
time window buttons compressed mobile 2.66%
time window buttons desktop 0.73%
time window buttons mobile 2.84%
time window buttons with zoom in desktop 1.06%
time window buttons with zoom in mobile 4.21%

euibuttongroup (14 differences)

StoryDiff %BeforeAfterDiff
disabled with tooltips desktop 0.36%
disabled with tooltips mobile 1.42%
high contrast desktop n/a
high contrast mobile n/a
icon only desktop 21.24%
icon only mobile 21.24%
kitchen sink desktop 0.89%
kitchen sink mobile 3.02%
multi selection desktop n/a
multi selection mobile n/a
single selection desktop n/a
single selection mobile n/a
with tooltips desktop 0.35%
with tooltips mobile 1.39%

euidatagrid (4 differences)

StoryDiff %BeforeAfterDiff
column sorting desktop 0.23%
column sorting mobile 4.63%
display selector desktop 0.35%
display selector mobile 8.63%

euiinmemorytable (2 differences)

StoryDiff %BeforeAfterDiff
kitchen sink desktop 0.11%
kitchen sink mobile 0.10%

@infra-vault-gh-plugin-prod

infra-vault-gh-plugin-prod Bot commented Aug 25, 2026

Copy link
Copy Markdown

💔 Build Failed

Failed CI Steps

History

cc @mgadewoll

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant