fix(album): contain Artist Biography modal scroll within frame (#734)

* fix(album): contain Artist Biography modal scroll within frame

The modal was rendered inside the album page tree, where an ancestor
broke `position: fixed` so the overlay scrolled with the page instead
of pinning to the viewport. Long bios also pushed the modal past the
viewport entirely.

- Render `BioModal` via `createPortal(document.body)` so no ancestor's
  transform/filter/backdrop-filter can break fixed positioning.
- New `.modal-content.bio-modal` variant: flex column, `overflow:
  hidden`. Title + close button stay pinned, only `.bio-modal-body`
  scrolls. The existing `max-height: 80vh` on `.modal-content` now
  reliably caps the modal to the visible viewport.

Reported by zunoz on Discord.

* docs(changelog): note Artist Biography modal scroll fix (#734)
This commit is contained in:
Frank Stellmacher
2026-05-16 13:22:59 +02:00
committed by GitHub
parent 7f9b5bd57d
commit 2233e8fb91
3 changed files with 30 additions and 4 deletions
+15
View File
@@ -34,6 +34,21 @@
box-shadow: var(--shadow-lg);
}
/* Bio modal: keep title + close visible, scroll only the bio body. */
.modal-content.bio-modal {
display: flex;
flex-direction: column;
overflow: hidden;
padding-right: var(--space-6);
}
.bio-modal-body {
flex: 1 1 auto;
min-height: 0;
overflow-y: auto;
padding-right: var(--space-2);
}
/* Modal CSV Import - siempre centrado */
.modal-overlay--csv {
position: fixed !important;