Discourse Facile 'SVG Icon' e 'Emoji' in CSS

<div data-theme-toc="true"> </div>

Ciao :wave:

Questo argomento contiene due componenti tematici.

Discourse Easy SVG Icon CSS

:warning: Questo componente tematico è funzionale come modello, per favore creane un fork su Github o usa il codice per il tuo progetto. Puoi rimuovere i codici svg delle icone dal SCSS e mantenere solo quelli che usi effettivamente… Ho importato il file mixin nel file common.scss in modo che tu possa aggiungere il tuo codice sotto quella riga o separatamente alla sezione desktop o mobile.

Il componente tematico aggiunge la capacità di mantenere le icone SVG in modo manutenibile e facilmente modificabile nel tuo CSS. Il componente contiene tutte le icone svg trovate qui: discourse/vendor/assets/svg-icons/fontawesome at main · discourse/discourse · GitHub



Come si usa?

Parametri fissi:

$icon-set: brands, regular, solid
$icon-name: nome dell’icona
$icon-color: colore dell’icona (currentColor, esadecimale o variabile di colore)
$width e $height: la dimensione dell’icona aggiunta

Sembra così:

@include svg-icon($icon-set, $icon-name, $icon-color, $width, $height);

Utilizzo di currentColor
Ecco un esempio per aggiungere un’icona a razzo solida prima dell’elemento di navigazione Latest.

#navigation-bar {
  li.nav-item {
    &_latest {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include svg-icon(solid, rocket, currentColor, 1em, 1em);
        }
      }
    }
  }
}

add-icon-to-latest


Utilizzo della variabile di colore var(--gold)
Ecco un esempio per aggiungere un’icona a stella regolare dorata prima dell’elemento di navigazione Top.

#navigation-bar {
  li.nav-item {
    &_top {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include svg-icon(regular, star, var(--gold), 1em, 1em);
        }
      }
    }
  }
}

add-star-to-top


Possiamo facilmente cambiare il set di icone, il colore o anche l’icona al passaggio del mouse, ecc… Vediamo!

Ora cambiamo l’icona regolare in solida quando passo il mouse sul pulsante.

#navigation-bar {
  li.nav-item {
    &_top {
      a {      
        gap: 0.5em;
        &:hover,
        &:focus,
        &.active {
          &:before {
            @include svg-icon(solid, star, currentColor, 1em, 1em);
          }
        }
        &:before {
          content: "";
          @include svg-icon(regular, star, currentColor, 1em, 1em);
        }
      }
    }
  }
}

change-icon-set


Discourse Easy Emoji CSS

:warning: Questo componente tematico è funzionale come modello, per favore creane un fork su Github o usa il codice per il tuo progetto. Ho importato il file mixin nel file common.scss in modo che tu possa aggiungere il tuo codice sotto quella riga o separatamente alla sezione desktop o mobile.

Come si usa?

L’utilizzo è simile alla versione SVG.

Parametri fissi:

$emoji-set: apple, google, twitter, win10, google_classic, facebook_messenger
$emoji-name: nome dell’emoji
$width e $height: la dimensione dell’emoji aggiunta

@include emoji($emoji-set, $emoji-name, $width, $height);

Ecco un esempio per aggiungere un’emoji rocket facebook_messenger prima dell’elemento di navigazione Latest e un’emoji star twitter prima dell’elemento di navigazione Top.

#navigation-bar {
  li.nav-item {
    &_latest {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include emoji(facebook_messenger, rocket, 1em, 1em);
        }
      }
    }
    &_top {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include emoji(twitter, star, 1em, 1em);
        }
      }
    }
  }
}

Screenshot 2024-03-25 at 5.26.26

13 Mi Piace

Buongiorno @Don,

Ho seguito con ardore il tuo lavoro e credo di aver incorporato tutte le tue creazioni nel mio forum. Tuttavia, con questo particolare elemento, sono incerto. Dall’aggiornamento di Discourse, la mia mente si è confusa e non riesco a ricordare dove implementare questi codici CSS. Ho integrato il tuo codice GitHub nel tema, ma non sembra apparire nulla.

1 Mi Piace

Credo che il tema debba essere una base modificabile su cui lavorare:

Il che spiegherebbe perché non è apparso nulla quando l’hai installato, dato che il modello probabilmente farebbe poco o nulla da solo.

1 Mi Piace

Questo dovrebbe essere visibile a noi?

o

No, poiché si tratta di un tema remoto, il che significa che devi scaricarlo da GitHub e caricarlo come zip nella tua istanza, oppure creare un fork del repository GitHub e apportare lì le tue modifiche.

1 Mi Piace

In effetti, questo è un concetto del tutto nuovo per me. Tuttavia, comprendo il tuo punto; ogni giorno è un’opportunità per imparare e apprezzo la rapida risposta.

2 Mi Piace

Ciao @Aaron_Walsh :waving_hand: Ha funzionato finalmente per te? C’è qualche caso d’uso specifico in cui vuoi usarlo? Se condividi alcuni dettagli, posso creare un componente a tema separato basato su questo, dove può essere facilmente modificabile con le impostazioni.

Buongiorno,

L’impresa sarebbe andata a buon fine; tuttavia, non possiedo più un laptop Windows per scopi di editing. Invece, sono passato all’utilizzo di un Samsung Galaxy S9 Ultra, una decisione che ora trovo alquanto rimpiangibile :sweat_smile:.

Esiste un metodo attraverso il quale posso portare a termine questo compito utilizzando il mio server di hosting (cPanel) caricando e modificando. Tuttavia, devo notare con rammarico che il lavoro che hai creato potrebbe rivelarsi intricato per alcune persone.

Pertanto, se sei disponibile,

9e9f0a12fb60537533c141e18e145f7d98eecb9c

Questo design è l’oggetto della mia ammirazione e quello a cui sono particolarmente attratto!

1 Mi Piace

Sì, è per questo che è stato inserito nella categoria Dev ma non preoccuparti, creerò un Theme component per questo caso d’uso. :slightly_smiling_face:

3 Mi Piace

Mi scuso, è stata una mia svista! Tuttavia, in futuro sarò più informato a riguardo.

Ciao :waving_hand: Questo Theme component è terminato. :white_check_mark:

Sei fantastico! Grazie!

1 Mi Piace