{#each topics as topic (topic)}
{topic}
{/each}
diff --git a/web/src/lib/components/repo/RepoIndexPanelSkeleton.svelte b/web/src/lib/components/repo/RepoIndexPanelSkeleton.svelte
new file mode 100644
index 000000000..874a5c6be
--- /dev/null
+++ b/web/src/lib/components/repo/RepoIndexPanelSkeleton.svelte
@@ -0,0 +1,6 @@
+
+
+
diff --git a/web/src/lib/components/repo/RepoIndexSkeleton.svelte b/web/src/lib/components/repo/RepoIndexSkeleton.svelte
new file mode 100644
index 000000000..5c2d34c3b
--- /dev/null
+++ b/web/src/lib/components/repo/RepoIndexSkeleton.svelte
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/web/src/lib/components/repo/RepoIndexView.stories.svelte b/web/src/lib/components/repo/RepoIndexView.stories.svelte
index 608397666..e00b951d0 100644
--- a/web/src/lib/components/repo/RepoIndexView.stories.svelte
+++ b/web/src/lib/components/repo/RepoIndexView.stories.svelte
@@ -1,5 +1,8 @@
+
+
diff --git a/web/src/lib/components/ui/Tabs.stories.svelte b/web/src/lib/components/ui/Tabs.stories.svelte
index e1706085c..02b1b9cc4 100644
--- a/web/src/lib/components/ui/Tabs.stories.svelte
+++ b/web/src/lib/components/ui/Tabs.stories.svelte
@@ -44,6 +44,7 @@
await expect(await canvas.findByText("28")).toBeVisible();
const open = canvas.getByRole("link", { name: "Open" });
await waitFor(() => expect(open.querySelector(".bone-pulse")).toBeVisible());
+ await expect(canvas.getByRole("navigation").getBoundingClientRect().height).toBe(31);
}}
/>
{#key `${page.params.handle}/${page.params.repo}`}
{#snippet skeleton()}
-
+ {#if bare}
+
+ {:else}
+
+ {/if}
{/snippet}
{#snippet failed(_error: unknown)}
diff --git a/web/src/routes/[handle]/[repo]/+page.svelte b/web/src/routes/[handle]/[repo]/+page.svelte
index 7db64d9d9..93171b4e9 100644
--- a/web/src/routes/[handle]/[repo]/+page.svelte
+++ b/web/src/routes/[handle]/[repo]/+page.svelte
@@ -1,7 +1,6 @@