TECH BOX

Technology blog from Web Engineer

この記事は最終更新日から5年以上経過しているため正確ではないかもしれません

CSSでスケルトンスクリーンを表現する

ここ数年、ローディングにスケルトンスクリーンと呼ばれる手法が使われることが多くなってきました。
どんな感じのものかというと下記のような感じです。

See the Pen Skeleton Screen by Nobuyuki Kondo (@artprojectteam) on CodePen.dark

FacebookやYoutubeなどで見かけたことがあると思います。
今回はこのスケルトンスクリーンのメリットと作り方を紹介します。

スケルトンスクリーンを導入するメリット

ローディングはスピナー(ぐるぐる回ってるやつ)やテキストエフェクト、プログレスバーが主流です。
これらは汎用性が高いのでいたるところで使えます。

スケルトンスクリーンの場合は最終的に表示するUIをベースにするため、ユーザーにとってはそこにどんな情報が入るのかが推測しやすくなります。

See the Pen spinner or skeleton by Nobuyuki Kondo (@artprojectteam) on CodePen.dark

上記サンプルのようにスピナーだと何が表示されるか分かりづらいですが、スケルトンスクリーンだと画像、タイトル、テキストのカードが入るというのがわかり、多少コンテンツの表示を待っている感が薄らぎます

スケルトンスクリーンの作り方

  • 矩形or円でレイアウトを作る
  • 疑似要素であるbeforeかafterで薄い白のグラデーション背景を作る(ブラウザによっては表示されないので注意)
  • 疑似要素をアニメーションする際に親要素からはみ出る部分を見せないために、親要素にはoverflow:hiddenをセットする
  • キーフレームアニメーションで永遠に動かす

See the Pen one skeleton screen by Nobuyuki Kondo (@artprojectteam) on CodePen.dark

まとめ

CSS自体はそんなに難しくないのでアニメーションに関する部分は汎用的に作れますが、レイアウトに関しては場所場所で違うので、アニメーション部分のみ汎用的に使えるようにしておくと良いです。