diff --git a/web/src/lib/components/repo/RefChip.stories.svelte b/web/src/lib/components/repo/RefChip.stories.svelte
new file mode 100644
index 00000000..d2901e11
--- /dev/null
+++ b/web/src/lib/components/repo/RefChip.stories.svelte
@@ -0,0 +1,36 @@
+
+
+
+
diff --git a/web/src/lib/components/repo/RefChip.svelte b/web/src/lib/components/repo/RefChip.svelte
new file mode 100644
index 00000000..9b649ddb
--- /dev/null
+++ b/web/src/lib/components/repo/RefChip.svelte
@@ -0,0 +1,23 @@
+
+
+
diff --git a/web/src/lib/components/repo/RepoCrumbs.stories.svelte b/web/src/lib/components/repo/RepoCrumbs.stories.svelte
new file mode 100644
index 00000000..77121bef
--- /dev/null
+++ b/web/src/lib/components/repo/RepoCrumbs.stories.svelte
@@ -0,0 +1,59 @@
+
+
+
+
+
diff --git a/web/src/lib/components/repo/RepoCrumbs.svelte b/web/src/lib/components/repo/RepoCrumbs.svelte
new file mode 100644
index 00000000..cfb2d3ff
--- /dev/null
+++ b/web/src/lib/components/repo/RepoCrumbs.svelte
@@ -0,0 +1,44 @@
+
+
+
+ {#each crumbs as crumb (crumb.href)}
+ {#if crumb.last}
+
{crumb.name}
+ {:else}
+
{crumb.name}
+
/
+ {/if}
+ {/each}
+
diff --git a/web/src/lib/components/repo/TreeHeader.svelte b/web/src/lib/components/repo/TreeHeader.svelte
index 3241f680..63d9293f 100644
--- a/web/src/lib/components/repo/TreeHeader.svelte
+++ b/web/src/lib/components/repo/TreeHeader.svelte
@@ -1,5 +1,6 @@