Skeleton

コンテンツの読み込み中に表示されるプレースホルダーコンポーネントです。ユーザーにコンテンツの形状を予告し、体感速度を向上させます。

Basic

jui-skeleton の最も基本的な使用例です。

関連コンポーネント

  • Card — カードコンポーネントのローディング状態表示に
  • Table — テーブルのローディング状態表示に
  • Avatar — アバターのローディング状態表示に

ブラウザ対応

このコンポーネントが使用しているブラウザ機能と対応状況です。

機能用途ChromeFirefoxSafariステータス
CSS Animationパルスフェードアニメーション43+16+9+Baseline 2017
prefers-reduced-motionモーション軽減のサポート74+63+10.1+Baseline 2020

💡 いずれの機能も主要ブラウザで広く対応済みです。

Baseline 情報

機能Baseline 達成Widely Available 予定
CSS Animation2017年2020年前半 ✅
prefers-reduced-motion2020年2022年後半 ✅

アクセシビリティ

  • WAI-ARIA:
    • ローディング中であることを示す支援技術向けのセマンティクスとして、親要素などに aria-busy="true" を指定し、ローディング完了後に aria-busy="false" に切り替える実装と組み合わせることを推奨します。
    • スケルトン要素自体はインタラクティブではないため、スクリーンリーダーによる意味的なフォーカスや読み上げから除外するよう調整されます。
  • モーションの軽減:
    • OS 設定でアニメーションの軽減が有効なユーザー(prefers-reduced-motion: reduce)に対しては、パルス(点滅)アニメーションが自動的に停止し、静的なグレーボックスとして表示されます。

CSS カスタムプロパティ

プロパティ名説明既定値
--jui-skeleton-circle-size円形バリアント(circle)指定時の直径サイズ40px
--jui-skeleton-pulse-durationパルスアニメーションの1周期にかかる時間1.8s

プロパティ

コンポーネントが受け付ける属性(Props)の一覧と詳細仕様です。

PropertyAttributeDescriptionTypeDefault
animatedanimatedアニメーションbooleantrue
heightheight高さ(CSS値)string''
lastLineWidthlast-line-width最後の行の幅(複数行モード時)string'75%'
lineslinesテキスト行数(variant=text 時のみ)number1
variantvariant形状"circle" | "rect" | "text"'text'
widthwidth幅(CSS値)string''

シャドウパーツ

CSSから直接スタイリング可能な内部要素(Parts)の一覧です。

PartDescription
"skeleton"ルート要素

Built with StencilJS