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

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.

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.

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.

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.

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!

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

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!