StackBlur Hintergründe

:warning: Dies soll nicht als eigenständiges Theme verwendet werden.

Dies ist eine Theme-Komponente, die ausschließlich für den Hintergrund vorgesehen ist. Sie soll in Ihr Theme-Design integriert werden.


Repo: GitHub - hnb-ku/StackBlur-backgrounds-discourse-theme-component · GitHub

Diese Komponente nutzt die StackBlur-Bibliothek von Mario Klingemann (2kb gzippt – MIT-Lizenz), um hochleistungsstarke unscharfe Hintergründe zu generieren, die auf einem Bild basieren, das Sie in einem <canvas>-Element auswählen.

Beispiele: (diese sind komprimiert und weisen daher Artefakte auf – die Hintergründe sind eigentlich glatt)

Wenn ich dieses Foto verwende:

dann würde der resultierende Discourse-Hintergrund so aussehen:

Und auf dem Mobilgerät:

Weitere Beispiele mit anderen Bildern:

Die Qualität des verwendeten Bildes ist nicht entscheidend, da die Unschärfe sehr verzeihend ist. Ich empfehle daher stark komprimierte JPGs mit einer Auflösung von maximal 1080p – es geht nur um die Farben.


Installation

Installieren Sie das Repository wie bei jeder anderen Theme-Komponente üblich:

Sobald dies erledigt ist, folgen Sie diesen Schritten:

  1. Erstellen Sie ein neues Theme.
  2. Geben Sie ihm einen beliebigen Namen.
  3. Fügen Sie Folgendes im Abschnitt Gemeinsamer Header hinzu:
<canvas 
id="background_b" 
data-src='BACKGROUND_URL_GOES_HERE'
data-blur="BLUR_AMOUNT" 
></canvas> 
  1. Ersetzen Sie BACKGROUND_URL_GOES_HERE durch die URL Ihres Bildes.
    (Die URL muss entweder auf Ihrer eigenen Domain gehostet sein oder auf einer Domain mit korrekter CORS-Konfiguration.)

  2. Ändern Sie BLUR_AMOUNT auf den gewünschten Unschärfewert (0 – 180); höhere Werte bedeuten mehr Unschärfe.

  3. Fügen Sie StackBlur Backgrounds als Theme-Komponente unter Ihrem neu erstellten Theme hinzu.


:warning: Wichtig

Die Demo-Beispiele verwenden das Farbschema „Simple Dark".

Sie haben möglicherweise den leichten dunklen Hintergrund hinter der Themenliste bemerkt.

Dies ist kein Teil der Theme-Komponente.

Dies wird mit folgendem CSS erreicht:

#main-outlet {
    background: rgba(0, 0, 0, .5);
    padding-left: 2em;
    padding-right: 2em;
}

Außerdem fügt das Standard-Mobile-Theme dem <body>-Element einen einfarbigen Hintergrund hinzu. Wenn Sie möchten, dass der unscharfe Hintergrund auch auf Mobilgeräten angezeigt wird, müssen Sie dies entfernen. Das können Sie wie folgt tun:

.mobile-view {
	body {
		background: none;
	}
}

27 „Gefällt mir“

I’m using 1920x1080 image & no matter what theme I try using with this component, the image is being stretched. The blur appears to be working fine. Any thoughts on what could cause this?

Wouldn’t it be easier and faster to simply generate the blurred image and use that as the background? Why have the source JPG at all, plus an extra dependency…?

I guess if you are changing the background dynamically, that’s all I can think of?

7 „Gefällt mir“

Ich habe das heute in meinen Logs gesehen:
image

StackBlurBackground@https://forum.duelistsunite.org/theme-javascripts/7cca6d0005bbe0e73e1acff07a8802eb7ec3a2e3.js?__ws=forum.duelistsunite.org:29:22

start@https://forum.duelistsunite.org/theme-javascripts/7cca6d0005bbe0e73e1acff07a8802eb7ec3a2e3.js?__ws=forum.duelistsunite.org:24:32

Alles funktioniert, daher bin ich mir nicht sicher, ob es sich um einen Referenzfehler oder eine Art Warnung handelt. Ich wollte es nur melden.

Ich habe versucht, dies umzusetzen, aber meine Forum-Komponenten scheinen völlig transparent zu werden, und es wird unglaublich schwer, den Text zu lesen.

@Johani

Das ist leider immer noch defekt. @Johani, falls wir dies langfristig nicht unterstützen, sollten wir diesen Beitrag vielleicht einfach löschen? Ich bin auch damit einverstanden, wenn du es reparierst – liegt an dir.

2 „Gefällt mir“

Ich nutze es auf meiner Website und alles scheint in Ordnung zu sein. Keine Probleme hier. Allerdings habe ich das CSS etwas angepasst. Ich verwende es, seit ich Discourse habe.

1 „Gefällt mir“

Scheint vielversprechend, aber ich bekomme:
Uncaught ReferenceError: Zuweisung an nicht deklarierte Variable img

          var blur = $(\"#background_b\").data(\"blur\");
          img = new Image();
          c = document.getElementById(\"background_b\");
          ctx = c.getContext(\"2d\");
          w = window.innerWidth;
          h = window.innerHeight;

Ich glaube, Sie meinten hier Kommas statt Semikolons.

Das Plugin hat den Tag broken, es wird nicht richtig funktionieren. Nur damit Sie Bescheid wissen :slight_smile:

1 „Gefällt mir“

Das ist mir gerade aufgefallen, danke!

1 „Gefällt mir“