From 9f66f114ffa3046e5a2ca624f28f3865120b811e Mon Sep 17 00:00:00 2001 From: vegard Date: Wed, 18 Mar 2026 05:39:19 +0000 Subject: [PATCH] =?UTF-8?q?Fullf=C3=B8rer=20oppgave=2017.1:=20Responsivt?= =?UTF-8?q?=20studio-layout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lydstudioet var kun desktop-optimalisert med fast sidebar (w-72). Nå responsivt med to moduser: - Desktop (lg+): Sidebar med verktøypanel til høyre, som før - Mobil/tablet (< lg): Waveform fyller full bredde, verktøypanel tilgjengelig via flytende knapp som åpner bottom sheet (modal). Operation-badge på knappen viser antall aktive operasjoner. Header: Kompaktere padding på mobil, tittel truncates, audio-info skjules på små skjermer. min-w-0 på hovedområdet hindrer overflow. Co-Authored-By: Claude Opus 4.6 (1M context) --- frontend/src/routes/studio/[id]/+page.svelte | 106 +++++++++++++++++-- tasks.md | 3 +- 2 files changed, 98 insertions(+), 11 deletions(-) diff --git a/frontend/src/routes/studio/[id]/+page.svelte b/frontend/src/routes/studio/[id]/+page.svelte index 6ddf832..8b111c4 100644 --- a/frontend/src/routes/studio/[id]/+page.svelte +++ b/frontend/src/routes/studio/[id]/+page.svelte @@ -46,6 +46,9 @@ let renderJobId: string | null = $state(null); let resultNodeId: string | null = $state(null); + // Mobile tool panel sheet + let showToolSheet = $state(false); + // Session persistence let sessionNodeId: string | null = $state(null); let saving = $state(false); @@ -287,18 +290,18 @@
-
-
- +
+
+ -

+

{mediaNode?.title ?? 'Lydstudio'}

{#if audioInfo} - + {/if} @@ -329,9 +332,9 @@

{:else} -
+
-
+
- -
+ + + + +
+ + + + + {#if showToolSheet} + +
{ showToolSheet = false; }} + onkeydown={(e) => { if (e.key === 'Escape') showToolSheet = false; }} + >
+ + +
+ +
+
+
+ + +
+ + + + {#if versions.length > 0} +
+

Versjoner

+ +
+ {/if} +
+
+ {/if} +
{/if}
diff --git a/tasks.md b/tasks.md index 51c1724..d2f5f67 100644 --- a/tasks.md +++ b/tasks.md @@ -189,8 +189,7 @@ Ref: `docs/features/lydmixer.md` Ref: Kodegjennomgang av `b4c4bb8` (Lydstudio: lydredigering via FFmpeg). -- [~] 17.1 Responsivt studio-layout: `/studio/[id]` sidebar stacker under waveform på mobil. Verktøypanel som modal/sheet på små skjermer. Ref: feedback om at alt UI skal være responsivt uten unntak. - > Påbegynt: 2026-03-18T05:36 +- [x] 17.1 Responsivt studio-layout: `/studio/[id]` sidebar stacker under waveform på mobil. Verktøypanel som modal/sheet på små skjermer. Ref: feedback om at alt UI skal være responsivt uten unntak. - [ ] 17.2 FFmpeg-parametervalidering: valider at alle numeriske verdier (threshold, gain, ratio, frekvenser) er innenfor sikre grenser i `audio.rs` før de interpoleres i filterstrenger. Avvis ugyldige verdier med feilmelding. - [ ] 17.3 Fade/silence-logikk: fiks negativ fade-out start (clamp til 0), og adaptiv silence-margin (margin skal ikke overstige halve regionens varighet). Gi feilmelding ved ugyldige fade-varigheter. - [ ] 17.4 Frontend input-begrensninger: legg til `min`/`max` på alle tallfelter i OperationPanel (silenceThreshold, fadeMs, normTarget, compRatio). Hindre ugyldig input.