Blog

Dez092016

Der Backdrop-Filter. 2. Update.

Auf der Fujiama 2016, als ich auf Mathy's Mac blickte, erstaunte mich etwas doch gar sehr.
In meinem Artikel "OS X 10.10 sieht aus wie Ubuntu 10.10" beschrieb ich den Blur-Effekt, den OS X anwendet, um eine gewisse Transparenz, die den Menüs und der Menüleiste vorbehalten war, auf alle Anwendungsfenster zu bringen und somit das farbliche Thema des vom Benutzer gewählten Hintergrundbild auf die gesamte Oberfläche zu übertragen.
In vielen Anwendungen, zum Beispiel Finder und Safari, scheint nicht nur der Desktop-Hintergrund durch den Fensterrahmen, sondern auch die Inhalte. So schimmern Datei- und Ordner-Symbole beim herunter-scrollen durch die Menü- und Titelleiste des Finders und die Web-Inhalte durch die des Safari.

Doch was mich nun auf Mathy's Bildschirm so erstaunt hatte, war, dass dort auch Web-Inhalte durch eine Menüleiste schimmerten, die selber Teil des Web-Inhalts war.
Erst habe ich meinen Augen nicht getraut und gedacht, Apple mache hier wieder sein ur-eigenes Ding. Doch das konnte nicht sein.
In der Tat ist es so, dass es in CSS mittlerweile das Attribut backdrop-filter (zu Deutsch etwa Filter für den durchscheinenden Hintergrund) gibt, der alle Inhalte betrifft, die hinter einem transparenten Bild (z.B. einem PNG, aber auch GIF) oder einer halbdurchlässigen Farbe (z.B. rgba(0, 0, 0, 0.5)) erscheinen.
Man kann den Hintergrund einfärben, invertieren, in Graustufen oder Monochrome verwandeln und auch verschwimmen lassen. Es lassen sich alle bekannten Filter des gleichnamigen Attributs filter anwenden.
Eine sehr schöne Demonstration dieses Filters war auf der Download-Seite von elementary.io zu sehen, von der man damals Version 0.3 des gleichnamigen Linux-Systems herunterladen konnte.
Dieser Filter ließ die gesamte Webseite im Hintergrund dimmen und verschwimmen, nur das Download-Fenster darüber war hell und scharf zu sehen.
Das wurde damals aber so implementiert, dass das Download-Fenster ein eigenständiges Objekt außerhalb der Elemente im Hintergrund war und es in die Mitte des Browser-Fensters positioniert wurde.

der Blur Effekt auf der Apple-iTunes-Seite Nun war ich ja schon immer ein Freund von Blur-Effekten und wollte ihn auch für meine Webseite nutzen.
Doch leider, obwohl diverse Informationen und Forum-Posts im Internet über ein Jahr alt sind und der Safari dieses Attribut bereits vollständig unterstützt, bleibt die Implementierung bei allen anderen Browsern noch aus.
Google Chrome bietet eine frühe Implementierung des Backdrop-Filters, doch es ist eine Glückssache, ob die Apple-iTunes-Seite, die diesen Filter nutzt, richtig angezeigt wird.
Auf meinem Computer war es so, dass die Seite ohne Hardware-Beschleunigung genau einmal richtig angezeigt wurde und auch beim Scrollen funktionierte. Danach nie wieder.
Noch unverständlicher scheint mir, dass der Backdrop-Filter zwar auf den Entwicklerseiten von Mozilla ausführlich beschrieben und mit Bildern anschaulich gemacht wird, es dort aber keinerlei Bemühungen zu geben scheint, diesen zu implementieren.
Welcher Browser den Backdrop-Filter unterstützt, kann man auf caniuse.com/#feat=css-backdrop-filter nachlesen.
Dort findet man auch weiterführende Links zu Diskussionen und Beschreibungen.

Doch wer mich kennt, weiß, dass mir das nicht reicht und dass ich einen solch langen Artikel über den Backdrop-Filter nicht geschrieben hätte, wenn ich nicht auch etwas zu zeigen hätte.
Wie oben bereits erwähnt, bietet der Google Chrome eine Vorschau auf das, was da irgendwann mal kommen möge, welche zwar nicht perfekt implementiert, aber zumindest schon genutzt werden kann, wenn man einige Regeln beachtet.
So funktioniert der Backdrop-Filter offensichtlich sehr gut mit dauerhaft fixierten Objekten, also jenen, dessen Attribut position nicht plötzlich durch JavaScript von static auf fixed geändert wird. Entweder ist es die ganze Zeit static (statisch, es bleibt da, wo es durch den Textfluss hingehört), oder es ist fixed (bleibt also an einer Position unabhängig auf dem Bildschirm stehen).
Auch kann fehlerfrei es mittels der Pseudo-Klasse :hover eingeschaltet werden. Zwei Elementen habe ich das Attribut backdrop-filter:blur(20px); gegeben:
Eines ist die Copyright-Leiste ganz unten. Das andere ist die Bildunterschrift auf diversen Event-Seiten.
Diese Elemente habe ich so gestaltet, dass sie mit dem Google Chrome auch fehlerfrei dargestellt werden.

Doch wie könnt Ihr nun den Effekt sehen?
Nun, zunächst müsst Ihr die frühe Implementierung dieses Filters einschalten:

  • Sucht im Google Chrome (oder Chromium) mit Strg+F nach "platform", nachdem Ihr die Seite "chrome://flags/" (oder "about:flags") aufgerufen habt.
  • Aktiviert dort "Experimentelle Webplattform-Funktionen".
  • Startet den Webbrowser neu.

Nach dem Neustart solltet Ihr den Effekt bemerkten können.
Scrollt dazu durch meine neu gestaltete Titelseite mit den farbigen Kacheln und Ihr könnt das Farbenspiel in der Copyright-Leiste beobachten.
Blur-Effekt auf meiner Startseite
Auf den Event-Seiten, zum Beispiel die des letzten AIB-Treffens, fahrt Ihr mit dem Mauszeiger über eines der Fotos und Ihr könnt den Effekt in der Bildunterschrift sehen.
Blur-Effekt auf meiner Startseite

Die Anwendung des neuen Backdrop-Filter auf meiner Webseite brachte auch einige Änderungen des Designs mit sich.
So musste ich den Schatten über der Copyright-Leiste entfernen, da dieser sonst ebenfalls den Backdrop-Filter anwendet - zweifellos noch ein Bug. Das Hintergrundbild ist durchlässiger als bisher.
Dadurch wirkt die Copyright-Leiste nun schwerer lesbar, wenn man die Seite in Google Chrome ohne den Filter (Standard-Einstellung) betrachtet.
Da Firefox diesen Filter bisher gar nicht implementiert hat, habe ich den Firefox von diesem Experiment ausgeschlossen.
Firefox-Benutzer sehen bis auf weiteres die bisherige Version der Copyright-Leiste (dunkel und mit Rahmenschatten).
Wer mit dem Firefox versucht, einen Backdrop-Filter auf meiner Seite zu entdecken, kann das auf den Event-Seiten tun und sich die Bildunterschriften anschauen. Dort habe ich keine Browser-Weiche eingebaut.

fehlerhaft dargestellter Blur-Effekt auf der Apple iTunes Seite Kleiner Nachtrag: während die Apple-iTunes-Seite gefühlt nur jedes hundertste mal beim herunter Scrollen richtig angezeigt wird, scheint Seite des Apple iPad Pro immer richtig angezeigt zu werden.
Solange man noch nicht herunter gescrollt hat, wird allerdings der Backdrop-Filter auch auf den umliegenden Rahmen angewendet, diesen Fehler macht der Google Chrome auf beiden Apple-Seiten. korrekt dargestellter Blur-Effekt auf der Apple iPad Pro Seite

Hier noch ein paar farbige Felder, um den Backdrop-Filter-Effekt zu beobachten (nach unten scrollen und auf die dunkle Copyright-Leiste achten).

Eine kleine Testseite für den Backdrop-Filter könnt Ihr hier aufrufen.

Tags: