diff --git a/frontend/src/views/ExploreView.vue b/frontend/src/views/ExploreView.vue index 4b60970..13d3057 100644 --- a/frontend/src/views/ExploreView.vue +++ b/frontend/src/views/ExploreView.vue @@ -235,11 +235,17 @@ onUnmounted(() => document.removeEventListener('keydown', onKeyDown)) .fc-ex__crumb:focus-visible { outline: 2px solid rgb(var(--v-theme-accent)); outline-offset: 1px; } .fc-ex__reseed { margin-left: auto; } -/* The three panes fill the remaining height; each scrolls on its own. */ +/* The three panes fill the remaining height; each scrolls on its own. + grid-template-rows: minmax(0, 1fr) BOUNDS the single row to the container + height — without it the row is `auto` and a tall pane (Provenance + Tags + + a long Suggestions list) grows the row past the fixed-height view, spilling + over and scrolling the whole page (the weird top gap). Bounded, the panes' + own overflow-y:auto kicks in and they scroll internally instead. */ .fc-ex__panes { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: 340px minmax(0, 1fr) var(--fc-side-w, 320px); + grid-template-rows: minmax(0, 1fr); gap: 1px; background: rgb(var(--v-theme-surface-light)); } @@ -303,6 +309,8 @@ onUnmounted(() => document.removeEventListener('keydown', onKeyDown)) .fc-ex { height: auto; } .fc-ex__panes { grid-template-columns: 1fr; + /* Stacked: let each pane take its natural height and the page scroll. */ + grid-template-rows: none; background: transparent; } .fc-ex__viewer { order: -1; min-height: 60vh; }