diff --git a/apps/web/src/reader/readerRuntime.test.ts b/apps/web/src/reader/readerRuntime.test.ts index 82d2896..ee9fb8e 100644 --- a/apps/web/src/reader/readerRuntime.test.ts +++ b/apps/web/src/reader/readerRuntime.test.ts @@ -222,6 +222,15 @@ describe("reader runtime helpers", () => { expect(verticalBranch).not.toContain('hidden={!imageSizes[item.page]}'); }); + it("keeps unloaded CBZ vertical pages visually covered by a page-sized fallback", () => { + const styles = readFileSync(new URL("../styles/app.css", import.meta.url), "utf8"); + + expect(styles).toContain(".comic-page-frame-vertical > img,\n.comic-page-frame-vertical > .reader-fallback"); + expect(styles).toContain(".comic-page-frame-vertical > .reader-fallback {\n width: 100%;"); + expect(styles).toContain("min-height: inherit"); + expect(styles).toContain("background: #f7f0df"); + }); + it("starts vertical reader overflow from the top edge instead of centered content", () => { const styles = readFileSync(new URL("../styles/app.css", import.meta.url), "utf8"); const verticalStage = styles.match(/\.reader-mode-vertical \.reader-stage\s*\{[^}]+\}/)?.[0] ?? ""; diff --git a/apps/web/src/styles/app.css b/apps/web/src/styles/app.css index f22ba0e..7e28046 100644 --- a/apps/web/src/styles/app.css +++ b/apps/web/src/styles/app.css @@ -1114,6 +1114,21 @@ main.app-main-reader .reader-page { padding: 0 12px; } +.comic-page-frame-vertical > img, +.comic-page-frame-vertical > .reader-fallback { + grid-area: 1 / 1; +} + +.comic-page-frame-vertical > .reader-fallback { + width: 100%; + min-height: inherit; + box-sizing: border-box; + border: 1px solid var(--line); + border-radius: var(--radius); + background: #f7f0df; + color: #17110d; +} + .pdf-page-frame canvas, .cbz-reader img { display: block;