Skeleton

コンテンツの読み込み中に表示するスケルトンプレースホルダーコンポーネント。

プレビュー

テキスト

円形

カード風レイアウト

使いどころ

使う場面

  • データ取得中に、あとから出る内容と同じ大きさ・位置の枠を先に見せる
  • width / height で寸法を合わせ、アバターなどの丸いものは circle にする
  • 表やカードの一覧など、レイアウトが決まっている読み込み

使わない場面

  • ボタン操作の結果待ち。Button の loading や Spinner で示す
  • 取得した結果が 0 件のとき。EmptyState を使う
  • 終わりの見えない処理の進み具合の説明。Progress を使う
  • 操作できない理由や失敗の説明。Alert を使う

使い方

<Skeleton width="80%" height="1em" />
<Skeleton circle width={48} height={48} />
<Skeleton width="100%" height={120} />

プロパティ

名前型デフォルト説明
widthstring | numberなし幅(px または %)
heightstring | numberなし高さ(px)
circlebooleanfalse円形にする(border-radius: 50%)

型と必須かどうかはソースの型定義から自動で生成しています。表にない HTML 標準の属性(className や aria-* など)も、ルート要素にそのまま渡せます。

アクセシビリティ

  • aria-hidden="true" が付くため、支援技術には何も伝わらない
  • 読み込み中であることは親要素に aria-busy="true" を付けるか、visually hidden の「読み込み中」を添えて伝える
  • 読み込みが終わったら Skeleton を外し、内容に置き換える

関連するコンポーネント