feat(reader): webtoon reading mode + brightness/contrast/night filters
Phase 4 of the reader redesign (foliate-js ea268df): - Webtoon mode for comics: continuous vertical scroll of all pages (900px centered column on wide screens), lazy-loaded with a 150% IntersectionObserver margin, far pages unloaded to bound memory with stable aspect-ratio placeholders so the scrollbar never jumps. Chosen per book (Paged | Webtoon segmented control in Settings → Layout & Display; stored in localStorage per media item since a webtoon title and a paged manga volume want different flows). Toggling reloads the reader — the renderer is chosen at open time — and progress restores from the saved page. Relocate events flow through the same pipeline, so the slider, progress saving, back stack, tap zones, and edge zones all work unchanged. Zoom/fit/ magnifier/spread controls hide in webtoon (natural-width scroll). - Display filters for fixed-layout: brightness (30-130%) and contrast (70-130%) sliders with live preview, plus Night Mode (invert) — also a quick row in the ⋯ tools menu. One --fx-filter CSS var drives everything: ::part(filter) on foliate-view iframes (forwarded via the new exportparts attribute) and the webtoon page images alike. Persisted as fx_brightness/fx_contrast/fx_invert (types + defaults both sides); Restore Defaults resets them.
This commit is contained in:
@@ -1029,6 +1029,12 @@
|
||||
background-color: color-mix(in srgb, currentColor 6%, transparent);
|
||||
}
|
||||
|
||||
/* Fixed-layout display filters: one var drives the iframe ::part(filter)
|
||||
(comics/PDFs via foliate-view exportparts) and the webtoon page images. */
|
||||
#reader-view::part(filter) {
|
||||
filter: var(--fx-filter, none);
|
||||
}
|
||||
|
||||
/* Page thumbnails grid (contents drawer, fixed-layout) */
|
||||
.reader-thumb-grid {
|
||||
display: grid;
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user