PAGE online

Variable Fonts animieren step-by-step

Variable Fonts animieren ist gar nicht so schwierig. Martin Grödl vom Wiener Designstudio Process zeigt, wie es geht!

Variable Fonts animieren, Martin Grödl Designstudio Process

Gegenüber statischen Schriften bieten Variable Fonts einige Vorteile: Parameter wie Strichstärke, Neigungswinkel oder Breite der Buchstaben lassen sich über die entsprechenden Achsen per Schieberegler stufenlos einstellen – und so für jedes Layout anpassen. Vor allem im Web zeigen variable Schriften ihre Stärke, etwa indem man die Typografie proportional anlegt, sodass sie auf jedem Screen in der jeweils besten Größe erscheint. Darüber hinaus kann man Variable Fonts mittels HTML und CSS, aber auch in JavaScript animieren.

Variable Fonts animieren, Martin Grödl Designstudio Process

1. Schrift einbinden

 

 

 

Zuallererst laden wir die Schrift mittels @font-face-Regel in CSS. Hierbei geben wir – wie bei jedem anderen Webfont auch – den Pfad zur Schriftdatei sowie deren Format an.

@font-face {
 font-family: "Aifont Variable";
 src: url("https://aifont.process.studio/Aifont-Anim-Trial.woff2") format("woff2");
}

2. Variable Achsen setzen

Jetzt lässt sich die Schrift auch schon anwenden. Über die CSS Property font-variation-settings setzen wir die variablen Achsen. Diese haben jeweils einen vier Zeichen langen Namen, wobei es einige Standardachsen gibt, etwa wght für Weight (Schriftstärke), wdth für Width (Schriftbreite) oder ital für Italic. Die Namen solcher Standardachsen werden kleingeschrieben, von Typedesigner:innen selbst benannte schreibt man in Versalien. In diesem Beispiel verwenden wir unseren Aifont, eine experimentelle, KI-generierte Schrift, die zwischen verschiedenen Stilen changiert (siehe auch www.page-online.de/aifont). Sie enthält die Achse STEP, die die Trainingsschritte im Maschinenlernprozess mit Werten zwischen 1 und 500 visualisiert.

CSS:
.aifont {     
    font-family: "Aifont Variable", sans-serif;     
    font-variation-settings: "STEP" 100;     
    font-size: 80 
} 

HTML: 
<div class="aifont">Hallo Aifont</div>

3a. Animationen mit Transitions

Mit den Transitions in CSS lassen sich einfache Animationen definieren – ausgelöst von Userinteraktionen wie Mouseover oder Klick. Über die CSS-Pseudoklassen :hover beziehungsweise :active geben wir den Zielwert 180 an, den unsere Achse STEP am Ende der Animation annehmen soll. Die Dauer der Animation beträgt bei hover 0,5 Sekunden (Mouseover), bei active 0,3 Sekunden. (Klick)

CSS: 
.hover-anim { transition: font-variation-settings 0.5s; } 
.hover-anim:hover { font-variation-settings: "STEP" 180; } 

.active-anim { transition: font-variation-settings 0.3s; } 
.active-anim:active { font-variation-settings: "STEP" 180; } 

HTML: 
<div class="aifont hover-anim">Hover</div> 
<div class="aifont active-anim“>Press</div>

Variable Fonts animieren, Martin Grödl Designstudio Process, Animation
Diese Animation hat die Achse STEP – sie gibt die Trainingsschritte im Machine-Learning-Prozessmit Werten von 1 bis 500 an. Am Ende der Animation soll die Achse den Zielwert 180 haben

3b. Animationen mit CSS

Wesentlich mehr Möglichkeiten als Transitions bieten CSS-Animationen. Sie sind nicht an Userinteraktionen gebunden und können im Hintergrund laufen. Hier beschreiben wir den Anfangszustand (STEP 1), den Endzustand (STEP 500) und die Dauer der Animation (16 Sekunden), die Schrift wird dann vom Browser animiert. Folgende Einstellungen sind hier wichtig (ok?):

  • animation-direction gibt an, ob die Animation vorwärts (normal), rückwärts (reverse) oder abwechselnd vorwärts und rückwärts (alternate) abgespielt wird.
  • animation-iteration-count sagt, wie oft die Animation abgespielt wird (von 1 bis infinite)
  • animation-timing-function beschreibt, wie die Dynamik der Animation beschaffen ist. Wir haben uns für linear, also immer gleich schnell entschieden, weil es in diesem Fall am besten aussieht.
CSS: 
@keyframes my-anim {     
    from { font-variation-settings: "STEP" 1; }     
    to { font-variation-settings: "STEP" 500; } 
} 
.anim {   
  animation-name: my-anim;   
  animation-duration: 16s;   
  animation-direction: alternate;   
  animation-iteration-count: infinite;   
  animation-timing-function: linear; 
} 

HTML: 
<div class="aifont anim">Animate</div>

Variable Fonts animieren, Martin Grödl Designstudio Process, Beispiele bei CodePen
Martin Grödl hat die Beispiele auch bei CodePen veröffent­licht, der Community zum Testen und Zeigen von HTML-, CSS- und JavaScript-Code: https://codepen.io/groedl/pen/xxQLNMq

3c. Dynamik mit JavaScript

Und schließlich kann man auch JavaScript heranziehen, um die Achsenwerte eines Variable Font dynamisch zu verändern. Im Beispiel steuert die Mausposition direkt die Achse STEP.

JS: 
window.addEventListener("mousemove", e => {   
  const a = e.clientX / window.innerWidth;   
  const b = 1 + a * 499;   
  const reactive = document.querySelector(".reactive");   
  reactive.style.fontVariationSettings = '"STEP" ' + b; 
}); 

HTML: 
<div class="aifont reactive“>Move</div>


Produkt: Download PAGE - Mehrfarbige Webfont Icons erstellen - kostenlos
Download PAGE - Mehrfarbige Webfont Icons erstellen - kostenlos
In 8 Schritten mit Webfonts mehrfarbige und skalierbare Icons erstellen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Das könnte dich auch interessieren