A client-side React application for reading text files offline with customizable themes, font sizes, and automatic progress saving.
- File Upload: Upload multiple .txt files to create your personal library
- Bookshelf UI: Visual library showing all uploaded books with file sizes
- Reading Experience:
- Adjustable font size (12px - 36px)
- Three themes: Light, Dark, and Sepia
- Smooth scrolling with position memory
- Persistence:
- Uploaded books saved in localStorage
- Reading progress automatically saved
- Last opened book remembered
- Theme and font preferences saved
-
Install dependencies:
npm install
-
Start development server:
npm run dev
-
Open in browser: The app will open at
http://localhost:5173
-
Build the project:
npm run build
-
Preview the build:
npm run preview
-
Build the project:
npm run build
-
Deploy the
distfolder to your GitHub Pages repository -
Configure base path (if needed): The
vite.config.jsalready includesbase: './'for relative paths
- Upload Books: Click "Choose .txt files" to upload your text files
- Browse Library: View all uploaded books in the bookshelf grid
- Read: Click any book to open the reader
- Customize: Adjust font size and theme using the controls
- Navigate: Use "Back to Library" to return to the bookshelf
- Framework: React 18 with Vite
- Storage: localStorage for persistence
- Styling: Custom CSS with responsive design
- File Handling: FileReader API for client-side file processing
- No Backend Required: Completely client-side application
Works in all modern browsers that support:
- FileReader API
- localStorage
- ES6+ features
MIT License - feel free to use and modify as needed.