From 5804cd629a4d865626aab5c35b4af800ca17da7e Mon Sep 17 00:00:00 2001 From: Admin Date: Mon, 6 Apr 2026 00:12:38 +0500 Subject: [PATCH] feat(reader): convert settings bottom sheet to full-screen overlay MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces the bottom drawer + backdrop with a fixed full-screen overlay matching the voice/chapter picker style in ListeningMode — chevron header, tab bar with brand-color active state, scrollable content. Escape closes it. Co-Authored-By: Claude Sonnet 4.6 --- .../books/[slug]/chapters/[n]/+page.svelte | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/ui/src/routes/books/[slug]/chapters/[n]/+page.svelte b/ui/src/routes/books/[slug]/chapters/[n]/+page.svelte index 0cebd2f..d5eb3c4 100644 --- a/ui/src/routes/books/[slug]/chapters/[n]/+page.svelte +++ b/ui/src/routes/books/[slug]/chapters/[n]/+page.svelte @@ -139,10 +139,14 @@ } } - // Keyboard nav for paginated mode + // Keyboard nav for paginated mode + Escape to close settings overlay $effect(() => { if (!browser) return; function onKey(e: KeyboardEvent) { + if (e.key === 'Escape' && settingsPanelOpen) { + settingsPanelOpen = false; + return; + } if (layout.readMode !== 'paginated') return; if (e.key === 'ArrowRight' || e.key === 'PageDown' || e.key === ' ') { e.preventDefault(); @@ -669,28 +673,37 @@ {/if} - + {#if settingsCtx} {#if settingsPanelOpen} - - -
(settingsPanelOpen = false)}>
- -
- - -
-
+ +
+ +
+ + Reader Settings
-
+
-
+
{#if settingsTab === 'reading'}