この技術でできること
- UIの設計判断がパフォーマンスに与える影響を理解できる
- Core Web Vitalsの指標を知り、デザインレビューで速度を考慮できる
- 体感速度を上げる実装パターン(スケルトン、楽観的UI)をデザインに組み込める
例: 画像がたくさんあるページをデザインした際、「ファーストビューの画像だけ先に見せて、下部はスクロールに合わせて読み込む(Lazy Loading)」という指示をデザインデータに含めることができる。
なぜ難しいか
パフォーマンスは目に見えにくい品質であり、後回しにされやすい。
開発者のハイスペックな端末や高速なWi-Fi環境では、パフォーマンスの遅延は気づきにくい。しかし、ユーザーの劣悪な通信環境では1秒の処理が3秒になり、直帰率を跳ね上げる。デザインが完成した後に「重いからなんとかして」と言っても、根本的な構造や通信設計から直さなければならないことが多い。
実装でUXに効くポイント
1. 画像とフォントの設計(LCP/CLSの改善)
Core Web Vitalsでの評価(SEOへの直結)に最も響く部分。これらの指標が悪化するとユーザーの直帰率に直結する。
- 画像は適切なサイズとアスペクト比を明示する(レイアウトのガタつき=CLSを防ぐ)。
- Webフォントは必要なウェイトだけを読み込み、テキストを先に表示させて後からフォントを当てる設定にする。
2. スケルトンスクリーンによる「体感」の向上
何も表示されない白い画面(ロード待ち)はユーザーに「止まっている」と感じさせる。骨組みの表示(スケルトン)を挟むことで、通信環境が同じでも体感待ち時間を短くできる。
3. 楽観的UI(Optimistic UI)
ユーザーが「いいね」や「保存」を押したとき、サーバーからの「成功」の返事を待たずに、画面上では成功したことにして反応を返す。もし失敗したら裏側でエラー状態に戻す。これにより、手触りの良い超高速な体験が実現する。
やりすぎ / 足りなすぎ(トレードオフ)
状況例: ヒーロー領域に巨大な動画を埋め込む
Before(悪い例): 「リッチな体験」を目指して、トップアクセス時に10MBの動画を自動再生する。 結果: ファーストビューのLCPが5秒を超え、モバイルユーザーの半分がそのまま離脱する。
After(現実的な落とし所): 動画ではなく最適化された軽量なアニメーション(WebP等)にするか、初回数秒だけ低画質で表示してループさせる。または、ユーザーによる再生アクションを必要とする静止画カバーを置く。
代替手段への配慮: リッチな表現を削る代わりに、マイクロインタラクションなどでスクロール時の心地よさを担保する。
運用で崩れるポイントと衝突(デザイナー × エンジニア)
❌ 「とりあえず全部最高画質で書き出しておきます」
デザイナーの視点: せっかく作ったクリエイティブだから、Retinaディスプレイでも一番きれいに見える状態で届けたい。(品質=ビジュアルの美しさ) エンジニアの視点: それをそのまま実装したらページの総容量が10MBを超える。読み込みが遅すぎてクレームになる。(品質=体感速度と軽快さ)
なぜ衝突するか(品質の定義差): デザイナーは「表示された状態の良さ」を品質とし、エンジニアは「表示されるまでの時間の短さ」を品質としている。
どう合意するか:
- デバイスごとの画像サイズの出し分け(srcset)を実装する前提でアセットを渡す。
- 「ここだけは高精細にしたい」という意図を明確に伝え、優先度の低い画像は妥協する。
❌ リッチな動き vs デバイス負荷
デザイナーの視点: アプリのように要素がふわっと広がってから表示させたい。CSSのwidthやheightを動かして表現する。(品質=リッチな動き) エンジニアの視点: width/heightの変更はブラウザ全体に「再描画(Reflow:画面全体の再計算が走るため非常に重い処理)」を発生させ、スマホを激しく発熱させ、スクロールをガクガクにする。(品質=パフォーマンスと60fpsの維持)
なぜ衝突するか(品質の定義差): ツールのプレビュー動画と、ブラウザの描画エンジンの仕組み(重さの違い)を共有できていない。
どう合意するか:
- ブラウザに負荷をかけないプロパティ(transformとopacity)だけで表現できないか再考する。
- 動きの「心地よさ」と引き換えに払うパフォーマンスの犠牲に合意する。
実践チェックリスト
最低ライン(Must)
[ ] ローディング時の画面(スケルトンやスピナー)が定義されている [ ] ファーストビューに置く重いリソース(画像・動画)が最小限に抑えられている [ ] 画像のアスペクト比が決まっている(実装でガタつかないように)
理想ライン(Better)
[ ] 操作に対する「楽観的UI」の成功状態と失敗時のロールバック状態がデザインされている [ ] エンジニアとアニメーションの重さ(Reflowが発生するか)について会話できている [ ] Core Web Vitalsの要件を初期段階で意識している
関連技術
前提となる技術
セットで使う技術
- アクセシビリティ実装 — 画像の軽量化と代替テキストのバランス
次に学ぶ技術
- セキュリティと認証 — 最速を目指す一方で守るべき安全
まとめ
- この技術の本質: トラフィック・計算量・データ取得をコントロールし、見えない品質を上げる
- UXへの影響: 表示が遅いプロダクトは、「使いにくい」以前に「使われない」。速度は最大のUI
- 実務での判断軸: 「そのリッチな表現は、0.5秒の表示の遅れを払ってでもユーザーに届けるべき価値か?」
- 次に学ぶべき技術: セキュリティと認証(速さを優先しすぎると、安全性や認証体験とのトレードオフが起きるため)
目的別のおすすめ: