diff --git a/packages/uui-icon/lib/uui-icon.element.ts b/packages/uui-icon/lib/uui-icon.element.ts
index e0dd645cc..df404a1d2 100644
--- a/packages/uui-icon/lib/uui-icon.element.ts
+++ b/packages/uui-icon/lib/uui-icon.element.ts
@@ -8,7 +8,8 @@ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
* @element uui-icon
* @fires {UUIIconRequestEvent} icon_request - fires when the name property is defined to retrieve the icon source.
* @description - Icon component for displaying icons.
- * @cssprop --uui-icon-color - overwrite the icon color.
+ * @cssprop --uui-icon-color - sets the color for the icon, if not set it will use the text color.
+ * @cssprop --uui-icon-color-overwrite - overwrite the icon color, once this is set the --uui-icon-color will be ignored.
* @see UUIIconRegistryElement Ideally used together with a icon registry.
*/
@defineElement('uui-icon')
@@ -149,7 +150,10 @@ export class UUIIconElement extends LitElement {
:host svg,
::slotted(svg) {
- color: var(--uui-icon-color, currentColor);
+ color: var(
+ --uui-icon-color-overwrite,
+ var(--uui-icon-color, currentColor)
+ );
width: 100%;
}
diff --git a/packages/uui-menu-item/lib/uui-menu-item.element.ts b/packages/uui-menu-item/lib/uui-menu-item.element.ts
index d7073993e..ef4fa71a9 100644
--- a/packages/uui-menu-item/lib/uui-menu-item.element.ts
+++ b/packages/uui-menu-item/lib/uui-menu-item.element.ts
@@ -546,6 +546,9 @@ export class UUIMenuItemElement extends SelectOnlyMixin(
display: inline-flex;
margin-right: var(--uui-size-2);
}
+ :host([selected]:not([select-mode='highlight'], [disabled])) #icon {
+ --uui-icon-color-overwrite: currentColor;
+ }
#badge {
font-size: 12px;
diff --git a/packages/uui-menu-item/lib/uui-menu-item.story.ts b/packages/uui-menu-item/lib/uui-menu-item.story.ts
index e4f81004f..fec8d13a2 100644
--- a/packages/uui-menu-item/lib/uui-menu-item.story.ts
+++ b/packages/uui-menu-item/lib/uui-menu-item.story.ts
@@ -195,10 +195,21 @@ export const WidthBadge: Story = {
export const WithIcon: Story = {
args: {
+ selectable: true,
'icon slot': html``,
},
};
+export const WithColoredIcon: Story = {
+ args: {
+ selectable: true,
+ 'icon slot': html``,
+ },
+};
+
export const ItemIndentation: Story = {
render: () => html`
${MenuItems.map(