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 000000000..d2901e117
--- /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 000000000..9b649ddb4
--- /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 000000000..77121befb
--- /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 000000000..cfb2d3ff2
--- /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 3241f680f..63d9293fc 100644
--- a/web/src/lib/components/repo/TreeHeader.svelte
+++ b/web/src/lib/components/repo/TreeHeader.svelte
@@ -1,5 +1,6 @@