wordeck/apps/web/src/lib/components/marketplace/SkeletonGrid.svelte
Till JS 41ecec16c3 fix(web): SkeletonGrid padding an DeckListGrid angleichen — kein Layout-Sprung mehr
padding-block: 0 1rem → 1.25rem 2.5rem (identisch zu DeckListGrid/.deck-row),
plus ::after-Spacer ergänzt. Verhindert den Höhensprung beim Übergang
Skeleton → echte Decks auf /decks und /explore.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 14:45:31 +02:00

54 lines
983 B
Svelte

<script lang="ts">
interface Props {
count?: number;
}
const { count = 6 }: Props = $props();
</script>
<ul class="skeleton-row" aria-busy="true" aria-label="Lade Decks">
{#each Array.from({ length: count }) as _, i (i)}
<li class="skeleton-item animate-pulse">
<div class="skeleton-card"></div>
</li>
{/each}
</ul>
<style>
.skeleton-row {
list-style: none;
margin: 0;
padding-block: 1.25rem 2.5rem;
display: flex;
flex-direction: row;
gap: 1rem;
overflow: hidden;
width: 100dvw;
margin-left: calc(50% - 50dvw);
}
.skeleton-row::before {
content: '';
flex-shrink: 0;
width: max(1rem, calc((100dvw - 72rem) / 2 + 1rem));
}
.skeleton-row::after {
content: '';
flex-shrink: 0;
width: max(1rem, calc((100dvw - 72rem) / 2 + 1rem));
}
.skeleton-item {
flex: 0 0 auto;
width: 16rem;
}
.skeleton-card {
width: 100%;
aspect-ratio: 5 / 7;
border-radius: 0.875rem;
background: hsl(var(--color-border) / 0.5);
}
</style>