Schriftarten & Webfonts
Definition: Webfonts (auch: Web-Schriftarten; @font-face-Schriften) sind Schriftarten die über das @font-face-CSS-Feature in Webseiten eingebunden werden und Browsern ermöglichen individuelle Typografie-Designs zu rendern die über die auf dem Nutzersystem vorinstallierten Systemschriften (Arial, Times New Roman, Georgia, Verdana) hinausgehen. Webfont-Formate: WOFF2 (Web Open Font Format 2; entwickelt von Raph Levien und Google 2012; W3C Recommendation 2018; beste Kompressionsrate; 30% kleiner als WOFF; Standard-Format für moderne Browser); WOFF (Web Open Font Format; Mozilla Foundation; 2009; Vorgänger; weitgehend durch WOFF2 ersetzt; nur noch für IE11-Kompatibilität relevant); TTF/OTF (TrueType/OpenType; ältere Desktop-Font-Formate; größer als WOFF2; in Webanwendungen vermieden). Webfont-Quellen: Google Fonts (Google LLC; 2010; San Francisco; CA; kostenlos; Open-Source-Lizenzen; 1500+ Schriftfamilien; cdn.fonts.googleapis.com; DSGVO-Problem: IP-Übermittlung an US-Server); Adobe Fonts (früher Typekit; Seattle; WA; 2008; von Adobe erworben 2011; 20.000+ Schriften; im Creative-Cloud-Abo enthalten); Fonts.com (Monotype; Woburn; MA; kommerzielle Lizenzen; Enterprise-Fokus); Fontstand (Bratislava; Slowakei; 2014; Monatsmiet-Modell; kaufbare Jahreslizenzen); Variable Fonts (W3C CSS Font Level 4; 2016; alle Schriftschnitte – Regular/Bold/Italic/Light – in einer einzigen Font-Datei; Gewicht stufenlos einstellbar; kleinere Gesamtdateigröße als mehrere statische Schnitte); Selbst-gehostete Systemschriften-Alternativen: font-family: system-ui, -apple-system, BlinkMacSystemFont – keine Ladezeit da auf System vorhanden.
Erläuterung
Die Geschichte der Web-Typografie beginnt mit einer fundamentalen Einschränkung: das frühe World Wide Web (Tim Berners-Lee; CERN; Genf; Schweiz; 1991) konnte nur Schriften rendern die auf dem Client-Betriebssystem installiert waren; Webdesigner waren auf «Web-safe fonts» beschränkt: Arial, Helvetica, Times New Roman, Georgia, Verdana, Courier New, Trebuchet MS – alle auf Windows und Mac vorinstalliert. Håkon Wium Lie (Opera Software; Oslo; Norwegen; CSS-Miterfinder) und Bert Bos schrieben @font-face in die CSS2-Spezifikation (W3C CSS Working Group; 1998); Microsoft Internet Explorer 4 (1997) implementierte @font-face mit proprietärem EOT-Format (Embedded OpenType); die Technik blieb jedoch weitgehend ungenutzt da Firefox, Safari und Chrome keine Unterstützung hatten. Jeffrey Zeldman (A List Apart; New York; «Designing with Web Standards», New Riders, 2003; 3. Auflage 2009) und Ethan Marcotte (Boston; MA) trieben Web-Standards-Adoption voran und dokumentierten die Typografie-Einschränkungen als kritische Kreativitätshürde. Font-Replacement-Techniken wie sIFR (Mike Davidson; Newsweek; 2004; Flash-basierter Schrift-Ersatz) und Cufón (JavaScript-basiert; 2008) überbrückten die Lücke bis zu echter @font-face-Unterstützung. Small Screens, die Service Typekit (früher Typekit; Berkeley; CA; 2008; Jeffrey Veen und Ryan Carver; von Adobe 2011 für 10-20M USD erworben) löste das Lizenzierungsproblem: Schriftanbieter hatten @font-face blockiert da Desktop-Font-Lizenzen keine Web-Nutzung erlaubten; Typekit schuf ein Lizenz-Framework das Schriftanbieter überzeugte ihre Schriften für Web-Einbindung freizugeben. Google Fonts (Google; 2010; Simon Iurato und Bruno Bergher als erste Team-Leads) demokratisierte Webfonts durch kostenlosen Open-Source-Zugang: die erste Version 2010 enthielt nur 18 Schriften; heute über 1.500 Schriftfamilien; Google Fonts ist der meistgenutzte Webfont-Dienst weltweit mit über 50 Milliarden täglichen Font-Auslieferungen (Google Stand 2022). Raph Levien (Google; San Francisco; CA; Schrift-Forscher; XML-Entwickler; «An Improved Algorithm for Anti-Aliasing»; entwickelte WOFF2-Format 2012 gemeinsam mit dem Google-Fonts-Team) entwickelte WOFF2 als Nachfolger von WOFF: Brotli-Komprimierung (statt zlib in WOFF) erzeugt 30% kleinere Dateien; W3C Recommendation März 2018; vollständige Browser-Unterstützung seit 2015. Variable Fonts (W3C OpenType Specification; Erweiterung von OpenType 1.8; Apple/Google/Microsoft/Adobe; September 2016): ein Single-Font-Datei enthält eine kontinuierliche Achse von Schrift-Variationen (weight axis: 100–900; width axis: condensed–expanded; italic axis; slant axis; custom axes); CSS font-variation-settings und font-weight: 350 (Nicht-Standard-Wert) möglich; Nick Sherman (Typeface-Journalist; typographica.org) dokumentierte Variable Fonts als «the most significant advancement in font technology since OpenType»; DSGVO-Implikation: Mit Urteil des LG München I (20 Januar 2022; Az. 3 O 17493/20) wurde die Einbindung von Google Fonts über CDN ohne explizite Nutzer-Einwilligung als DSGVO-Verstoß eingestuft da IP-Adressen an US-Server übermittelt werden; Self-Hosting wurde zur DSGVO-konformen Pflicht für deutsche Websites.
@font-face, WOFF2 und font-display
- @font-face CSS-Implementierung: Minimale @font-face-Deklaration: @font-face { font-family: 'MyFont'; src: url('/fonts/myfont.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }; font-display-Werte: auto (Browser-Standard; meist ähnlich block); block (bis zu 3s unsichtbar; dann Font oder Systemfont); swap (sofort Systemfont; bei Font-Laden ersetzen; empfohlen für Texte; kann FOUT erzeugen); fallback (100ms block; 3s swap; danach Systemfont permanent); optional (100ms block; nach Periode entscheidet Browser ob Font schnell genug lädt; gut für optionale Fonts); font-display: swap ist Standard-Empfehlung für Textschriften; verhindert FOIT (Flash of Invisible Text; Text bleibt unsichtbar solange Font lädt); akzeptiert FOUT (Flash of Unstyled Text; Text kurz in Systemschrift sichtbar bevor eigentlicher Font geladen); font-display: optional für Schriften die Performance nicht beeinflussen sollen; Browser lässt Font weg wenn Verbindung langsam; preload-Link-Tag für kritische Fonts: <link rel="preload" href="/fonts/myfont.woff2" as="font" type="font/woff2" crossorigin>; lädt Font mit höchster Priorität; LCP-Verbesserung wenn Font-Text LCP-Element ist; crossorigin-Attribut zwingend auch bei Same-Origin-Fonts für preload
- Self-Hosting und DSGVO-konforme Einbindung: Self-Hosting-Workflow für Google Fonts: (1) gewünschte Schrift auf fonts.google.com auswählen; (2) google-webfonts-helper.herokuapp.com (Mario Ranftl; Open Source): automatisch optimierte WOFF2 und CSS-Snippets generieren; (3) Font-Dateien in /fonts/ Ordner des eigenen Servers hochladen; (4) @font-face-CSS mit lokalem Pfad; Vorteile Self-Hosting: DSGVO-konform (keine IP-Übermittlung an Dritte); keine externe Abhängigkeit; Caching-Kontrolle; Potential-Latenz-Vorteil bei kurzer Server-Distanz; Subsetting für Performance: nur benötigte Zeichen in Font-Datei; pyftsubset (fonttools; Google; GitHub; Python; Open Source): python3 -m fonttools.subset font.woff2 --output-file=font-subset.woff2 --unicodes="U+0020-007E,U+00C0-017E" – lädt nur lateinische Grundzeichen und erweiterte Lateinschrift; unicode-range in @font-face: @font-face { unicode-range: U+0020-007E, U+00C0-017E; } – Browser lädt Font nur wenn benötigte Zeichen auf der Seite vorkommen; Font-Performance-Metriken: First Contentful Paint (FCP) wird verschlechtert wenn Fonts blockieren; Lighthouse Font-Audit; Chrome DevTools Rendering → Show Paint Flashing zeigt FOUT visuell; Wakamaifondue (Roel Nieskens; Open Source; wakamaifondue.com): Font-Datei droppen; zeigt alle Variable-Font-Achsen; Features; Character Sets; opentype-features
- Variable Fonts und font-variation-settings: Variable Fonts Grundprinzip: eine TTF/WOFF2-Datei enthält alle Variationen entlang definierten Achsen; Dateigrößen-Vergleich: Inter Regular (400) + Bold (700) als statische Dateien: ~170KB WOFF2 gesamt; Inter Variable (alle Gewichte): ~340KB WOFF2 – bei vielen Gewichten spart Variable Font signifikant; bei nur 2 Schnitten: statisch leichter; font-weight mit Variable Font: @font-face { font-family: 'Inter'; src: url('/fonts/Inter-var.woff2') format('woff2'); font-weight: 100 900; } – jeder Gewichtswert von 100 bis 900 möglich; CSS: h1 { font-weight: 750; } – exakt Gewicht 750 (zwischen Bold 700 und ExtraBold 800); font-variation-settings: font-variation-settings: 'wght' 350, 'wdth' 90; – direkte Achsen-Steuerung; benutzerdefinierte Achsen (Custom Axes): Schriftdesigner können eigene Achsen definieren; z.B. «Casual» für Informalitäts-Grad; Recursive Typeface (Arrow Type; 2019) hat custom axes für Code vs. Casual; wichtige Variable Fonts: Inter (Rasmus Andersson; San Francisco; CA; 2017; Google Fonts; Open Source; MIT-Lizenz; für Bildschirmlesbarkeit optimiert); Roboto Flex (Google; 2022; Google Fonts; variable Version von Roboto); Source Sans Variable (Adobe; 2017; Open Source); Fira Code Variable (Nikita Prokopov; 2018; Open Source; Coding-Font mit Ligaturen)
Schriftklassen, Typografie-Systematik und Font-Paarungen
- Schriftklassen und ihre Einsatzbereiche: Serif-Schriften (mit Serifen/Häkchen an Buchstaben-Enden): klassisch; traditionell; hohe Lesbarkeit in Drucktexten; auf Web-Bildschirmen für längere Texte manchmal schwerer lesbar (Retina-Displays haben das verbessert); Google Fonts Serif-Empfehlungen: Merriweather (Eben Sorkin; 2011; für Weblesbarkeit optimiert); Playfair Display (Claus Eggers Sørensen; 2011; Display; Headlines); Lora (Olga Karpushina; 2011; fließende Balance für Text und Display); Sans-Serif-Schriften (ohne Serifen): modern; sauber; hochlesbar auf Bildschirmen; Standard für UI-Design; Inter (Rasmus Andersson; 2017): de-facto-Standard für Web-UIs; Roboto (Christian Robertson; Google; 2011): Android-Standard; Google Material Design; Open Sans (Steve Matteson; Google; 2011): Neutralität; breite Nutzung; Source Sans (Paul D. Hunt; Adobe; 2012): Open Source; ausgezeichnete Lesbarkeit; Monospace/Code-Schriften: alle Zeichen gleichbreit; für Code-Darstellung; JetBrains Mono (JetBrains; Prag; Tschechien; 2020); Fira Code (Nikita Prokopov; Open Source; 2016); Cascadia Code (Microsoft; 2019); Display/Headline-Schriften: dekorativ; für Überschriften; nicht für Fließtext; Oswald (Vernon Adams; Google Fonts; 2011); Playfair Display (s.o.); Handschriften: Pacifico; Dancing Script; nur für Akzente und Branding; sehr sparsam; schlechte Lesbarkeit in Fließtext
- Font-Paarungen und Typografie-Hierarchie: Prinzip der Schrift-Paarung: Kontrast zwischen Headline- und Body-Schrift; komplementäre aber unterschiedliche Charaktere; Pairing-Strategien: Serif-Headline + Sans-Serif-Body (klassisch; z.B. Playfair Display + Source Sans); Same-Family-Variable (Inter für alles; unterschiedliche Gewichte statt unterschiedliche Familien); Neutral-Body + Expressive-Headline (Open Sans für Text; benutzerdefinierte Brand-Schrift für Headlines); Font-Paarungen aus der Praxis: Google: Product Sans (Headlines) + Roboto (Body); Airbnb: Cereal (Custom; Dalton Maag; London; England); Netflix: Netflix Sans (Custom; Dalton Maag); Apple: SF Pro (San Francisco; Apple eigene Schrift; Chuck Bigelow/Kris Holmes; Bigelow & Holmes; 1991 Lucida Grande Basis; 2014 San Francisco neu entwickelt); Typografische Hierarchie: H1: 32–48px; Bold (700+); Brand-Schrift oder Headline-Font; H2: 24–32px; Semibold (600); H3: 18–24px; Semibold oder Regular; Body: 16–18px (nie unter 16px auf Mobile wegen iOS-Zoom-Bug); Line-Height (Zeilenabstand): 1.5–1.6 für Fließtext; 1.2–1.3 für Headlines; Letter-Spacing: Headlines leicht negativ (-0.01em bis -0.02em) für engere Optik; Body leicht positiv (+0.01em) für Luftigkeit; CSS-Empfehlung: font-size: clamp(16px, 1rem + 1vw, 18px) für responsive Schriftgrößen