[Icons] Remove unused and deprecate icons - #9884
Conversation
6 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuiicon (2 differences)
euibuttongroup (4 differences)
|
acab7ef to
4d4e0ae
Compare
6 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuiicon (2 differences)
euibuttongroup (4 differences)
|
6 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuiicon (2 differences)
euibuttongroup (4 differences)
|
| starMinusFilled: 'starMinusFill', | ||
| starPlusFilled: 'starPlusFill', |
There was a problem hiding this comment.
This removal is safe, specifically starMinusFilled -> starMinusFill -> starFill. Same with Plus. There are no usages of it.
There was a problem hiding this comment.
Pull request overview
Removes unused EUI icons and deprecates aliases with documented ESLint autofix replacements.
Changes:
- Removed 13 icon types and assets.
- Deprecated 34 aliases and excluded them from docs.
- Updated tests and story usage.
Reviewed changes
Copilot reviewed 18 out of 38 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
packages/eui/src/components/icon/svgs/tear.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/security_signal_resolved.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/security_signal_detected.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/scale.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/page_select.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/magnet.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/kubernetes_node.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/function.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/dot_in_circle.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/continuity_below.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/continuity_above_below.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/branch_user.svg |
Removed source SVG. |
packages/eui/src/components/icon/svgs/article.svg |
Removed source SVG. |
packages/eui/src/components/icon/icon_map.ts |
Removed types and marked deprecated aliases. |
packages/eui/src/components/icon/icon_glyphs.a11y.tsx |
Updated tested glyph inventory. |
packages/eui/src/components/icon/assets/tear.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/security_signal_resolved.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/security_signal_detected.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/scale.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/page_select.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/magnet.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/kubernetes_node.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/function.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/dot_in_circle.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/continuity_below.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/continuity_above_below.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/branch_user.tsx |
Removed generated asset. |
packages/eui/src/components/icon/assets/article.tsx |
Removed generated asset. |
packages/eui/src/components/icon/__snapshots__/icon.test.tsx.snap |
Removed obsolete snapshots. |
packages/eui/src/components/button/button_group/button_group.stories.tsx |
Replaced removed story icons. |
packages/eslint-plugin/src/rules/no_deprecated_icon_aliases.ts |
Added alias migration autofixes. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
443101b to
4f7ecc0
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 33 changed files in this pull request and generated no new comments.
Suppressed comments (3)
packages/eui/src/components/icon/assets/magnet.tsx:1
magnetis still rendered by the compressed-forms documentation atpackages/website/docs/components/forms/layouts/compressed-forms.mdx:677. Deleting this asset and its map entry leaves that example requesting an unavailable icon, so the icon is not currently unused. Migrate that example to an available icon before removingmagnet, or retain the icon until its usage is removed.
packages/eslint-plugin/src/rules/no_deprecated_icon_aliases.ts:171- Removing these two existing entries disables the rule and autofix for the legacy
starMinusFilledandstarPlusFilledaliases. Keep their migration paths while routing them directly to the newly preferred final icon types, just as this change does forstarFilledSpace.
starFilledSpace: 'starFill',
starMinusEmpty: 'star',
starMinusFill: 'starFill',
starPlusEmpty: 'star',
starPlusFill: 'starFill',
packages/eui/changelogs/upcoming/9884.md:5
- The 13 icon-type removals alter the public
EuiIcontype API, but this entry is currently in the unheaded/default changelog section. The repository changelog template classifies removals under Breaking changes (packages/eui/changelogs/upcoming/_template.md:11-13); label this entry accordingly so release consumers can identify the breaking change.
- Removed 13 unused icon types
37 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuiicon (2 differences)
euititle (1 difference)
euifieldtext (2 differences)
euiform (3 differences)
euiradio (1 difference)
euiselectable (7 differences)
euiflexgroup (1 difference)
euimodal (1 difference)
euibuttongroup (4 differences)
euipagination (1 difference)
euidatagrid (11 differences)
euitable (2 differences)
euioutsideclickdetector (1 difference)
|
|
Thanks @weronikaolejniczak I added a few Kibana examples where we use some of the icons that need decision. @MichaelMarcialis can you check the Icons that require a decision (not addressed) list and make a decision straightforward decision on each one? |
b6c75b6 to
d29c35b
Compare
8 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuiicon (2 differences)
euibuttongroup (4 differences)
euidatagrid (2 differences)
|
|
@JoseLuisGJ @MichaelMarcialis if there are any clear replacements/removals from the "requires a decision" list I'm happy to tackle them here but also, let's try not to bloat or prolong this PR. I think it's preferred to keep moving forward step-by-step than pack everything into one PR. LMK as soon as you can, so that this PR doesn't hang for a long time! |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 21 out of 34 changed files in this pull request and generated no new comments.
Suppressed comments (1)
packages/eslint-plugin/src/rules/no_deprecated_icon_aliases.ts:171
- This edit drops the pre-existing
starMinusFilledandstarPlusFilledaliases from the rule, so consumers still using those legacy names will no longer be reported or autofixed. Preserve those entries and redirect them to the finalstarFillhandle, as is already done forstarFilledSpace.
starMinusEmpty: 'star',
starMinusFill: 'starFill',
starPlusEmpty: 'star',
starPlusFill: 'starFill',
2 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuidatagrid (2 differences)
|
21 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuidescriptionlist (1 difference)
euiicontip (1 difference)
euicombobox (1 difference)
euiexpression (3 differences)
euiform (1 difference)
euiheader (1 difference)
euicollapsiblenav (2 differences)
euidatagrid (10 differences)
euitable (1 difference)
|
16 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuidraggable (2 differences)
euimarkdowneditor (5 differences)
euibreadcrumbs (6 differences)
euidatagrid (2 differences)
euiresizeobserver (1 difference)
|
2 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuidatagrid (2 differences)
|
2 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuidatagrid (2 differences)
|
💚 Build Succeeded
History
|
|
Hey, @JoseLuisGJ and @weronikaolejniczak! I propose the following. Let me know if ya'll have any questions or concerns:
|
| @@ -0,0 +1,5 @@ | |||
| - Removed 13 unused icon types | |||
There was a problem hiding this comment.
We should list which icon types are removed and deprecated.
There was a problem hiding this comment.
Do we want to name all removed and deprecated icons? That way consumers would immediately see what's changed instead of having to check the PRs.
There was a problem hiding this comment.
Agreed, should I also add the deprecated ones with the mapping?
|
This PR contains breaking changes. The opener of this pull request is asked to perform the following due diligence steps below, to assist EUI in our next Kibana upgrade:
|
|
@MichaelMarcialis thank you so much, Michael 🙏🏻 I'll go ahead and deprecate: |
|
Addressed the remaining icon updates mentioned in my previous comment here: #9923 |
6fcbc55 to
b772adc
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
b772adc to
589ee7c
Compare
…pings Co-authored-by: Cursor <cursoragent@cursor.com>
|
Hey @mgadewoll @JoseLuisGJ @MichaelMarcialis could you take a look at the PR? Are all icons addressed from the initiative? Is it up-to-date with Figma? |
📷 6 visual difference(s) foundLook 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 revieweuiicon (2 differences)
euibuttongroup (4 differences)
|
|
I did another check with these last changes in this PR, leaving here some notes to validate with you @MichaelMarcialis and @weronikaolejniczak
If we don't want to expose it we should remove it from the glyph results somehow. I think if we add it to a new category like it will remove it from the default set of glyphs
Some changes were deferred to the already merged PR #9923 but I still miss the decision and changes on:
|
|
@JoseLuisGJ thank you for checking 🙏🏻 Could we tackle them as a follow-up? |
Of course ! |
Co-authored-by: Lene Gadewoll <lene.gadewoll@elastic.co>
💚 Build Succeeded
History
|
💚 Build Succeeded
History
|





















































































































































































Summary
Closes #9880
See #9815 (comment) for more context
Important
menuUp,menuDownandvisVisualBuilderwere not removed because they do have usages left in EUI or in Kibana.Icons removed
articlebranchUsercontinuityAboveBelowcontinuityBelowdotInCirclefunctionkubernetesNodemagnetpageSelectscalesecuritySignalDetectedsecuritySignalResolvedtearIcons deprecated
analyzeEventcubeannotationflaganomalySwimLanechartHeatmapappsgridcontainerpackagecontinuityAboveuploadcontinuityWithinmaximizeesqlVisqueryfoldminimizeframeNextchevronSingleRightframePreviouschevronSingleLefthelpquestionindextableiptokenIPlogstashFilterfilterlogstashInputdownloadlogstashOutputuploadpaymentmoneysessionViewercommandLinesingleMetricViewerchartAreaspacesgridstarEmptySpacestarstarFillSpacestarFillstarMinusEmptystarstarMinusFillstarFillstarPlusEmptystarstarPlusFillstarFillstatschartLinestringtokenStringtableOfContentslistBulletunfoldmaximizevisGoalchartGaugewordWraplineBreakwordWrapDisabledlineBreakSlashIcons that require a decision (addressed on #9923)
menuDownresizable_collapse_button.tsxmenuUpresizable_collapse_button.tsxvisVisualBuildersrc/platform/plugins/shared/vis_types/timeseries/public/metrics_type.tscloudDrizzlecloud,bolt, orfaceNeutral. Ambiguous replacementcloudStormycloud,bolt, orfaceSad. Ambiguous replacementcloudSunnycloud,sun, orfaceHappy. Ambiguous replacementmemorygraph_grouped_node_preview_panel.stories.tsxvisTimeliontimelion.jstimelion_vis_type.tsxstopFillstop,play, orEuiColorPickerSwatch. Preferplayfor toggleable actions. Usage in EUIcheckbox_control.tsx; Ambiguous replacementstopSlashEuiColorPickerSwatch(transparent/empty state). Component change, not another glyph. Usage in EUIcolor_picker.tsxkqlFunctioncheckorchevronLimitRight. Usage in EUIsuper_update_button.tsx; Ambiguous replacementfolderExclamationlinkSlash(Discover) orhourglass(Cases). Context-specific; Ambiguous replacementfolderClosedfolder/folderClose. Formalize likefolderOpened→ deprecate in favor offolderClose; UndecidednamespacetokenNamespace) or keep and add to Figma; UndecidedUpdated #9847.
API Changes
articlebranchUsercontinuityAboveBelowcontinuityBelowdotInCirclefunctionkubernetesNodemagnetpageSelectscalesecuritySignalDetectedsecuritySignalResolvedtearanalyzeEventcubeinsteadannotationflaginsteadanomalySwimLanechartHeatmapinsteadappsgridinsteadcontainerpackageinsteadcontinuityAboveuploadinsteadcontinuityWithinmaximizeinsteadesqlVisqueryinsteadfoldminimizeinsteadframeNextchevronSingleRightinsteadframePreviouschevronSingleLeftinsteadhelpquestioninsteadindextableinsteadiptokenIPinsteadlogstashFilterfilterinsteadlogstashInputdownloadinsteadlogstashOutputuploadinsteadpaymentmoneyinsteadsessionViewercommandLineinsteadsingleMetricViewerchartAreainsteadspacesgridinsteadstarEmptySpacestarinsteadstarFillSpacestarFillinsteadstarMinusEmptystarinsteadstarMinusFillstarFillinsteadstarPlusEmptystarinsteadstarPlusFillstarFillinsteadstatschartLineinsteadstringtokenStringinsteadtableOfContentslistBulletinsteadunfoldmaximizeinsteadvisGoalchartGaugeinsteadwordWraplineBreakinsteadwordWrapDisabledlineBreakSlashinsteadScreenshots
N/A
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: 🟢 Low
Release Readiness
@elastic/eslint-plugin-eui/no-deprecated-icon-aliases, there's an auto-fix.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
QA: Tested in CodeSandbox and Kibanabreaking changelabel (if applicable)Reviewer checklist