Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FOIT, FOUT, FUCK
Search
Gunnar Bittersmann
June 28, 2018
Design
1.1k
0
Share
FOIT, FOUT, FUCK
Wie Webfonts auf Webseiten kommen
Typostammtisch Berlin, Pecha-Kucha-Abend
Gunnar Bittersmann
June 28, 2018
More Decks by Gunnar Bittersmann
See All by Gunnar Bittersmann
Responsive typography 2
gunnarbittersmann
0
170
Go home, Prettifier, you’re drunk!!
gunnarbittersmann
0
120
3 Fehler sind zu finden
gunnarbittersmann
0
190
TIL that the future :has already begun
gunnarbittersmann
0
130
TIL how to clear floats
gunnarbittersmann
0
120
TIL about showModal (from small things big things one day come)
gunnarbittersmann
0
130
Inclusive Design 24 2022 – Gunnar’s picks
gunnarbittersmann
0
110
The color rebeccapurple
gunnarbittersmann
0
190
Mehrsprachige Websites
gunnarbittersmann
0
110
Other Decks in Design
See All in Design
2026年の勢い / Momentum for 2026
bebe
0
410
2026年、デザイナーはなにに賭ける?
0b1tk
0
520
「バイブコーディングって何?」から始まった、 AIとの一年間と、その先のこと
seto
0
310
モビリティプラットフォームの未来を築くクラウド基盤
kossykinto
0
260
Connpass-Xperia_Camera_App_by_HCD.pdf
sony
0
580
アイデアを加速させる!Firefly ボードで発想の幅を広げよう
connecre
1
370
社長の宿題への回答 「新卒×AI」が生み出す価値
saki822
2
120
kintone_aroma
kintone
0
1.9k
Drawing for Animation
lynteo
2
270
絵や写真から学ぶ、要素がもたらす副作用
kspace
0
250
AIでデザインをつくる:基礎編
kenichiota0711
4
3k
【pmconf2025】PdMの頭の中を見える化する体験構造図
kamechi7222222
1
2.2k
Featured
See All Featured
New Earth Scene 8
popppiees
3
2k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
490
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Typedesign – Prime Four
hannesfritz
42
3k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
760
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
It's Worth the Effort
3n
188
29k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
240
Transcript
FOIT FOUT FUCK
@font-face { font-family: 'What The Font'; font-weight: normal; font-style: normal;
src: url('wtf.eot'); src: url('wtf.eot?#iefix') format('embedded-opentype'), url('wtf.woff2') format('woff2'), url('wtf.woff') format('woff'), url('wtf.ttf') format('truetype'), url('wtf.svg#wtf') format('svg') }
WOFF Weg mit den ollen Font-Formaten!
None
FOIT Flash of invisible text
FOUT Flash of unstyled text
None
ist Webfont im localStorage? render Text in Webfont lade Webfont
aus localStorage ja nein
ist Webfont im localStorage? render Text in Systemschrift render Text
in Webfont lade Webfont aus localStorage download Webfont im Hintergrund, speicher in localStorage ja nein
block swap FOIT FOUT ≈3s
block swap swap ≈0.1s ≈3s font-display: block swap
block swap swap swap fallback fallback ≈0.1s ≈3s font-display: block
swap fallback optional
@font-face { font-family: 'What The Font'; font-weight: normal; font-style: normal;
src: url('wtf.woff2') format('woff2'), url('wtf.woff') format('woff'); font-display: optional; }
CSS Font Loading API var wtfFace = new FontFace("What the
Font", "url(wtf.woff)", {}); wtfFace.load().then(function (loadedFace) { document.fonts.add(loadedFace); document.body.style.fontFamily = "What the Font, sans-serif"; });
None
Flash of faux text
LiebeGerda-Regular.woff 893 KB LiebeGerda-RegularItalic.woff 974 KB LiebeGerda-Bold.woff 1.3 MB LiebeGerda-BoldItalic.woff
1.3 MB Liebe Gerda, wir müssen reden.
<img src="LiebeGerda-600.png" srcset="LiebeGerda-1200.png 1200w, LiebeGerda-900.png 900w" alt="Liebe Gerda, wir müssen
reden."/> LiebeGerda-1200.png 27.3 KB LiebeGerda-900.png 18.4 KB LiebeGerda-750.png 14.4 KB LiebeGerda-600.png 10.8 KB
FOCS Flash of Comic Sans
Die Art des Inhalts und der Interaktionen setzen gewisse Grenzen;
die Bedürfnisse und Ziele der Nutzer setzen andere. Die Tätigkeit des Webdesigns besteht nun darin, diese Grenzen auszuloten und in Einklang zu bringen. — Laura Kalbag, Accessibility for Everyone