ウェブフォント今昔物語
by
takanorip
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ウェブフォント今昔物語 2019.11.16 Takanori Oki @フロントエンドカンファレンス福岡2019 Copyright © 2019 FOLIO, Ltd. All Rights Reserved.
Slide 2
Slide 2 text
自己紹介 • 株式会社FOLIO フロントエンドエンジニア • React / Nuxt.js / Web Components / etc… • フォントとFigmaが好き • 好きなフォントは新ゴ、Futura、源柔ゴシック、 機械彫刻用標準書体 • ウェブフォントの本書いてます 2
Slide 3
Slide 3 text
誰でもつかえる! ウェブフォント 実践マニュアル 3
Slide 4
Slide 4 text
株式会社FOLIO 4
Slide 5
Slide 5 text
株式会社FOLIO • 「ワクワクする投資、はじめよう!」 • オンライン証券の会社 • LINE Financial株式会社と共同で 「LINEスマート投資」を運営 • フロントエンドの技術スタックは React, Redux, Flow, etc… 5
Slide 6
Slide 6 text
目次 • ウェブフォントって何? • 3つの視点から考えるウェブフォントのあれこれ - ユーザー - デザイナー - エンジニア • まとめ 6
Slide 7
Slide 7 text
今回みなさんに伝えたいこと
Slide 8
Slide 8 text
X ウェブフォントはこわくない! 8
Slide 9
Slide 9 text
ウェブフォントって何?
Slide 10
Slide 10 text
X 10 ここに書いてあるよ!
Slide 11
Slide 11 text
What is “Web Font”? 11 サーバーに フォントデータを アップロード サーバーから フォントデータを 取得して表⽰
Slide 12
Slide 12 text
昔の ウェブフォント 12 フォントデータが重い 日本語フォントの バリエーションが少ない
Slide 13
Slide 13 text
日本語フォントが 重い理由 • 文字数が多い • グリフが複雑 13
Slide 14
Slide 14 text
今の ウェブフォント • 日本語ウェブフォントはたしかに重いけど 実装を工夫することでそれを回避できるようになっ てきた - 「エンジニア」のところで詳しく解説 • 日本語フォントのバリエーションが格段に増えた - 日本語フォントを取り扱う ウェブフォント配信サービスの増加 - Google Fonts、Adobe Fonts、 TypeSquare、FONTPLUS、etc… 14
Slide 15
Slide 15 text
3つの視点から考える ウェブフォントのあれこれ
Slide 16
Slide 16 text
3つの視点 16 エンジニア ユーザー デザイナー
Slide 17
Slide 17 text
X ユーザー目線 17
Slide 18
Slide 18 text
X よくあるユーザーの声 18
Slide 19
Slide 19 text
ユーザー目線 「読み込みが遅い、フォントデータが重い、 ムダに通信量を消費しないでほしい」 19
Slide 20
Slide 20 text
ユーザー目線 • 読み込みが遅い - ユーザーに遅さを感じさせない実装をする必要が ある、ごめん • フォントデータが重い - これはまじごめん致し方ない、これでも前より 軽くなってる • ムダに通信量を消費しないでほしい - Google Fonts使えばユーザーの通信量を ムダにしない 20
Slide 21
Slide 21 text
ウェブフォントが ユーザーに 提供できること • 可読性の向上 - フォントと可読性は密接に関係している - ディスレクシア(読字障害)や弱視などの障害を持 つ人にとって読みやすいフォントを選択する ことは非常に重要 • 株式会社モリサワがいくつかレポート出してるので、 興味がある人は読んでみて - https://www.morisawa.co.jp/fonts/udfont/ study/ 21
Slide 22
Slide 22 text
X デザイナー目線 22
Slide 23
Slide 23 text
デザイナー目線 • デザインの幅が広がる - フォントで全体の印象が大きく変わる - 全体のデザインを考える上で欠かせない要素 • デバイスやOSに関係なく同じデザインを提供できる - そもそも、特定のOSにしか搭載されてないフォント でデザイン考えるのおかしくない? 23
Slide 24
Slide 24 text
デザイナー目線 デザイナーにメリットしかない! 24
Slide 25
Slide 25 text
注意点 • ライセンスでウェブフォントとしての利用が 禁止されてる場合があるので注意が必要 • ライセンス周りはかなりややこしいので 配信サービスを使うのが安全 • ウェブフォントとして使うには 「フォントの改変」「再配布」の許可が必要 25
Slide 26
Slide 26 text
X エンジニア目線 26
Slide 27
Slide 27 text
エンジニア目線 「重い。ちらつく。なんかよくわからない。 時間かけたくない。必要あるの?」 27
Slide 28
Slide 28 text
エンジニア目線 Googleが書いている 「ウェブフォントの最適化」を実践する https://developers.google.com/web/fundamentals/ performance/optimizing-content-efficiency/webfont- optimization?hl=ja 28
Slide 29
Slide 29 text
ウェブフォントで 使われる技術 • WOFF2形式での圧縮 • ダイナミックサブセット、ユニコードサブセット • Font Loading API • CSSのfont-displayプロパティ • Service Workerを用いたキャッシュ戦略 • 29
Slide 30
Slide 30 text
ウェブフォント圧縮形式の歴史 30 WOFF WebOpenFontFormat 2009年に公開された ウェブフォント用の圧縮形式。 zlibを使用して圧縮されている。 TTF TrueTypeFont 一般的なフォントファイル。 自前で圧縮する必要がある。 WOFF2 WebOpenFontFormat2 Brotliという圧縮アルゴリズムを 使用した新しい圧縮形式。 WOFFと比較して約30%軽い。
Slide 31
Slide 31 text
Noto Sans CJK JP Regularのサイズ比較 31 TTF WOFF WOFF2 ファイルサイズ 0MB 5MB 10MB 15MB 20MB 10.7MB 13.7MB 16.4MB
Slide 32
Slide 32 text
ダイナミック サブセット • フォントを動的にサブセットする手法 • メリット - そのページで使われてる文字しかダウンロード されないのでフォントデータを軽くできる • デメリット - ページ読み込み時にJavaScriptを実行するので 環境によっては使えない可能性がある - SPAや動的に表示が変わるUIと相性が悪い 32
Slide 33
Slide 33 text
FOUTを抑止する方法 33
Slide 34
Slide 34 text
FOUT • Flash of Unstyled Text - ウェブフォントのスタイルがあたってない文字が チラ見えしてしまうこと • 対策を怠るとプロダクトの体験が悪くなる • デザイナーとコミュニケーションをとりベストな方 法を探す! 34
Slide 35
Slide 35 text
FOUTの仕組み 35 リクエスト HTMLダウンロード DOM構築 CSSOM構築 ファーストペイント テキスト表示 CSSダウンロード フォントダウンロード この間テキストにデバイスフォントが適用されて見える
Slide 36
Slide 36 text
主な解決策 • Font Loading APIでフォントの読み込みを監視、 読み込み完了するまでローディング画面を 表示するなどの制御を加える • CSSのfont-displayプロパティで表示の タイミングをコントロールする 36
Slide 37
Slide 37 text
Font Loading APIでフォントのロードを監視 37
Slide 38
Slide 38 text
まとめ
Slide 39
Slide 39 text
X ウェブフォントはユーザーに とってメリットがある 39
Slide 40
Slide 40 text
X 最新の技術を使って 使いにくさ、表示の問題を解決できる 仕組みが整いつつある 40
Slide 41
Slide 41 text
X 日本語ウェブフォントを 広めていきましょう! 41
Slide 42
Slide 42 text
Thank you.