From cf31e79fb0203095d71747be119e58bce9a74ac1 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Fri, 17 Apr 2026 18:40:38 +0200 Subject: [PATCH] =?UTF-8?q?feat(loader):=20SearchLoader=20mit=20wackelnder?= =?UTF-8?q?=20Pfanne=20und=20rotierenden=20Spr=C3=BCchen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neue Komponente src/lib/components/SearchLoader.svelte ersetzt die stumpfen "Suche läuft …"-Zeilen an allen vier Stellen: - Startseite (scope=local und scope=web) - Header-Dropdown (size=sm, beide Scopes) Was passiert: - Ein Pfannen-Emoji (🍳 → 🥘 → 🍲 → 🍜 → 🥣) wechselt alle 900 ms - Wobble-Animation kippt es im 1.4-s-Takt hin und her - Drei Dampf-Punkte steigen zeitversetzt auf und fadeen - Caption unten rotiert alle 1.8 s durch vier passende Sprüche (lokal: "Stöbere im Rezeptbuch …", web: "Schnuppere in fremden Küchen …" etc.) Zwei Size-Varianten: md (Homepage) und sm (Header-Dropdown). --- src/lib/components/SearchLoader.svelte | 180 +++++++++++++++++++++++++ src/routes/+layout.svelte | 5 +- src/routes/+page.svelte | 5 +- 3 files changed, 186 insertions(+), 4 deletions(-) create mode 100644 src/lib/components/SearchLoader.svelte diff --git a/src/lib/components/SearchLoader.svelte b/src/lib/components/SearchLoader.svelte new file mode 100644 index 0000000..c3a03b1 --- /dev/null +++ b/src/lib/components/SearchLoader.svelte @@ -0,0 +1,180 @@ + + +
{messages[msgIdx]}
+Suche läuft …
+Keine lokalen Rezepte – aus dem Internet:
{#if navWebSearching} -Suche im Internet läuft …
+Internet-Suche zurzeit nicht möglich.
{:else if navWebHits.length > 0} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 8f6503c..71d8553 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -3,6 +3,7 @@ import type { SearchHit } from '$lib/server/recipes/search-local'; import type { WebHit } from '$lib/server/search/searxng'; import { randomQuote } from '$lib/quotes'; + import SearchLoader from '$lib/components/SearchLoader.svelte'; let query = $state(''); let quote = $state(''); @@ -102,7 +103,7 @@ {#if activeSearch}Suche läuft …
+Keine lokalen Rezepte für „{searchedFor}" — Ergebnisse aus dem Internet:
{#if webSearching} -Suche im Internet läuft …
+Internet-Suche zurzeit nicht möglich: {webError}
{:else if webHits.length > 0}