Variable Fonts - spezielle Schriftarten fürs Web

Die Idee ist nicht neu, dass es funktioniert, schon: variable fonts. In diesem Beitrag sehen wir uns an, was das ist und was man damit machen kann.


Was sind variable fonts?


Salopp gesagt sind variable fonts mehrere Variationen einer Schriftart in einem File zusammengefasst.

Bisher war (und ist) es so, dass man im Grunde mehrere Schriftarten braucht, um Varianten wie kursiv oder fettgedruckt optimal darstellen zu können. Natürlich ist es auch möglich, über CSS-Anweisungen eine Schriftart kursiv oder dick erscheinen zu lassen (z.B. mittels font-style: italic bzw. font-weight: bold) und für diese beiden Anwendungsfälle gibt es sogar HTML-Tags, die das für uns erledigen können; allerdings ist das Ergebnis davon nicht immer ideal. Dabei wird lediglich die Schrift gekippt (oder dicker gemacht), was zu unschönen, teilweise sogar verpixelten Ergebnissen führen kann. Oder manchmal sieht es schlichtweg nicht so effektvoll aus, wie wir uns das wünschen:


(Beispiel mit der Standardschriftart Candara Light und der CSS-Anweisung font-style: italic)

Für ein optimales Ergebnis bräuchten wir Varianten einer Schriftart, einmal in italic, einmal in bold usw. Entsprechend mehr muss zur Darstellung der Seite auch geladen werden, und das kann sich wiederum negativ auf Ladezeiten auswirken.


Wenn wir etwa „nur“ 6 der 18 Varianten der beliebten Googlefonts-Schriftart „Raleway“ verwenden möchten, beeinträchtigt das schon massiv die Ladezeit:




Bei einer variablen Schriftart (variable font) können mehrere Varianten einer Schriftart in einem File zusammengefasst werden. Das kann font-weight und font-style betreffen, aber auch benutzerdefinierte Eigenschaften. Theoretisch können auch komplett unterschiedliche Schriftbilder zusammengepackt werden (siehe weiter unten im Abschnitt „Axis“).


Wenn es rein um die Ladezeiten geht, sollte man von Fall zu Fall abwägen, ob sich dafür eine variable font auszahlt; zwar gibt’s jetzt ein Komplettpaket der Schriftart, aber dafür vergrößert sich natürlich auch die filesize. Abhängig vom verwendeten Dateiformat kann man aber trotzdem sinnvolle Dateigrößen erreichen. Empfohlen: woff2.



Nicht nur durch dick und dünn


Variable fonts können weitaus mehr, als nur zwischen normal, kursiv und fett zu wechseln. Sie ermöglichen uns einen Zugriff mit CSS auf die Schriftart selbst, und dadurch werden fließende Übergänge und  kontinuierliche statt sprunghafte Veränderungen der Schriftart möglich.


Vielleicht würde man erwarten, das sei schon mit herkömmlichen Methoden, beispielsweise über eine Animation möglich; ist es aber nicht. Wenn wir mit einer Transformation, Animation oder mit :hover arbeiten, erfolgt die Veränderung von font-weight sprunghaft.

Wir möchten beispielsweise, dass eine Schrift mittels Animation dicker und dünner wird.



Das Ergebnis sieht so aus:


Mit einer variablen Schriftart können wir aber auf Eigenschaften der Schrift direkt zugreifen, so zum Beispiel auch auf font-weight. Mit einer variablen Schriftart sieht die gleiche Animation so aus:



Axis – variable Schriftarten und ihre „Achsen“

Warum ist das so?


Die CSS-Anweisung unterscheidet sich etwas von der bisherigen Methode. 

Bei variablen Schriftarten arbeiten wir mit font-variation-settings. Dabei handelt es sich um eine low-level-property, die normalerweise nicht verwendet werden soll (mehr dazu in der Dokumentation), da wir damit direkt auf die Schrift zugreifen. Bei variablen Schriftarten wollen wir aber genau das. Wir verändern eine bestimmte axis einer Schriftart, wobei die zulässigen Werte bei unterschiedlichen Schriftarten variieren können.

Häufig werden Werte zwischen 1 und 1000 definiert; bei italic wäre es allerdings ein boolscher Wert, 0 oder 1.

Derzeit gibt es fünf sogenannte registrierte Achsen (registered axes):



Bei "wght" beispielsweise können bei einer variablen Schriftart nicht nur die Standardwerte 400 für normal und 700 für bold angegeben werden (oder Werte in 100er-Sprüngen zwischen 100 und 900), sondern beliebige Werte innerhalb des verfügbaren Rahmens, etwa 374.

Das erklärt übrigens auch die nahtlose Verbreiterung der Schrift im Beispiel weiter oben.

Es ist damit zu rechnen, dass im Laufe der nächsten Jahre noch weitere registered axes hinzukommen.

Es gibt allerdings nicht nur diese fünf registrierten Achsen, sondern auch beliebig viele benutzerdefinierte (custom axes)!

Im Unterschied zu den registrierten Achsen müssen die benutzerdefinierten mit Großbuchstaben geschrieben werden, wie beispielsweise "TRMC" für „rounded slab“ bei der variablen Schriftart „Decovar“ von David Berlow – wie der Schriftdesigner diese benennen möchte, bleibt ihm selbst überlassen, der Achsenname muss nur aus genau vier Großbuchstaben bestehen.


Die Achsenangaben können beliebig miteinander kombiniert und somit unterschiedlichste Variationen einer Schrift geschaffen werden:



Schon in diesem simplen Beispiel werden durch die Kombination von "wdth" und "wght" 36 Varianten der variablen Schriftart „Amstelvar“ erstellt – aber Vorsicht: Nicht alle Kombinationen machen auch Sinn.

In Kombination von extrem schmal mit extrem fett in der ersten und zweiten Zeile des Beispiels oben wird die Schrift unleserlich.




Über benutzerdefinierte Achsen (custom axes) können auch andere, aus der Typografie bekannte Eigenschaften wie "GRADE" beeinflusst oder neue erfunden werden.

Bei der Schriftart „Buffalo Gal“ lassen sich z.B. die Eigenschaften „Cookies“, „Fringe“, „Hooves“, „Concavity“ und „Bracketing“ variabel einstellen.


Dadurch lässt sich das Erscheinungsbild der Schrift komplett verändern; „Cookies“ beispielsweise betreffen die Form der Punkte auf den Großbuchstaben, „Fringe“ die Form und Größe der Auswölbung in der Mitte.


Durch die fließende Veränderung der Achsen lassen sich spannende Effekte erzielen, wie beispielsweise mit der Schriftart „Decovar“ von David Berlow:



Wie wird’s gemacht?

Die Schriftart selbst wird auf dem gleichen Weg importiert wie jede andere Schriftart, in den meisten Fällen über @font-face.

Das Element, das die Schriftart enthält, bekommt nun die Anweisungen, wie die Schrift denn eigentlich auszusehen hat. Das kann etwas Simples sein wie die Dicke…


…die, vielleicht doch nicht ganz so simpel, jetzt mit der Bildschirmbreite mitwachsen oder schrumpfen kann.

Oder es kann sich, je nach Komplexität der vorhandenen benutzerdefinierten Achsen, auch um eine etwas längere Anweisung handeln…


…wie für das „Eiszeit“-Beispiel verwendet.


Diese Achsen (registrierte und benutzerdefinierte gleichermaßen) lassen sich, im Gegensatz zu font-weight oder font-style, animieren. Hier ein weiteres, von Mandy Michael inspiriertes Beispiel mit der Schriftart „Decovar“:



In ihrem Vortrag „Variable Fonts and the Flexible Nature of Screens and Devices“ zeigt Mandy Michael eindrucksvoll, was alles mit variablen Schriftarten möglich ist. Den Vortrag gibt es auf YouTube hier.


Auch Schriftarten, die aus Icons statt aus Buchstaben bestehen, können über die custom axes animiert werden, wie z.B. die Schriftart „Zycon“ (ebenfalls von David Berlow):



Wer selbst ein bisschen mit variablen Schriftarten und ihren Möglichkeiten herumspielen will, ohne sich gleich eine herunterladen zu müssen, oder wer sich einfach ein bisschen „Appetit holen“ möchte, kann das auf der Seite Axis-Praxisvon Laurence Penny tun.

Auch wer eine eigene variable Schriftart designt hat, kann diese Website zum Testen verwenden.


Browsersupport


Hm ja, klingt ja eigentlich spannend, aber funktioniert das denn überhaupt schon?


Der Browsersupport ist inzwischen ziemlich gut – lediglich im Internet Explorer funktionieren die variablen Fonts nicht.

Wer dennoch IE unterstützen muss, muss sich (wie sonst auch) zwei CSS-Varianten einfallen lassen, einmal mit variablen Schriftarten und einmal ohne.

Mit @supports lässt sich das aber vergleichsweise einfach klären.



Eine aktuelle Übersicht, welcher Browser was und ab welcher Version unterstützt, findet Ihr auf caniuse.com.


Ich wünsche Euch viel Spaß beim Herumprobieren, und vielleicht sehen wir uns ja in einem unserer Kurse zum Thema CSS und Responsive Web Design!





Kommentare sind geschlossen