A skeleton screen draws gray shapes where content will appear. Framework7 572,986 bundles the MIT-licensed Skeleton Elements 159 library (github.com/nolimits4web/skeleton-elements (https://github.com/nolimits4web/skeleton-elements 159 ), 4.0.1 here, by Framework7's author): skeleton-block is a gray box, skeleton-text turns real text into gray bars, and skeleton-effect-wave, -fade or -pulse animates them. The catalog shows four placeholder cards (first screen of the catalog figure in Catalog Page) until a 1.5 s timer, standing in for the network, clears loading:
const skeletons = () => [1, 2, 3, 4].map(() => $h`
<div class="card book-card skeleton-effect-wave">
<div class="cover skeleton-block"></div>
<div class="card-content card-content-padding skeleton-text">
<div class="book-title">Book title here</div>
<div class="book-author">Author name</div>
<div class="book-meta">00.00 0.0</div>
</div>
</div>`);
$onMounted(() => setTimeout(() => { loading = false; $update(); }, 1500));Reuse the real card's classes for the placeholder, so swapping it for the real card causes no layout shift.