Skip to content

feat: Add dark mode "ON + Dividers" invert option - #160

Open
kinland wants to merge 5 commits into
franssjz:masterfrom
kinland:feature/dark-image-invert
Open

kinland wants to merge 5 commits into
franssjz:masterfrom
kinland:feature/dark-image-invert

Conversation

@kinland

@kinland kinland commented Jul 29, 2026

Copy link
Copy Markdown

Summary

What is the goal of this PR?

Broadly speaking, the images I encounter reading ebooks tend to be either be full-page art of some kind or separators (i.e. glorified ----). Full-page art is fine, but separators look pretty bad with dark mode on, since they tend to have a white background rather than a transparency (or at least, that's how they render in CrossPoint). So when the intent was to have an ornate/calligraphic separator, you instead see a white rectangle with a barely-visible dark separator (since they're generally thin lines).

This PR adds a third option to the Dark Mode toggle for "ON + Separators" that inverts non-fullscreen ebook images.

What changes are included?

Dark mode now has 3 states: OFF, ON + Dividers, or ON. The new middle option detects images that are wide-but-short AND are repeated more than once in a book, and inverts the image

Additional Context

OFF ON ON + Separators

AI Usage

While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? < YES >

kinland added 5 commits July 28, 2026 17:15
Extend Dark Mode from a toggle to OFF / ON + Images / ON, greyscale-inverting ebook images so white backgrounds no longer appear as boxes.
Solidify inverted AA greys to white and skip the image greyscale pass so flourishes and line art keep continuity without a noisy e-ink halo.
Keep ON + Images on the EPUB DirectPixelWriter path and stop inverting UI BMPs such as covers, sleep images, and stats thumbnails.
Limit ON + Images invert to short landscape assets that are very wide or reused, so general artwork stays uninverted.
(i.e. don't redefine "ON", compose via STR_STATE_ON + " + " STR_STATE_ON_DIVIDERS)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant