Kavita Release v0.8.3
Kavita Release v0.8.3
It's finally here, the UX Refresh. Robbie and I have been dreaming and planning this for over a year now and we've grinded for 2 months (with my trip to Norway/Finland between) to bring it to you. ...
v0.8.3 - The UX Refresh Latest
Released by @majora2007
v0.8.3 9c34c19
The much-anticipated UX Refresh is finally here. After over a year of planning and two months of development (including a brief trip to Norway/Finland), this update delivers a major overhaul to Kavita's user experience. Inspired by the design language of Plex, this release aims to make Kavita the Plex of reading platforms, both on mobile and desktop. The changes have been met with overwhelmingly positive feedback from nightly testers. Here are the highlights of what’s new.
Colorscape
One of the most significant new features is "Colorscape," a dynamic tinting system that adds a colorful gradient background to pages with cover images, much like Plex's movie detail pages. This feature wasn’t easy to implement, requiring extensive work on CSS gradients before landing on a solution. Users can turn Colorscape on or off and customize it with themes, allowing theme creators to modify how it looks. The feature doesn’t currently extend to reading lists or collections, but that may come in future updates.
Individual Pages
This update brings a major quality-of-life improvement for book and comic users: the ability to view individual volume and chapter metadata. Users can now access dedicated pages for volumes and chapters, with the option to update metadata for specific chapters or books. Additionally, users can now read a series, chapter, or volume directly from any card, without needing to open the series detail page.
Settings Overhaul
The settings pages have been overhauled, drawing more inspiration from Plex. Tooltip information is now more prominent, and changes to any field are instantly applied, eliminating the need for a "Save" button. All settings—whether for admin controls or user preferences—are now consolidated into one screen, though some workflows have been moved to dedicated pages (e.g., CBL Import and MAL Interest Stack import). This should make features easier to discover and manage.
Publisher Images
A new system for publisher images, similar to favicons, has been introduced. This allows users to submit or edit publisher images through Kavita’s GitHub repo, which will then be dynamically downloaded and displayed on detail pages. While the feature is still in its early stages, the Kavita team is hoping the community will contribute and refine the images over time.
This release lays the groundwork for future UX updates and optimizations. Next on the roadmap is an overhaul of Kavita+, along with continuing efforts to resolve the persistent Foreign Key constraint issue and improve scan loop performance. The release also comes with a big thank you to all the contributors on Weblate for their work on localization, with Kavita now fully supported in 10 languages.
Reminder: Refresh your browser after updating.
Added
- Ability to upload a volume cover for Komf users
- Extensive theming options for the login screen, including background images
- Introduction of "Colorscapes," a dynamic tinting system that selects colors from cover images and applies them to the background of pages (currently for series detail pages, configurable via the theming system; recommended to disable for light themes)
- New library actionable to generate Colorscapes (soft refresh covers)
- New tasks tab in Library Settings and Edit Series Modal that shows appropriate tasks and explanations
- Dedicated Volume/Chapter detail pages accessible from any card
- Ability to read directly from cards (volumes, chapters, series, or reading lists)
- Ability to edit chapter metadata, including locking fields and sorting order for comic users with unique issue numbers
- New API and UI for setting a volume cover (with locking option), now supported by Komf
- Publisher images, managed through Kavita's website, are now available
- New metadata filter "is empty" to check for missing links in fields like Writers, Tags, Genres
.yacreaderlibrary
directories now ignored by the scanner- UI now auto-refreshes on new Kavita releases, busting locale cache for non-admin users
- Admins can trigger Sync Theme job from the Tasks page
- Added a link to the CBL Repo in the CBL Import feature
Changed
- Password limit increased to 256 characters
- Settings and preferences consolidated into one page with a left nav menu, following Plex’s UI style
- Restoring position now works universally when interacting with jump keys
- Jump keys now feature animations rather than tooltips to indicate series numbers
- Filter icon now animates during configuration
- Several screens moved to dedicated sections, including most of Kavita+ settings
- Series and chapter cards now show localized names/titles on hover
- Cover Artists renamed to "Artists" across the app
- On mobile view, dropdown buttons removed for scrolling, with links now displayed in a modal
- Folder watching now runs in a separate background thread to avoid startup delays for large libraries
- Sync Themes job now runs daily (instead of weekly)
Fixed
- Fixed an issue where long passwords would truncate when autofilled
- Fixed CSS variables in the side-nav that were incorrectly assigned
- Numerous localization and theme-related issues resolved
- Fixed pagination bugs in OPDS reading list feeds
- Fixed issues in CBL Import and MAL Interest stacks
- Fixed missing fields preventing manga reader preferences from being saved
- Resolved several errors related to user ratings, CBL imports, themes, and other minor bugs
- Corrected an issue where special volume 0 in book series caused rendering issues in series detail cards
Theme
- Tables are now themeable
- Numerous changes to CSS variables. Wiki has been updated with additional documentation, particularly around the Colorscape system.
API
- API updated for resetting cover image fields. All update APIs now accept a
LockCover
field to force a lock (or not). Defaults totrue
but can reset the cover with an empty string andfalse
.