From ac17417f3cd477107500cf434df7ee7359bbdf99 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 2 Jun 2026 16:38:30 -0400 Subject: [PATCH] fix(badges): fix search-result layout shift + unify empty/loading states Scrollbar shift: - Add [scrollbar-gutter:stable] to #ae_main_content in events layout so a scrollbar appearing on first results load no longer reflows the centered search form (was shifting ~8px left on Linux) Empty/loading state consistency: - Move search_status prop into ae_comp__badge_obj_li so it can swap its own empty state: spinner + "Searching..." while a search is in progress, UserSearch icon + prompt text otherwise - Unify p-16 / size-3em / mb-2 / text-xl across all three states (initial load, searching, no results) so height never jumps between transitions - Pass search_status from +page.svelte to the component Transitions: - transition:fade on initial-load spinner div - transition:slide on Create/Upload badge button row (appears with edit mode) Co-Authored-By: Claude Sonnet 4.6 --- src/routes/events/+layout.svelte | 2 +- .../[event_id]/(badges)/badges/+page.svelte | 13 +++++++++---- .../(badges)/badges/ae_comp__badge_obj_li.svelte | 16 +++++++++++----- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/routes/events/+layout.svelte b/src/routes/events/+layout.svelte index 7858cc77..629bb9e0 100644 --- a/src/routes/events/+layout.svelte +++ b/src/routes/events/+layout.svelte @@ -210,7 +210,7 @@ function clear_sess() { container m-auto flex h-full min-h-full w-full max-w-7xl min-w-full flex-col gap-1 - overflow-auto + overflow-auto [scrollbar-gutter:stable] bg-gray-50 text-gray-800 dark:bg-gray-900 dark:text-gray-200 diff --git a/src/routes/events/[event_id]/(badges)/badges/+page.svelte b/src/routes/events/[event_id]/(badges)/badges/+page.svelte index d2beb3a2..e71d61d6 100644 --- a/src/routes/events/[event_id]/(badges)/badges/+page.svelte +++ b/src/routes/events/[event_id]/(badges)/badges/+page.svelte @@ -1,5 +1,6 @@