Offline Mode
The Reader supports offline reading for cached content. The Reader automatically detects network connectivity and adjusts the interface. Features requiring server communication are disabled when offline. Core reading functionality remains available for cached content. A Network Status Indicator appears in the Footer when offline.
Offline Detection
The Reader monitors network connectivity through the isOffline state variable. When offline:
A Network Status Indicator appears in the Footer displaying a message indicating the network is unavailable.
Features requiring internet are automatically disabled (grayed out or hidden).
The Reader continues to function with available offline capabilities.
Feature Availability by Network Status
Core Reading Features
| Feature | Online | Offline | Notes |
|---|---|---|---|
| Document Viewing | ✅ | ✅ | Content must be cached |
| Page Navigation | ✅ | ✅ | |
| Page Layout Changes | ✅ | ✅ | |
| Theme Selection | ✅ | ✅ | |
| Zoom Controls | ✅ | ✅ | |
| Table of Contents | ✅ | ✅ | |
| Thumbnails (PDF) | ✅ | ✅ | |
| Reading Progress | ✅ | ✅ |
Features Requiring Internet
| Feature | Online | Offline | Reason |
|---|---|---|---|
| Search | ✅ | ❌ | Requires server-side text search |
| Notebook | ✅ | ❌ | Syncs annotations with server |
| Highlights (new) | ✅ | ❌ | Requires sync to save |
| Notes (new) | ✅ | ❌ | Requires sync to save |
| Vito AI | ✅ | ❌ | AI processing on server |
| Listen (TTS) | ✅ | ❌ | Uses cloud TTS services |
| Dictionary | ✅ | ❌ | Fetches definitions from server |
| Translation | ✅ | ❌ | Uses translation API |
| Smart Zoom | ✅ | ❌ | Requires article data from server |
| Social Sharing | ✅ | ❌ | Requires internet to share |
Disabled Feature Behavior
When a feature is unavailable due to offline status:
Visual State: The button appears grayed out or with reduced opacity
Interaction: Clicking/tapping the button has no effect
Tooltip: May display a message indicating internet is required
Network Status Indicator
When offline, a notification bar appears in the Footer:
Location: Top of the Footer component
Appearance: Styled to match the current theme
Animation: Fades in when offline, fades out when connection is restored
Content Caching
For offline reading to work, content must be available locally:
PDF Documents
PDF pages are loaded as images from
publication.files_urls.Once loaded, pages may be cached by the browser.
Thumbnails use the same image sources and cache similarly.
EPUB Documents
EPUB content is loaded through the EPUB spine.
Chapters that have been viewed may be cached.
Navigation within cached chapters works offline.
Audiobooks
Audio files must be downloaded/cached for offline playback.
The Playlist panel works offline.
Playback controls function offline with cached audio.
Feature Availability by Content Type (Offline)
| Feature | EPUB | Audiobook | |
|---|---|---|---|
| Content Viewing | ✅ | ✅ | ✅* |
| Navigation | ✅ | ✅ | ✅ |
| Table of Contents | ✅ | ✅ | N/A |
| Thumbnails | ✅ | N/A | N/A |
| Playlist | N/A | N/A | ✅ |
| Theme | ✅ | ✅ | ✅ |
| Zoom/Font | ✅ | ✅ | N/A |
| Page Layout | ✅ | ✅ | N/A |
| Search | ❌ | ❌ | N/A |
| Notebook | ❌ | ❌ | N/A |
| Vito AI | ❌ | ❌ | N/A |
| Listen (TTS) | ❌ | ❌ | N/A |
Audiobook playback requires cached/downloaded audio files