Problem: When a user clicks a search result, cross-reference, or theme verse, they're taken to the right chapter — but have to visually scan to find the specific verse. On a long chapter, this wastes time and causes frustration.
Solution: When navigating to a specific verse (from search, cross-refs, or themes), automatically scroll to that verse and briefly highlight it with a fade-out animation so the user's eye is immediately drawn to it.
Not included: Persistent highlighting or permanent verse markers. The highlight fades out after 2.5 seconds.
When the user navigates to a specific verse (e.g., from a search result linking to Genesis 1:3), the page scrolls directly to that verse and applies a brief amber glow that fades out over 2.5 seconds.
User flow:
Edge cases:
Scroll behavior: Smooth scroll to bring the verse into the center of the viewport.
Highlight animation:
TODO: Choose exact amber color — consider #fbbf24 at 20% opacity as starting point.
Trigger: URL hash #v{verseNumber} or query param — parsed on page load.
Implementation approach:
element.scrollIntoView({ behavior: 'smooth', block: 'center' })Reference: BibleGame ReaderView.cs had a HighlightVerse() method with 2.5s fade-out.
Files:
apps/web/src/routes/(app)/read/[[book]]/[[chapter]]/+page.svelte (modify)apps/web/src/lib/components/bible/VerseText.svelte (modify — add highlight class support)Current: PLANNED Milestone: v1 Priority: High — significantly improves navigation from search/cross-refs
History:
Dependencies: