Neu aufbauen des Meta-Branded-Themas: Neue Icons, eine benutzerdefinierte Startseite und ein erster Blick auf die Blocks API

Wir haben gerade eine zweite Iteration unseres Theme-Neubaus veröffentlicht. Während das erste Update ein visuelles Refresh war, das auf dem vorherigen Meta Branded Theme aufbaute, ist diese Version im Wesentlichen ein völlig neues Theme, das von Grund auf neu entwickelt wurde. Die neue Markenidentität wurde bereits mit dem vorherigen Release eingeführt, sodass es auf dieser Ebene nicht allzu viele sichtbare Änderungen gibt. Was sich mit diesem Update jedoch erheblich geändert hat, ist die Implementierung des Themes selbst sowie der Einblick, den sie in unsere zukünftige Richtung bei der Anpassung von Discourse im Allgemeinen gibt.

Ich werde einige Implementierungsdetails durchgehen, beginnend mit den kleineren Punkten:

Lucide Icons

Lucide ist ein Open-Source-Paket moderner Strich-Icons, das wir bereits in mehreren Anpassungsprojekten eingeführt haben. Mit dieser Iteration haben wir es auch in das Meta Branded Theme integriert. Es sind keine Pläne vorhanden, Font Awesome im Discourse-Kern zu ersetzen, doch die kostenlose Version von Font Awesome bietet nur eine begrenzte Auswahl an Strich-Icons, die nicht ausreicht, um ein kohärentes Strich-Icon-System zu bilden. Das Theme-Komponenten-Paket ist unter github.com/discourse/discourse-lucide-icons verfügbar.

Theme-Modifikator zur Einschränkung von Farbpaletten

Wir haben einen neuen Theme-Modifikator namens only_theme_color_schemes hinzugefügt, der festlegt, welche Farbpaletten für ein bestimmtes Theme verfügbar sind – sowohl für Administratoren als auch für Benutzer in ihren Oberflächeneinstellungen. Meta verfügt über mehrere benutzerwählbare Paletten, die im Widerspruch zur visuellen Identität des Meta Branded Themes stehen könnten. Mit diesem Modifikator werden nur die mit dem Theme gebündelten Paletten als Optionen angeboten. :link: PR: FEATURE: add modifier to restrict theme color schemes

Vollbreiten-Layout

Wir testen zudem einige Anpassungen am Discourse Full-width-Komponente, um den Hauptinhalt der Seite besser zu zentrieren. Da der Header viele dynamische Elemente enthält, ist die Einrichtung komplex. Bisher ist dies experimentell und nur in einem Branch der Komponente verfügbar.

Werttransformator zur Steuerung der Sichtbarkeit des Willkommensbanners

Wir haben einen neuen Werttransformator namens welcome-banner-display-for-route verwendet, um programmatisch festzulegen, auf welchen Routen das Kern-Willkommensbanner angezeigt wird. Damit stellen wir sicher, dass das Banner nur auf der standardmäßigen benutzerdefinierten Startseite erscheint und nicht auf Seiten, die ein Benutzer als persönliche Startseite festgelegt haben könnte. :link: PR: DEV: Add welcome-banner-display-for-route value transformer

Das bringt uns zu den beiden größeren Änderungen:

Benutzerdefinierte Startseite über Theme-Modifikator

Der Theme-Modifikator custom_homepage ist seit fast zwei Jahren verfügbar, doch dies ist das erste Mal, dass wir ihn nutzen, um die Startseite-Erfahrung auf Meta selbst zu gestalten. Wir führen eine benutzerdefinierte Landingpage ein, die mit hervorgehobenen Komponenten gefüllt ist. Für den ersten Launch umfasst dies hervorgehobene Kategorien sowie eine Vorschau der neuesten Diskussionsthemen.

Diese hervorgehobenen Komponenten haben wir mit unserer neuen experimentellen Blocks-API erstellt, was uns zur größten Änderung führt:

Blocks-API: Erste Produktionseinsatz

Die Blocks-API ist ein neues Framework zum Erstellen modularer, kombinierbarer Layouts in Discourse. Es ermöglicht Theme-Entwicklern, Seiten aus selbstständigen, wiederverwendbaren Komponenten zusammenzustellen, die in definierten Layoutbereichen platziert werden können. Das Meta-Theme ist unsere erste Produktionseinsatz dieses Frameworks.

Das Framework bietet eine umfangreiche Palette an Entwicklerwerkzeugen: Aktivieren Sie die Entwickler-Tools, und Sie können die Block-Struktur jeder Seite mit einer integrierten Overlay-Ansicht inspizieren, die alle aktiven Layoutbereiche und ihre Komponenten visualisiert.

Neben der Startseite nutzen wir Blocks auch, um benutzerdefinierte Kategorie-Banner zu rendern, die die Unterkategorien jeder Kategorie anzeigen:

Dies ist noch eine frühe Vorschau des Systems im Produktionskontext. Wir planen, in Kürze Dokumentation und weitere Beispiele zu veröffentlichen. :link: PR: DEV: Add Block API for declarative, validated UI extension points

14 „Gefällt mir“

Das ist eine gute Wahl. Diese Icon-Sammlung ist mir aufgefallen, als ich nach verfügbaren Icon-Sets für Discourse gesucht habe. Sie wirkt verfeinert und elegant.

Das vollständige Fehlen gefüllter Icons hat jedoch einige Probleme verursacht. So war zum Beispiel der Indikator für ungelesene Beiträge als farbiger Kreis kaum sichtbar, oder der Umschaltknopf für Dunkel-/Hellmodus ließe sich ohne gefüllten Teil nur schwer korrekt darstellen.

Ich sehe, dass du diese Probleme im Meta-Branded-Theme gelöst hast. Hast du dafür benutzerdefinierte Icons hinzugefügt?


Übrigens ist das Discourse-Logo oben links im Meta-Branded-Theme nicht klickbar (das ist meines Wissens seit Monaten so) :grimacing:

1 „Gefällt mir“

Nein, wir haben einfach einige Symbole wie circle und square nicht auf die Lucide-Version abgebildet. Oder genauer gesagt, wir haben für diese Symbole nur die Strichversion von Fontawesome abgebildet (far-circle, …). Es könnte weitere Fälle geben, in denen wir die Abbildung weiter verbessern müssen.

Zum Beispiel ist das Herz-Symbol schwierig. Ich denke, eine gefüllte Version wäre besser, wenn es geliked wurde, aber bisher bin ich mir nicht sicher, wie man das am besten umsetzt..

[quote=“Canapin, Beitrag:5, Thema:400013”]
Übrigens ist das Discourse-Logo oben links im meta-markierten Theme nicht klickbar (das ist meiner Meinung nach seit Monaten der Fall)
[/quote] Ich kann das nicht reproduzieren. Hast du weitere Details?

2 „Gefällt mir“

Ich bin neugierig, welchen Unterschied Blocks im Vergleich zu Plugin Outlets mit sich bringt?

Nur auf Chrome und Edge getestet, und das Problem tritt nur auf dem Desktop auf:

Das Div für den Seitenleisten-Umschalter überdeckt das Logo, wodurch es nicht anklickbar ist.

(und ja, das umrandete Herz für „Gefällt mir“ sieht schlecht aus :broken_heart: )

1 „Gefällt mir“

Das aktuelle Symbol für „beantwortet gefällt mir überhaupt nicht:

Ich nehme an, es ist nur vorübergehend, da es in Lucide kein gutes FA-Äquivalent gibt?


Die Symbole in der Themenliste sind sehr, sehr klein:

2 „Gefällt mir“

Ich hätte nicht erwartet, dass etwas wie Lucide in ein offizielles Theme so integriert wird. Sieht großartig aus! Ich wünschte nur, das Herz wäre ausgefüllt. Abgesehen von diesem kleinen Mangel sieht das Theme auf dem Mobilgerät meiner Meinung nach fantastisch aus.

Anscheinend gibt es keinen Abstand zum Body in privaten Nachrichten:

1 „Gefällt mir“

[quote=“Canapin, Beitrag:9, Thema:400013”]
Mir gefällt das aktuelle Symbol für „beantwortet