2025-05-25
Zum Design eigener Dokumente (ob Web oder auf Papier) gehört die Gestaltung mit selbst gewählten Fonts. Diese können in HTML problemlos festgelegt werden. Da man beim Betrachter nicht voraussetzen kann, dass der eigene Wunschfont installiert ist, verwendet man Web-Fonts, die über das Internet geladen werden.
Google stellt freie Fonts seit längerem erfolgreich und zentral zur Verfügung.
Dateienzahl: Zu jeder Fontfamilie (das, was wir mit einem Namen kennzeichnen, z.B. “Open Sans” oder “Arial”) gehören verschiedene Font-Dateien, um jede gewünschte Darstellungsart erreichen zu können. Diese werden fast immer für normal/italic und andererseits für verschiedene Dicken der Zeichen (“weight”) benötigt. Google selbst unterteilt die Dateien außerdem nach Bereichen im Zeichensatz: "latin", "latin-ext", "greek" und einige weitere. Diese Dateien gibt es außerdem jeweils in verschiedenen Formaten für ältere und neuere Browser. Will man also Open Sans in dünn, normal, fett und ultrafett sowie dasselbe in italic, mit drei Datei-Varianten (ttf, woff, woff2), so handelt es sich bereits um 24 Dateien, ohne dass man sich überhaupt um den Zeichenumfang gekümmert hat. Kein Wunder, dass die meisten Webdesigner die Arbeit Google überlassen. Dieser Aufwand lässt sich inzwischen aber deutlich reduzieren!
Variable Fonts ermöglichen mit weniger Dateien die Ziele flexibler Typographie zu erreichen. Dazu ist eine Kombination aus halbwegs modernem Betriebssystem und leidlich aktuellem Browser nötig! Ignoriert man also veraltete Systeme, so verringert sich der Aufwand deutlich.
Der Clou:
Das woff2-Format ermöglicht “variable Fonts”1 2 3.
Dies bedeutet, dass man i.d.R. keine getrennten Dateien für schmal,
normal und fette Schrift braucht, sondern diese Schnitte typographisch
korrekt aus einer einzigen Datei errechnet werden (über CSS
gesteuert).
Welche Fonts es bereits gibt, kann Google Fonts gefiltert
auflisten. Sofern einem diese Fonts genügen, gelten die folgenden
Vorschläge:
Damit sind mehrere Probleme gelöst:
Handling: Komplexität verringert.
Datenschutz: keine erzwungenen Abfragen bei Google wenn jemand deine Seite besucht.
Dazu kommt ein Bonus bei der Geschwindigkeit des Seitenaufbaus:
Performance: Schnelle Lösung, da weniger DNS-Abfragen nötig sind. Die notwendige DNS-Abfrage zu deiner Seite ist längst gemacht worden, bevor die Fonts abgerufen werden müssen.
HTTP/2 ermöglicht, dass die Fonts auf demselben Server über dieselbe Session - auch interleaved - übertragen werden. Solange dein Server nicht an sich langsam angebunden ist, sollte damit der Abruf sehr schnell sein! Prüfe, ob dein Server/Anbieter inzwischen HTTP/2 (nur via HTTPS möglich) nutzt!
Mit einem Preload kann man eine (Font-)-Datei sehr früh im Seitenaufbau übertragen lassen. Diese Datei ist im Fall von variablen Fonts bereits sehr weitgehend nutzbar. Sie liegt dann bereits vor, wenn die CSS-Datei vom Browser interpretiert wird.
Kleiner Nachteil: Eine Fontdatei mit recht vollständiger Abdeckung des Unicode-Zeichensatzes ist ca. 100 kByte groß. Google-Fonts würde erst einmal nur einen Teilbereich mit den benötigten Zeichen übertragen mit z.B. 20 kByte Größe. Dies allerdings von einem anderen als deinem Server über eine neue TLS-Session. Man hat dort also weniger Downloadvolumen, dafür mehr Latenzen. Relevant am ehesten im mobilen Sektor bei schlechter Verbindung.
Was benötigen wir?
In Stichpunkten (neues Vorgehen 2025):
/fonts
sinnvoll, wo du die Dateien hineinlegen kannst. Entscheide dich für
immer! Lege es an!/.htaccess (mit dem Punkt) notwendig. Wegen
Beschränkungen5 muss man dem Server nämlich erst
erlauben, dass er Fonts an alle möglichen Interessenten
ausliefert. Ob du das willst musst du wissen...<FilesMatch "\.(woff2)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch> @font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: url(https://example.de/fonts/Roboto.woff2) format("woff2 supports variations"),
url(https://example.de/fonts/Roboto.woff2) format("woff2-variations");
}
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 100 900;
font-display: swap;
src: url(https://example.de/fonts/Roboto_Italic.woff2) format("woff2 supports variations"),
url(https://example.de/fonts/Roboto_Italic.woff2) format("woff2-variations");
}
body { font-family: sans-serif; }
h1, h2, h3 { font-family: "Roboto";}
h1 {font-weight: 800;}
h2 {font-style: italic;} <H1>Roboto in GROSS</H1>
<p>Und etwas Text</p>
<H2>Roboto in kursiv</H2>
<p>Etwas Text</p>
<H3>Roboto in mittel</H3>
<p>Etwas Text</p>
<H4>Kein Roboto</H4>
<p>Der letzte Text</p>Es empfiehlt sich, die Font-Datei, welche hauptsächlich benötigt
wird, bereits parallel zur HTML-Datei zu laden. Ergänze dazu im
head-Bereich der HTML-Datei:
<link
rel="preload"
as="font"
crossorigin="anonymous"
href="https://example.de/fonts/Roboto.woff2"
type="font/woff2"
>Natürlich wird diese Datei im Browsercache abgelegt und nicht jedesmal geladen.
EN: https://fonts.google.com/knowledge/using_variable_fonts_on_the_web↩︎
Die Dateiformate TTF und WOFF2 unterscheiden sich hauptsächlich in Bezug auf die Dateigröße. Die Logik ist identisch, es findet kein Qualitätsverlust statt.↩︎
Hinter den Beschränkungen steht vermutlich die Angst vor Lizenzproblemen und ggf. Downloadvolumina. Da (vermutlich?) alle Google-Fonts freie Lizenzen haben, trifft das hier nicht zu. Kläre deine Lizenzen sicherheitshalber selbst!↩︎