Как изменять цвет SVG во vue 3 в разных компонентах

Код написан на vue 3. Есть компонент где содержатся все иконки с сайта и есть второй компонент, где переиспользуются иконки из первого компонента. Вопрос, как изменять цвет иконки при наведении на нее, если она находится в другом компоненте? Пробовал передавать через props цвет в родительский компонент и изменять уже там при помощи @mouseover и @mouseleave, вроде получилось, но хотелось бы узнать, можно ли не трогать логику и поменять цвет hover эффектом через css стили?

Это мой компонент с иконками, которые должны через props type отображаться в других компонентах.

Ниже него представлен компонент где используется эта иконка

    ```<template> 
       <svg
          v-if="type === 'search'"
          width="16.000000"
          height="16.000000"
          viewBox="0 0 16 16"
          fill="none"
          xmlns="http://www.w3.org/2000/svg"
          xmlns:xlink="http://www.w3.org/1999/xlink"
        >
          <desc>Created with Pixso.</desc>
          <defs />
          <path
            id="Vector"
            d="M11.88 11.87L15.25 15.25L11.88 11.87ZM11.88 11.88C10.68 13.07 9.06 13.75 7.37 
            13.75C5.68 13.75 4.06 13.07 2.86 11.88C1.67 10.68 1 9.06 1 7.37C1 5.68 1.67 4.06         2.86 
            2.86C4.06 1.67 5.68 1 7.37 1C9.06 1 10.68 1.67 11.88 2.86C13.07 4.06 13.75 5.68 13.75 
            7.37C13.75 9.06 13.07 10.68 11.88 11.88Z"
            stroke="#E4E4E4"
            stroke-opacity="1.000000"
            stroke-width="2.000000"
          />
        </svg>
    <template>
    <script>
    export default {
      name: "MyIcon",
      props: {
        type: {
          type: String,
        },
      },
    };
    </script>```
  <my-icon
    class="navigation-menu__icon"
    type="search"
  ></my-icon>```

Ответы (1 шт):

Автор решения: Виктор Карев

По-моему, у тебя класс navigation-menu__icon в компоненте иконок не выводится. Если это исправить, то можно так:

<div class="navigation-menu">
    <div class="navigation-menu__item">
        <my-icon
            class="navigation-menu__icon"
            type="search"
        ></my-icon>
    </div>
</div>
.navigation-menu__icon {
    fill: blue;
}
.navigation-menu__item:hover > .navigation-menu__icon {
    fill: red;
}

И убрать fill="none" из svg.

→ Ссылка