diff --git a/frontend/src/lib/shopping/ShoppingChecklist.svelte b/frontend/src/lib/shopping/ShoppingChecklist.svelte
new file mode 100644
index 0000000..d6a277d
--- /dev/null
+++ b/frontend/src/lib/shopping/ShoppingChecklist.svelte
@@ -0,0 +1,92 @@
+
+
+{#if uncheckedItems.length > 0}
+
+ {#each uncheckedItems as item (item.id)}
+
+ {/each}
+
+{:else if totalItems > 0}
+
+ Alles erledigt!
+
+{/if}
+
+
+
+{#if showFilteredStaples && filteredStaplesCount > 0}
+
+{/if}
+
+{#if checkedItems.length > 0}
+
+
+ Abgehakt ({checkedCount})
+
+
+ {#each checkedItems as item (item.id)}
+
+ {/each}
+
+
+{/if}
diff --git a/frontend/src/routes/(app)/shopping/+page.svelte b/frontend/src/routes/(app)/shopping/+page.svelte
index e0ea640..f71c895 100644
--- a/frontend/src/routes/(app)/shopping/+page.svelte
+++ b/frontend/src/routes/(app)/shopping/+page.svelte
@@ -1,7 +1,6 @@