Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ウェブフォント今昔物語
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
takanorip
November 15, 2019
Technology
5.1k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ウェブフォント今昔物語
takanorip
November 15, 2019
More Decks by takanorip
See All by takanorip
今さら理解するウェブフォントver.2026
takanorip
3
1k
AI-Slopなデザインを生まないためのデザインプロセス戦略
takanorip
10
6.4k
「見せる」登壇資料デザインの極意
takanorip
7
1.9k
Design System Documentation Tooling 2025
takanorip
3
3.2k
デザインエンジニアの延長にデザインマネージャーとしての可能性を探る
takanorip
1
1.4k
Tools for Design Engineers other than LLM in the LLM era
takanorip
1
930
Bulletproof Design System with TypeScript
takanorip
7
5.5k
Eleventy3.0 で始める爆速個人ブログ開発!
takanorip
0
330
Webフォント選定の極意!フォントの基本から最新トレンドまで徹底解説
takanorip
6
1.2k
Other Decks in Technology
See All in Technology
QAエンジニアがSoutherを使ってみたの〜10分でわかるSouther〜
mhlyc
0
120
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
300
企画を Software Factory-ready にする——開発が高速になったとき、PdMの仕事はどう変わったか
yachibit
1
280
freeeにおける AI を用いた ブラウザ動作確認の自動化の取り組み
freee
PRO
0
230
Claude Code をローカルとサーバー上で利用した際の Bedrock 利用料をユーザー単位で一本化してみる
ohorig
0
160
AIエージェントに 権限と鍵をどこまで渡すか
nrinetcom
PRO
2
110
これだけは抑えておきたい!後悔しない re:Invent の過ごし方 / AWS re:Invent 2026 prestudy
kinunori
2
420
Vue.jsのGitHubから学ぶ意思決定
yut0naga1_fa
1
300
ガチで放置できるClaude Code実行環境の作り方.pdf
lamaglama39
5
9.8k
Agent 活用環境の構築・運用のための AWS サービスのご紹介/agentcore-for-building-and-operating-agents
ren8k
1
170
ひとりで始めた AI駆動開発、チームに広げて何が変わったのか
kenichiodo
0
100
Teaching Python with three kinds of AI
reuven
0
120
Featured
See All Featured
From π to Pie charts
rasagy
1
410
Accessibility Awareness
sabderemane
1
260
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Product Roadmaps are Hard
iamctodd
55
13k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
720
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
710
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
340
We Have a Design System, Now What?
morganepeng
55
8.4k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Transcript
ウェブフォント今昔物語 2019.11.16 Takanori Oki @フロントエンドカンファレンス福岡2019 Copyright © 2019 FOLIO, Ltd.
All Rights Reserved.
自己紹介 • 株式会社FOLIO フロントエンドエンジニア • React / Nuxt.js / Web
Components / etc… • フォントとFigmaが好き • 好きなフォントは新ゴ、Futura、源柔ゴシック、 機械彫刻用標準書体 • ウェブフォントの本書いてます 2
誰でもつかえる! ウェブフォント 実践マニュアル 3
株式会社FOLIO 4
株式会社FOLIO • 「ワクワクする投資、はじめよう!」 • オンライン証券の会社 • LINE Financial株式会社と共同で 「LINEスマート投資」を運営 •
フロントエンドの技術スタックは React, Redux, Flow, etc… 5
目次 • ウェブフォントって何? • 3つの視点から考えるウェブフォントのあれこれ - ユーザー - デザイナー -
エンジニア • まとめ 6
今回みなさんに伝えたいこと
X ウェブフォントはこわくない! 8
ウェブフォントって何?
X 10 ここに書いてあるよ!
What is “Web Font”? 11 サーバーに フォントデータを アップロード サーバーから フォントデータを
取得して表⽰
昔の ウェブフォント 12 フォントデータが重い 日本語フォントの バリエーションが少ない
日本語フォントが 重い理由 • 文字数が多い • グリフが複雑 13
今の ウェブフォント • 日本語ウェブフォントはたしかに重いけど 実装を工夫することでそれを回避できるようになっ てきた - 「エンジニア」のところで詳しく解説 • 日本語フォントのバリエーションが格段に増えた
- 日本語フォントを取り扱う ウェブフォント配信サービスの増加 - Google Fonts、Adobe Fonts、 TypeSquare、FONTPLUS、etc… 14
3つの視点から考える ウェブフォントのあれこれ
3つの視点 16 エンジニア ユーザー デザイナー
X ユーザー目線 17
X よくあるユーザーの声 18
ユーザー目線 「読み込みが遅い、フォントデータが重い、 ムダに通信量を消費しないでほしい」 19
ユーザー目線 • 読み込みが遅い - ユーザーに遅さを感じさせない実装をする必要が ある、ごめん • フォントデータが重い - これはまじごめん致し方ない、これでも前より
軽くなってる • ムダに通信量を消費しないでほしい - Google Fonts使えばユーザーの通信量を ムダにしない 20
ウェブフォントが ユーザーに 提供できること • 可読性の向上 - フォントと可読性は密接に関係している - ディスレクシア(読字障害)や弱視などの障害を持 つ人にとって読みやすいフォントを選択する
ことは非常に重要 • 株式会社モリサワがいくつかレポート出してるので、 興味がある人は読んでみて - https://www.morisawa.co.jp/fonts/udfont/ study/ 21
X デザイナー目線 22
デザイナー目線 • デザインの幅が広がる - フォントで全体の印象が大きく変わる - 全体のデザインを考える上で欠かせない要素 • デバイスやOSに関係なく同じデザインを提供できる -
そもそも、特定のOSにしか搭載されてないフォント でデザイン考えるのおかしくない? 23
デザイナー目線 デザイナーにメリットしかない! 24
注意点 • ライセンスでウェブフォントとしての利用が 禁止されてる場合があるので注意が必要 • ライセンス周りはかなりややこしいので 配信サービスを使うのが安全 • ウェブフォントとして使うには 「フォントの改変」「再配布」の許可が必要
25
X エンジニア目線 26
エンジニア目線 「重い。ちらつく。なんかよくわからない。 時間かけたくない。必要あるの?」 27
エンジニア目線 Googleが書いている 「ウェブフォントの最適化」を実践する https://developers.google.com/web/fundamentals/ performance/optimizing-content-efficiency/webfont- optimization?hl=ja 28
ウェブフォントで 使われる技術 • WOFF2形式での圧縮 • ダイナミックサブセット、ユニコードサブセット • Font Loading API
• CSSのfont-displayプロパティ • Service Workerを用いたキャッシュ戦略 • <link rel=“preload"> 29
ウェブフォント圧縮形式の歴史 30 WOFF WebOpenFontFormat 2009年に公開された ウェブフォント用の圧縮形式。 zlibを使用して圧縮されている。 TTF TrueTypeFont 一般的なフォントファイル。
自前で圧縮する必要がある。 WOFF2 WebOpenFontFormat2 Brotliという圧縮アルゴリズムを 使用した新しい圧縮形式。 WOFFと比較して約30%軽い。
Noto Sans CJK JP Regularのサイズ比較 31 TTF WOFF WOFF2 ファイルサイズ
0MB 5MB 10MB 15MB 20MB 10.7MB 13.7MB 16.4MB
ダイナミック サブセット • フォントを動的にサブセットする手法 • メリット - そのページで使われてる文字しかダウンロード されないのでフォントデータを軽くできる •
デメリット - ページ読み込み時にJavaScriptを実行するので 環境によっては使えない可能性がある - SPAや動的に表示が変わるUIと相性が悪い 32
FOUTを抑止する方法 33
FOUT • Flash of Unstyled Text - ウェブフォントのスタイルがあたってない文字が チラ見えしてしまうこと •
対策を怠るとプロダクトの体験が悪くなる • デザイナーとコミュニケーションをとりベストな方 法を探す! 34
FOUTの仕組み 35 リクエスト HTMLダウンロード DOM構築 CSSOM構築 ファーストペイント テキスト表示 CSSダウンロード フォントダウンロード
この間テキストにデバイスフォントが適用されて見える
主な解決策 • Font Loading APIでフォントの読み込みを監視、 読み込み完了するまでローディング画面を 表示するなどの制御を加える • CSSのfont-displayプロパティで表示の タイミングをコントロールする
36
Font Loading APIでフォントのロードを監視 37
まとめ
X ウェブフォントはユーザーに とってメリットがある 39
X 最新の技術を使って 使いにくさ、表示の問題を解決できる 仕組みが整いつつある 40
X 日本語ウェブフォントを 広めていきましょう! 41
Thank you.