From 25359f12b82afa7abddbf2bd06b60fe137f672b4 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 12 Mar 2026 16:43:11 -0400 Subject: [PATCH] Badges: soft feathered glow around badge wrapper in dark mode --- documentation/TODO__Agents.md | 11 +++++++++++ .../[badge_id]/ae_comp__badge_obj_view_v2.svelte | 12 +++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/documentation/TODO__Agents.md b/documentation/TODO__Agents.md index bea8af95..254b51a2 100644 --- a/documentation/TODO__Agents.md +++ b/documentation/TODO__Agents.md @@ -14,6 +14,17 @@ Both files have grown organically and are messy. Refactor goals: - Keep `ae_stores.ts` and `ae_events_stores.ts` as barrel re-exports for backwards compatibility Related: `src/lib/stores/store_versions.ts` is the new home for version constants. +### [Backend] Join event_location_id onto event_presenter API view +The `event_presenter` object currently has `event_session_id` but not `event_location_id`. +When navigating from the Presenter View to the Launcher, the frontend has to do a secondary +session lookup to discover the location (magic redirect in launcher base `+page.svelte`). +Joining `event_session.event_location_id` into the presenter view/response would let the +frontend pass the location directly in the Launcher URL without the extra lookup. +- Backend: add `event_location_id` (and `event_location_id_random`) to the `event_presenter` + view or API response +- Frontend: add `event_location_id` to `ae_EventPresenter` type and `properties_to_save`; + pass as `events__launcher_id` in `presenter_page_menu.svelte` + ### [Launcher] Active features (identified 2026-03-06) - [x] **Font size cycler (Launcher sidebar):** Font size cycler and light/dark toggle added to new `menu_launcher_controls.svelte` component; wired into `launcher_menu.svelte`. Visibility toggles (All Files / All Sessions) moved to same component and restyled to `preset-tonal-tertiary`. (2026-03-11) diff --git a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view_v2.svelte b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view_v2.svelte index 76c3ca19..d32f9fb8 100644 --- a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view_v2.svelte +++ b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view_v2.svelte @@ -989,7 +989,17 @@ * Suppressed on print — no shadow on the physical output. */ :global(.dark) .event_badge_wrapper { - box-shadow: 0 0 0 6px white, 0 8px 32px rgba(0, 0, 0, 0.75); + /* + * Layered glow: crisp edge ring → soft mid glow → wide feathered fade → depth shadow. + * Each layer has more blur and less opacity, handing off to the next so the + * transition reads as a continuous fade rather than hard-edged rings. + */ + box-shadow: + 0 0 0 2px rgba(255, 255, 255, 0.95), /* crisp white edge — matches badge stock */ + 0 0 12px 4px rgba(255, 255, 255, 0.55), /* inner soft glow */ + 0 0 36px 12px rgba(255, 255, 255, 0.2), /* mid feather */ + 0 0 80px 24px rgba(255, 255, 255, 0.07), /* wide outer fade → transparent */ + 0 12px 48px rgba(0, 0, 0, 0.55); /* drop shadow for depth */ } @media print {