- Volume export - Export individual volumes from the volume menu, with the same options as series export
- Cloud rename - Renaming a series or volume now renames the files in Google Drive, MEGA, and WebDAV too
- Google Drive downloads missing text - Volumes downloaded from Google Drive were missing their text overlay data, appearing as image-only
- WebDAV download retry - Failed downloads now retry automatically with resume support
- Easier OCR with mokuro-bunko - Image-only volumes uploaded to a mokuro-bunko for OCR processing will automatically have their text data added locally on the next refresh.
- Catalog drop shadow toggle - Drop shadows on catalog thumbnails can now be disabled, improving the appearance of spine showcase mode
- Delete cloud-only series - Remove series from cloud storage directly without needing to download them first
- Volume keyboard shortcuts - Hover over a volume on the series page and press E to edit, C to change cover, Delete to remove, or Shift+Delete to delete from cloud
- Cover page stitching - Combine two pages side-by-side when cropping a cover, great for spread artwork split across two pages
- Cover picker improvements - Rotate images, pages in reading order, and custom covers sync to the cloud automatically
- Escape closes modals - Pressing Escape in the volume editor or cover picker closes the modal instead of leaving the series page
- Smarter series grouping - Local and cloud volumes now always appear together in the catalog even if they were imported separately or have slight differences in naming
- Dual page cover handling - Fixed cover page consuming two pages instead of one when dual page mode is set explicitly
- AnkiConnect page numbers - Correct page numbers in templates, including dual-page captures
- AnkiConnect tags on mobile - Fixed tags appearing in update mode on Android when they should be disabled
- AnkiConnect card updates - Updating existing cards now preserves their formatting
- Bulk cover cropping - Crop a cover and apply the same crop region to the next volume in the series, making it easy to set consistent covers across an entire series
- Cloud thumbnail previews - Cloud-only volumes now show cover thumbnails in the catalog before downloading
- Faster catalog scrolling - Thumbnail rendering rewritten for smoother performance, especially on mobile
- AnkiConnect field action badges - Visual indicators showing Append/Unchanged/Replace behavior for each field
- AnkiConnect field modal layout - Tiered accordion design for clearer field organization
- Cloud sync now preserves cover images - Uploads and downloads keep your custom covers and metadata intact
- Duplicate cloud folders - Automatically detects and merges duplicate series folders
- Google Drive series deletion - No longer fails intermittently
- Mobile import page reloads - Fixed unexpected full-page reloads during file imports on mobile
- Image-only archive imports - Now prompts for confirmation instead of silently failing
- Routing race conditions - Fixed premature redirect to catalog when the library loads slowly
- Loading vs not-found states - Proper distinction between "loading" and "does not exist" for series/volumes
- Zoom notification removed - No longer interferes with Yomitan dictionary popups
- Image dragging in cropper - Disabled unwanted drag behavior during crop selection
- AnkiConnect field modal fixes - Truncated long previews, proper crop bounds, scroll wheel support, improved styling
- Reader spread navigation - Fixed forward/backward paging with two-page spreads
- Dynamic AnkiConnect field mapping - Configure which template populates each Anki field with a visual UI
- Template variables for fields - Use
{selection},{sentence},{image},{series},{volume}in any field - Mixed field templates - Combine text and images in the same field (e.g.,
{sentence} {image}) - Android mode detection - Auto-detects AnkiConnect Android limitations with manual override option
- Connection-gated AnkiConnect settings - Settings only appear after connecting, with live model/deck/field data from Anki
- AnkiConnect settings redesign - Complete overhaul with connection status, enable toggle, and organized sections
- Card mode selection - Now uses radio buttons instead of dropdown for clearer selection
- Toggle reader UI by clicking blank space - Click on empty areas of the page to show/hide reader controls
- Mark volume as read - Manually mark volumes as read from the volume menu. Thanks @Zipeks!
- WebDAV performance improvements - Faster file listing during sync
- Case-insensitive series merge - Series with different casing (e.g., "Test Series" vs "test series") now detected as merge candidates
- WebDAV paths with special characters - Fixed corrupt downloads for files with
#in their path (e.g.,#Zombie Sagashitemasu) - Large volume WebDAV backup - Fixed authentication and memory issues when backing up volumes >1GB to WebDAV
- Free-form Anki image cropping - Replace fixed aspect ratio with free-form cropping using cropperjs
- Text box picker for Anki quick actions - 2-step capture flow: select text box first, then adjust crop region
- Preset crop to text box - New Anki setting to automatically preset crop region to selected text box bounds
- Automatic cover image detection - Imports now detect and use cover images for thumbnails. Thanks @ChristopherFritz!
- Series page character counts - Shows total and remaining characters with compact formatting (1.2M, 500K). Thanks @SilfraTheDragon!
- Larger cover image cropper - Expanded cover picker modal for easier precise cropping
- Consistent natural volume sorting - Fixed edge cases where sorting could be inconsistent by consolidating to single source of truth. Thanks @ChristopherFritz!
- Placeholder series pages - Click cloud-only series to view their volumes and download options instead of triggering immediate download
- Series export progress tracking - Exporting a series as a single archive now shows progress in the progress tracker
- Large volume cloud backup - Fixed "Array buffer allocation failed" error when backing up or exporting volumes >1GB (#129)
- Import modal stuck on multiple drops - Fixed import preparation modal not closing properly when dropping multiple archives
- Volume editor modal - Edit volume metadata, series assignment, reading progress, and cover image from the catalog
- Cover cropping - Crop any page from the volume to use as cover, with free-form selection
- Inline series rename - Rename series directly from the series page header
- Missing pages display - Volume editor shows which pages were missing during import
- Import preparation modal - Shows progress spinner with status while scanning and analyzing dropped files before they appear in the import queue
- Series merge - Merge multiple series together with conflict detection and preview. Thanks @ChristopherFritz!
- Flat archive imports - Archives with images at root level now properly pair with external mokuro files (#131, #125)
- Pan to page start on page turn - New panning behavior that positions at the top corner based on reading direction (top-right for RTL, top-left for LTR). Thanks @Zipeks!
- Simplified zoom options - Removed redundant "Keep zoom, pan to top center" and "Keep zoom, pan to top corner" options. "Original size" and "Keep zoom" now use pan-to-page-start behavior.
- AnkiConnect test button - Validate your connection with clear error messages for network/CORS issues
- Custom text box menu toggle - Disable to use browser's native right-click menu instead
- Context menu mobile support - Buttons now respond to taps, clipboard works on mobile, menu positions to avoid overlapping text
- Context menu for OCR text boxes - Right-click/long-press for quick copy and Anki card creation
- Copy text without linebreaks - Copied text automatically strips linebreaks for cleaner pasting - thanks @Daxterapid
- Partial volume imports - Import volumes even when some images are missing, with placeholder pages and a confirmation prompt showing what's missing
- Import progress tracking - File imports now show progress in the progress tracker
- Anki textbox targeting - Pick which text box to capture when creating cards from QuickActions
- AnkiConnect custom URL - Configure non-default AnkiConnect endpoints
- AnkiConnect card modes - Choose between updating last card or creating new cards
- Anki dynamic tags - Template tags like
{series},{volume}for automatic organization
- CBZ export compatibility - Exported files now work in more third-party readers
- iOS Safari imports - Fixed UUID generation and file picker issues
- Import compatibility - Better handling of various internal folder layouts
- JPEG XL (.jxl) image support
- Fix infinite loop causing browser freeze on some mokuro pages
- Fix timer continuing to run after leaving a volume
- Made swipe page turn reliable on high-end mobile devices
- Consistent wheel zoom step sizes between Chrome and Firefox with platform-aware speed adjustment
- Handle mokuro files with empty series name (falls back to volume name)
- Stop timer when paging into next/previous volume
- Double-clicking text boxes no longer triggers zoom
- Crop image popup now works on first page load without needing to page first
- Copying text from OCR boxes no longer has double linebreaks (fixes Yomitan Anki sentence capture)
- Rolled back mobile swipe/pinch-zoom changes from 1.0.6 that broke textbox touch visibility
- #265
41ce39bThanks @Gnathonic! - Add detailed WebDAV error modal with network error troubleshooting. Shows collapsible sections for CORS, SSL, DNS, and connection issues with specific console error codes to look for and fix instructions.
- Update banner now shows version diff (e.g., v1.0.3 → v1.0.4)
- Expandable "what's new" section in update banner fetches release notes from GitHub
- Link to full release notes on GitHub
- Fix cross-site imports via
/upload?manga=X&volume=YURLs (regression from hash router migration) - Cross-site imports now use global progress tracker instead of dedicated page
- Support anonymous WebDAV connections (blank username/password)
- Detect read-only WebDAV servers and hide write-dependent UI controls
- Show read-only badge on cloud page
- New import mismatch modal displays when mokuro pages don't match downloaded/uploaded files, showing missing or extra files
- Fix double-tap zoom not working in the reader
- Fix time tracking to work regardless of Timer visibility
- Fix stats page discrepancy between achievements, recent speed, and empty state notice
- Fall back to catalog when URL cannot be parsed
- Add missing leading slash in WebDAV upload path
- "Update available" banner when a new service worker version is detected, allowing PWA users to update the app
- Add AVIF, TIFF, GIF, BMP support to upload and download
- Add extension-agnostic file matching for converted images (e.g., png→webp, jpg→avif)
- Fuzzy matching to align image files with mokuro page data when paths don't match exactly
- Fix inconsistent zoom step sizes between Chrome and Firefox
- Prevent scrollbars in reader by hiding document overflow
- Skip hotkey handling when user is in text inputs or inside settings drawer
- Skip hotkey handling when inside OCR text boxes for text selection
- Ignore letter key shortcuts when Ctrl/Alt/Meta is pressed
- Reset document scroll when settings menu scroll leaks through
- Fix reader exit/fullscreen buttons not showing after hash router migration
- Hash-based SPA router - navigation no longer causes full page reloads, fixing PWA refresh issues
- V3 database schema with split tables for better performance
- Pica-based thumbnail generation for higher quality
- Configurable catalog stacking settings with presets (Default, Minimal, Expanded, Spine Showcase)
- Background thumbnail processing now reports progress via progress tracker
- Smart fallback system for thumbnail generation that handles mobile browser limitations
- Improve zoom behavior with symmetric scaling and bounds limits
- Remove panning wiggle room when content fits viewport
- Mark Spine Showcase as alpha and auto-reset on page load to prevent getting stuck
- Full integration with Google Drive, MEGA, and WebDAV - files uploaded show in the catalog as placeholders that can be downloaded in a single tap
- Automatic progress sync with the cloud - switch between devices and keep your read position and stats in sync
- Remembers Google Drive connection between sessions and can auto-prompt for token refresh
- Storage quota statistics (used/available storage) on cloud page for all providers
- Automatic dual/single page mode - switches based on screen orientation and whether the current image looks like a two-page spread
- Automatic resizing and wrapping if OCR text would be oversized
- Page preloading that doesn't block the UI, with paging animations
- Paging past the beginning or end of a volume loads the next/previous volume. If there are no more volumes, returns to series page
- Timer now pauses if you don't turn the page for 1-30 minutes (user configurable, default 5)
- Time left to finish estimate shown below the timer
- Reading Speed History page with read history, speed tracking, achievements, graphs, and motivational features
- Volumes now show character counts and time-to-finish estimates based on your reading speed
- Series page shows time left estimate based on your recent reading speed
- Volume text page for text analysis
- Series text page for text analysis
- Series in the catalog now have up to 3 thumbnails stacked with a marker if you've finished reading
- Series page now has thumbnail view, sorting options, and time estimates
- Added sorting modes to series and catalog pages
- PWA file association for
.cbzfiles - double-click to open directly in Mokuro - Universal drag-and-drop support - drop files anywhere to import
- N for night mode
- I for invert colors
- P for page mode
- C for cover toggle
- Z for zoom mode
- Esc to back out of current volume or series
- Up/Down keys now pan instead of page
- Scroll wheel behavior follows standards (toggle available to swap)
- Automatic scheduling for night mode and invert colors - choose between Manual (hotkey) or Scheduled (time-based)
- Night mode filter now applies to settings dialog
- Rewrote database to be much more performant at scale - can now handle >2000 volumes with ease
- Restructured database to prevent out-of-memory errors when editing long series
- Much more robust handling of file and folder names
- Handles more arrangements of zips, cbzs, files, folders, and mokuro files - much better at importing
- Support for importing volumes without .mokuro files (image-only)
- Prevent browser running out of memory during large file uploads
- Lazy-loading of cloud provider modules to reduce initial bundle size
- Updated to latest Svelte and Node versions
- Tailwind CSS v4 and Flowbite-Svelte v1 upgrade
- Fix reactivity race conditions causing UI flashes in reader and catalog
- Fix MEGA auto-sync cache staleness issues
- Fix page turn animation wiping in wrong direction
- Fix IndexedDB deadlock during volume deletion
- Fix Timer crash when navigating between volumes
- Fix Google Drive OAuth not initializing when token is expired
- Google Drive integration - sync volume data and profiles to the cloud
- Profile uploading to Google Drive
- Catalog search
- Manga extracting (export volumes)
- exSTATic support
- Jidoujisho support
- Single volume deletion
- Manual timer controls
- Misc settings
- Fix spacebar navigation
- Fix volume sorting
- Fix zip image ordering
- Fix file import ordering
- Prevent edge swipe in reader
- Various QOL improvements
- Core manga reader with panzoom controls
- Mokuro OCR text overlay support
- Catalog with drag and drop upload
- ZIP/CBZ file support
- Settings system with volume-specific overrides
- Double page mode with cover page handling
- Progress tracking per volume
- Profile import/export
- Stats tracking
- Anki Connect integration
- About section
This was the first public release of Mokuro Reader by ZXY101.