スケルトンスクリーン Skeleton Screen
コンテンツの読み込み中にレイアウトのプレースホルダーを表示する。UXの体感速度を向上させる。
ライブデモ
ソースコード
<div class="demo-skeleton-examples">
<div class="demo-skeleton-card">
<div class="demo-skeleton-image demo-skeleton-shimmer"></div>
<div class="demo-skeleton-card-body">
<div class="demo-skeleton-line demo-skeleton-shimmer" style="width:60%;"></div>
<div class="demo-skeleton-line demo-skeleton-shimmer" style="width:90%;"></div>
<div class="demo-skeleton-line demo-skeleton-shimmer" style="width:40%;"></div>
</div>
</div>
<div class="demo-skeleton-list">
<div class="demo-skeleton-list-item">
<div class="demo-skeleton-avatar demo-skeleton-shimmer"></div>
<div style="flex:1;">
<div class="demo-skeleton-line demo-skeleton-shimmer" style="width:50%;"></div>
<div class="demo-skeleton-line demo-skeleton-shimmer" style="width:80%;height:8px;"></div>
</div>
</div>
<div class="demo-skeleton-list-item">
<div class="demo-skeleton-avatar demo-skeleton-shimmer"></div>
<div style="flex:1;">
<div class="demo-skeleton-line demo-skeleton-shimmer" style="width:70%;"></div>
<div class="demo-skeleton-line demo-skeleton-shimmer" style="width:60%;height:8px;"></div>
</div>
</div>
</div>
</div>.demo-skeleton-examples { display: flex; gap: 24px; flex-wrap: wrap; }
.demo-skeleton-shimmer {
background: linear-gradient(90deg, #e5e7eb 25%, color-mix(in srgb, var(--ui-primary) 6%, #f3f4f6) 50%, #e5e7eb 75%);
background-size: 200% 100%; animation: demo-shimmer 1.5s infinite;
}
@keyframes demo-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.demo-skeleton-card {
width: 200px; border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden;
}
.demo-skeleton-image { height: 100px; }
.demo-skeleton-card-body { padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.demo-skeleton-line { height: 12px; border-radius: 6px; }
.demo-skeleton-list { display: flex; flex-direction: column; gap: 14px; min-width: 220px; }
.demo-skeleton-list-item { display: flex; gap: 12px; align-items: center; }
.demo-skeleton-avatar { width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0; }AIプロンプト
Basic
スケルトンスクリーンをHTML/CSSで作ってください。コンテンツ読み込み中のプレースホルダーです。
Custom
以下の仕様でスケルトンスクリーンを実装してください。 - シマーアニメーション(左から右への光の流れ) - カード型スケルトン(画像 + テキスト行) - リスト型スケルトン(アバター + テキスト) - プライマリカラー: #2563eb(シマーの光部分に微量使用) - 角の丸み - コンテンツの形状に合わせた要素
Advanced
パフォーマンス最適化されたスケルトンを実装してください。 - CSSのみ(JSなし)でアニメーション - will-change, transform ベースでGPU加速 - prefers-reduced-motion でアニメーション停止(静的グレー表示) - aria-busy="true" + aria-label="読み込み中" - コンテンツが読み込まれたらフェードトランジションで切り替え - 複数パターン(記事、プロフィール、テーブル行) - CSS Custom Properties でカスタマイズ可能 - @layer でCSS優先度を管理