Come metto una sfumatura su icone sottili?

Ciao,

Da quello che ho letto su Gradients in SVG - SVG | MDN, devi aggiungere <linearGradient> all’SVG.

Altre risorse:

Quello che puoi fare è creare un SVG nascosto nel tuo tema/componente per definire le tue sfumature:

<svg aria-hidden="true" focusable="false" style="width:0; height:0; position:absolute;">
  <linearGradient id="my-gradient-1" x2="0" y2="1">
    <stop offset="0%" stop-color="var(--color-stop-1)" />
    <stop offset="50%" stop-color="var(--color-stop-2)" />
  </linearGradient>

  <linearGradient id="my-gradient-2">
    <stop offset="0%" stop-color="var(--color-stop-1)" />
    <stop offset="50%" stop-color="var(--color-stop-2)" />
    <stop offset="100%" stop-color="var(--color-stop-3)" />
  </linearGradient>

  <!-- Definisci la sfumatura specifica secondo necessità con un ID univoco -->
</svg>

Quindi, nel tuo CSS, definisci il colore e selezioni quali elementi SVG vuoi riempire (fill):

/* definisce il colore delle sfumature */
#my-gradient-1 {
    --color-stop-1: #a770ef;
    --color-stop-2: #eda58b;
}

#my-gradient-2 {
    --color-stop-1: #2980b9;
    --color-stop-2: #6dd5fa;
    --color-stop-3: #ffffff;
}

.svg-icon, .svg-icon-title {
    /* seleziona tutte le icone svg */
    fill: url(#my-gradient-1) var(--header_primary-low-mid);

    /* seleziona solo l'icona della chat */
    &.d-icon-d-chat {
        fill: url(#my-gradient-2) var(--header_primary-low-mid);
    }
}

Nota: il secondo valore di fill è un colore di fallback.

Non ho testato approfonditamente; questo è un esempio di come puoi personalizzare.
Sentiti libero di consultare la documentazione per creare sfumature più complesse.

Spero che questo aiuti!

2 Mi Piace