diff --git a/frontend/src/lib/recipes/FilterChipRow.svelte b/frontend/src/lib/recipes/FilterChipRow.svelte
index 571e48b..bac6cae 100644
--- a/frontend/src/lib/recipes/FilterChipRow.svelte
+++ b/frontend/src/lib/recipes/FilterChipRow.svelte
@@ -10,7 +10,7 @@
type="button"
aria-pressed={activeFilter === label}
onclick={() => onFilter(label)}
- class="font-sans text-[11px] font-medium px-[14px] py-[5px] rounded-[12px] border cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--green-light)] {activeFilter === label
+ class="font-sans text-[13px] font-medium tracking-[0.04em] px-[14px] py-[5px] rounded-[12px] border cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--green-light)] {activeFilter === label
? 'bg-[var(--green-tint)] text-[var(--green-dark)] border-[var(--green-light)]'
: 'bg-[var(--color-surface)] text-[var(--color-text-muted)] border-[var(--color-border)]'}"
>
diff --git a/frontend/src/lib/recipes/RecipeCard.svelte b/frontend/src/lib/recipes/RecipeCard.svelte
index 97f9d81..8140373 100644
--- a/frontend/src/lib/recipes/RecipeCard.svelte
+++ b/frontend/src/lib/recipes/RecipeCard.svelte
@@ -1,11 +1,5 @@
diff --git a/frontend/src/lib/recipes/types.ts b/frontend/src/lib/recipes/types.ts
new file mode 100644
index 0000000..9d8284b
--- /dev/null
+++ b/frontend/src/lib/recipes/types.ts
@@ -0,0 +1,7 @@
+export type RecipeSummary = {
+ id: string;
+ name: string;
+ cookTimeMin?: number;
+ effort?: string;
+ heroImageUrl?: string;
+};
diff --git a/frontend/src/routes/(app)/recipes/+page.svelte b/frontend/src/routes/(app)/recipes/+page.svelte
index 36632de..3b7a089 100644
--- a/frontend/src/routes/(app)/recipes/+page.svelte
+++ b/frontend/src/routes/(app)/recipes/+page.svelte
@@ -1,14 +1,7 @@