feat(books): add ambient book cover tinting to book detail view

Extract dominant color from book covers to apply ambient background tinting in BookDetailView, add cover tinting toggle to display settings, and test cover tint extraction.
This commit is contained in:
neon
2026-08-07 00:44:52 +00:00
parent a1a1ce7db3
commit 4309b06169
28 changed files with 799 additions and 116 deletions
@@ -25,6 +25,9 @@ export type BookShadowStrength = (typeof BOOK_SHADOW_STRENGTHS)[number];
export const BOOK_COVER_DISPLAY_MODES = ["blurred-fit", "fill-crop", "natural-bottom"] as const;
export type BookCoverDisplayMode = (typeof BOOK_COVER_DISPLAY_MODES)[number];
export const BOOK_DETAIL_COVER_TINTS = ["off", "single", "duotone"] as const;
export type BookDetailCoverTint = (typeof BOOK_DETAIL_COVER_TINTS)[number];
export const SERIES_CARD_COVER_MODES = ["stack", "mosaic", "first-volume", "latest-volume", "first-unread"] as const;
export type SeriesCardCoverMode = (typeof SERIES_CARD_COVER_MODES)[number];
@@ -53,6 +56,7 @@ export interface DisplayPreferences {
showSpineOnComics: boolean;
bookShadowStrength: BookShadowStrength;
bookCoverDisplayMode: BookCoverDisplayMode;
bookDetailCoverTint: BookDetailCoverTint;
seriesCardCoverMode: SeriesCardCoverMode;
gridCardPrimaryLabel: GridCardLabelField;
gridCardSecondaryLabel: GridCardLabelField;