Problem: After reading a chapter, users need a quick way to move to the next or previous chapter without going back to the book picker every time.
Solution: Prev/Next navigation links at the top of the reader, with smart book boundary wrapping — reaching the end of one book automatically takes you to the start of the next.
Not included: Rapid chapter browsing (hold-to-advance) or jump-to-chapter (that's the book picker). This is just sequential prev/next.
At the top of every chapter, there are Previous and Next navigation links. They work across book boundaries — if you're at the last chapter of Genesis, "Next" takes you to Exodus 1.
User flow:
Edge cases:
Layout: Horizontal bar at the top of the chapter with three sections:
Disabled state: Opacity 25%, not clickable (rendered as <span> instead of <a>)
Keyboard shortcuts:
← (left arrow): previous chapter→ (right arrow): next chapterHome: first chapter of current bookEnd: last chapter of current bookLinks: Rendered as <a> tags (not buttons) to enable browser link prefetching for instant navigation.
Components:
ChapterNav.svelte — renders the navigation bar with all controls+page.svelte — wrapping logic (lines 81-125) that computes prev/next URLsNavigation logic:
chapter - 1 / chapter + 1, wrapping at book boundaries via CHAPTER_COUNTS[bookId]jesusSpeechChapters array (server-provided list of all Gospel chapters with Jesus speech)CHAPTER_COUNTS and TOTAL_BOOKS from bible-constants.tsFiles:
apps/web/src/lib/components/bible/ChapterNav.svelte — nav bar componentapps/web/src/routes/(app)/read/[[book]]/[[chapter]]/+page.svelte — wrapping logicapps/web/src/lib/bible-constants.ts — CHAPTER_COUNTS, TOTAL_BOOKS constantsCurrent: DONE Milestone: v1 Priority: Core — essential for sequential reading
History:
Dependencies: