Problem: Users have notes scattered across many verses. While reading a chapter, they need to know which verses have notes without opening the notes list.
Solution: A subtle dashed underline on the first few words of verses that have notes. Clicking the underline opens the note editor directly (bypassing the context menu for quick access).
Not included: Showing note content inline or a note count. This is a presence indicator only.
User flow:
Edge cases:
Visual:
border-bottom: 1.5px dashed var(--color-header, rgb(140, 160, 200))Note: Despite the feature name "dots," the implementation uses dashed underlines, not dot markers.
Computation (in +page.svelte):
noteVerseIds = $derived(new Set(...)) — checks every verse against getVerseNote() from the notes storegetVerseNote() does O(1) Map lookup from Map<"bookId:chapter:verse", VerseNote>Rendering (VerseText.svelte):
hasNote is true: splits text, wraps first min(5, words.length) words in <span class="note-indicator">onnoteclick(verse) with stopPropagation()Files:
apps/web/src/lib/components/bible/VerseText.svelte — indicator renderingapps/web/src/lib/components/bible/VerseList.svelte — passes noteVerseIdsapps/web/src/lib/stores/notes.svelte.ts — Map-based lookupapps/web/src/routes/(app)/read/[[book]]/[[chapter]]/+page.svelte — computes noteVerseIdsCurrent: DONE Milestone: v1 Priority: Medium — connects reader to notes system
History:
Dependencies: