- Description: Add a sidebar with mini-page previews for quick navigation.
- Difficulty: Medium
- Priority: High
- Implementation:
- ✅ Sidebar panel with 120x160px thumbnails
- ✅ PDF.js thumbnail generation with proper scaling
- ✅ Click-to-navigate functionality
- ✅ Visual active page indication
- ✅ Toggle button in toolbar (Layout icon)
- ✅ T key keyboard shortcut
- ✅ Loading indicators and async generation
- ✅ Responsive layout with flex integration
- Description: Enable users to save their annotated documents as a new PDF.
- Difficulty: Medium
- Priority: High
- Implementation:
- ✅ PDF-lib integration for PDF manipulation
- ✅ Canvas merging system (PDF + drawings + shapes)
- ✅ High-resolution export with device pixel ratio support
- ✅ Automatic filename generation (_annotated.pdf suffix)
- ✅ One-click export from toolbar
- ✅ Full preservation of original PDF quality
- Description: Provide an overlay with keyboard shortcuts.
- Difficulty: Low
- Priority: High
- Implementation:
- ✅ Beautiful modal component with organized categories
- ✅ Comprehensive shortcuts documentation
- ✅ Multiple triggers:
?,F1, and help button - ✅ Responsive design with backdrop blur
- ✅ ESC to close, click outside to close
- Description: Show recently opened files on start screen.
- Difficulty: Low
- Priority: High
- Steps:
- Store recent files in localStorage.
- Update welcome screen to show list.
- Description: Complete drawing system with multiple tools.
- Implementation:
- ✅ Hybrid drawing system (Canvas + overlays)
- ✅ Pencil tool with custom SVG cursor
- ✅ Eraser tool with custom SVG cursor and shape erasure
- ✅ Text tool with inline editing and auto-cleanup
- ✅ Rectangle tool with real-time preview
- ✅ Circle tool with real-time preview
- ✅ Arrow tool with proper intersection detection
- ✅ Full undo/redo system for all tools
- ✅ Keyboard shortcuts (1-6 keys) for tool switching
- Description: Tool-specific cursors for better UX.
- Implementation:
- ✅ Custom SVG pencil cursor with proper hotspot
- ✅ Custom SVG eraser cursor with visual feedback
- ✅ Fallback cursor support for compatibility
- ✅ Cursor files stored in /static/cursors/
- ✅ Dynamic cursor switching based on active tool
- Description: Make LeedPDF installable as a native app.
- Implementation:
- ✅ @vite-pwa/sveltekit integration
- ✅ Web app manifest with LeedPDF branding
- ✅ Service worker with Workbox caching
- ✅ Offline functionality after first visit
- ✅ Auto-updating service worker
- ✅ Installable on mobile and desktop
- ✅ Standalone display mode
- ✅ File handling for PDF files
- Description: Comprehensive keyboard navigation.
- Implementation:
- ✅ Tool shortcuts (1-6 for tools)
- ✅ Navigation shortcuts (arrows, W/H for fit)
- ✅ Zoom shortcuts (Ctrl+/-, Ctrl+0, Ctrl+scroll)
- ✅ Action shortcuts (Ctrl+Z/Y for undo/redo)
- ✅ Upload shortcut (U key)
- ✅ Help shortcut (? and F1)
- ✅ Fullscreen shortcut (F11)
- ✅ Thumbnails toggle (T key)
- Description: Automatically fit PDF to viewport height on load.
- Implementation:
- ✅ Automatic fit-to-height when PDF first loads
- ✅ Better initial viewing experience
- ✅ Responsive scaling for all screen sizes
- Description: Keep drawings in localStorage to prevent data loss.
- Difficulty: Low
- Priority: High
- Implementation:
- ✅ PDF-specific storage using fileName + fileSize as unique key
- ✅ Auto-save drawings to localStorage on every change
- ✅ Auto-restore drawings when reopening same PDF
- ✅ Visual "Saved ✓" indicator in toolbar
- ✅ Clear drawings function for new PDFs
- Description: Allow users to fit PDF to viewport width/height.
- Difficulty: Very Low
- Priority: High
- Implementation:
- ✅ Added "Fit W" and "Fit H" buttons to toolbar
- ✅ Implemented fitToWidth() and fitToHeight() methods
- ✅ Auto-calculates optimal scale for viewport
- ✅ Centers view and resets pan position
- Description: Provide a toggle to switch the app to dark mode.
- Difficulty: Low
- Priority: Medium
- Description: Improve usability on mobile/tablets.
- Difficulty: Low-Medium
- Priority: Medium
- Description: Implement smoother lines and pressure sensitivity.
- Difficulty: Low
- Priority: Medium
- Description: Allow users to hide UI and enter fullscreen.
- Difficulty: Low
- Priority: Medium
- Implementation:
- ✅ F11 key toggles fullscreen mode
- ✅ ESC key exits fullscreen
- ✅ Cross-browser fullscreen API support
- ✅ Automatic state tracking
- ✅ Distraction-free PDF viewing experience
- Description: Add a tool to highlight text in documents.
- Difficulty: Medium-High
- Priority: Low
- Description: Allow users to search text within PDFs.
- Difficulty: Medium-High
- Priority: Low