Discourse Einfach 'SVG Icon' und 'Emoji' in CSS

Hallo :wave:

Dieses Thema enthält zwei Theme-Komponenten.

Discourse Easy SVG Icon CSS

:warning: Diese Theme-Komponente ist als Vorlage funktional. Bitte forken Sie sie auf Github oder verwenden Sie den Code für Ihr Projekt. Sie können die SVG-Icon-Codes aus dem SCSS entfernen und nur diejenigen behalten, die Sie wirklich verwenden… Ich habe die mixin-Datei in die common.scss-Datei importiert, sodass Sie Ihren Code unterhalb dieser Zeile oder separat im Desktop- oder Mobilbereich hinzufügen können.

Die Theme-Komponente fügt die Fähigkeit hinzu, SVG-Icons in Ihrem CSS wartbar und einfach bearbeitbar zu halten. Die Komponente enthält alle SVG-Icons, die Sie hier finden: discourse/vendor/assets/svg-icons/fontawesome at main · discourse/discourse · GitHub



Wie zu verwenden?

Parameter festlegen:

$icon-set: brands, regular, solid
$icon-name: Icon-Name
$icon-color: Icon-Farbe (currentColor, Hex oder Farbvariable)
$width und $height: die Größe des hinzugefügten Icons

Es sieht so aus:

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

Verwendung von currentColor
Hier ist ein Beispiel, um ein solides Raketen-Icon vor dem Latest-Navigationsmenüpunkt hinzuzufügen.

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

add-icon-to-latest


Verwendung der Farbvariable var(--gold)
Hier ist ein Beispiel, um ein goldenes Standard-Stern-Icon vor dem Top-Navigationsmenüpunkt hinzuzufügen.

#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


Wir können den Icon-Satz, die Farbe oder sogar das Icon beim Hovern usw. leicht ändern… Mal sehen!

Jetzt ändern wir das Standard-Icon in ein solides, wenn wir den Button mit der Maus bewegen.

#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: Diese Theme-Komponente ist als Vorlage funktional. Bitte forken Sie sie auf Github oder verwenden Sie den Code für Ihr Projekt. Ich habe die mixin-Datei in die common.scss-Datei importiert, sodass Sie Ihren Code unterhalb dieser Zeile oder separat im Desktop- oder Mobilbereich hinzufügen können.

Wie zu verwenden?

Die Verwendung ist ähnlich wie bei der SVG-Version.

Parameter festlegen:

$emoji-set: apple, google, twitter, win10, google_classic, facebook_messenger
$emoji-name: Emoji-Name
$width und $height: die Größe des hinzugefügten Emojis

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

Hier ist ein Beispiel, um ein facebook_messenger rocket-Emoji vor dem Latest- und ein twitter star-Emoji vor dem Top-Navigationsmenüpunkt hinzuzufügen.

#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 „Gefällt mir“

Guten Morgen @Don,

ich verfolge Ihre Arbeit mit großem Interesse und glaube, alle Ihre Kreationen in meinem Forum integriert zu haben. Bei diesem speziellen Punkt bin ich mir jedoch unsicher. Seit dem Upgrade von Discourse ist mein Kopf etwas durcheinander, und ich kann mich nicht mehr erinnern, wo ich diese CSS-Codes implementieren soll. Ich habe Ihren GitHub-Code in das Theme integriert, aber es scheint nichts angezeigt zu werden.

1 „Gefällt mir“

Ich glaube, das Theme soll eine bearbeitbare Basis sein, von der aus Sie arbeiten können:

Was erklären würde, warum nichts angezeigt wurde, als Sie es installiert haben, da die Vorlage für sich genommen wahrscheinlich wenig bis gar nichts bewirken würde.

1 „Gefällt mir“

Sollte uns das nicht angezeigt werden?

oder

Nein, da es sich um ein Remote-Theme handelt, müssen Sie es entweder von GitHub herunterladen und als ZIP-Datei auf Ihre Instanz hochladen oder das GitHub-Repository forken und Ihre Änderungen dort vornehmen.

1 „Gefällt mir“

In der Tat ist dies ein völlig neues Konzept für mich. Ich verstehe jedoch Ihren Punkt; jeder Tag ist eine Gelegenheit zum Lernen, und ich schätze die schnelle Antwort.

2 „Gefällt mir“

Hallo @Aaron_Walsh :waving_hand: Hat es bei dir endlich funktioniert? Gibt es einen bestimmten Anwendungsfall, in dem du das verwenden möchtest? Wenn du einige Details teilst, kann ich eine separate Theme-Komponente darauf basierend erstellen, wo sie mit Einstellungen leicht modifizierbar ist.

Guten Morgen,

Das Vorhaben wäre erfolgreich gewesen; jedoch besitze ich keinen Windows-Laptop mehr für Bearbeitungszwecke. Stattdessen bin ich auf die Verwendung eines Samsung Galaxy S9 Ultra umgestiegen, eine Entscheidung, die ich nun etwas bereue :sweat_smile:.

Es gibt eine Methode, mit der ich diese Aufgabe über meinen Hosting-Server (cPanel) durch Hochladen und Bearbeiten erledigen kann. Dennoch muss ich bedauerlicherweise anmerken, dass die von Ihnen erstellte Arbeit für einige Personen kompliziert sein könnte.

Daher, wenn Sie einverstanden sind,

9e9f0a12fb60537533c141e18e145f7d98eecb9c

Dieses Design ist Gegenstand meiner Bewunderung und das, zu dem ich mich besonders hingezogen fühle!

1 „Gefällt mir“

Ja, deshalb wurde es in die #dev-Kategorie aufgenommen, aber keine Sorge, ich werde eine Theme component für diesen Anwendungsfall erstellen. :slightly_smiling_face:

3 „Gefällt mir“

Entschuldigung, das war mein Versehen! Zukünftig werde ich mich jedoch besser darüber informieren.

Hallo :waving_hand: Diese Theme component ist fertig. :white_check_mark:

Du bist großartig! Danke!

1 „Gefällt mir“