diff --git a/web/src/lib/components/repo/DiffFileHeader.svelte b/web/src/lib/components/repo/DiffFileHeader.svelte
index 4e5b9b0f1..44f7a83ee 100644
--- a/web/src/lib/components/repo/DiffFileHeader.svelte
+++ b/web/src/lib/components/repo/DiffFileHeader.svelte
@@ -1,12 +1,11 @@
-
- {#snippet titleContent()}
- {#if empty}
-
- {:else if open}
-
- {:else}
-
- {/if}
+
+ {#snippet title()}
{#if renamed}
@@ -63,31 +47,18 @@
{/if}
{/snippet}
- {#if empty || !onToggle}
-
- {@render titleContent()}
-
- {:else}
-
- {/if}
-
- {#if blobUrl || headerActions}
-
- {#if blobUrl}
-
- {/if}
- {@render headerActions?.(file.key)}
-
- {/if}
-
+ {#snippet actions()}
+ {#if blobUrl}
+
+ {/if}
+ {@render headerActions?.(file.key)}
+ {/snippet}
+
diff --git a/web/src/lib/components/repo/FileCardHeader.stories.svelte b/web/src/lib/components/repo/FileCardHeader.stories.svelte
new file mode 100644
index 000000000..f5b385b81
--- /dev/null
+++ b/web/src/lib/components/repo/FileCardHeader.stories.svelte
@@ -0,0 +1,48 @@
+
+
+{#snippet openTitle()}
+
src/index.ts
+{/snippet}
+
+{#snippet sampleActions()}
+
+{/snippet}
+
+
+
+
+
+
diff --git a/web/src/lib/components/repo/FileCardHeader.svelte b/web/src/lib/components/repo/FileCardHeader.svelte
new file mode 100644
index 000000000..d325177ad
--- /dev/null
+++ b/web/src/lib/components/repo/FileCardHeader.svelte
@@ -0,0 +1,67 @@
+
+
+
+ {#if isInteractive}
+
+ {:else}
+
+ {#if spacer}
+
+ {/if}
+ {@render title()}
+
+ {/if}
+
+ {#if actions}
+
+ {@render actions()}
+
+ {/if}
+