Problem: The Bible contains passages where scholars disagree about whether the words are direct quotes from Jesus or narrative text. Currently, we show all Jesus' speech in the same gold color, which doesn't reflect the scholarly uncertainty.
Solution: Use a muted amber color for disputed/uncertain Jesus speech, distinct from the confident gold used for certain direct speech. This gives readers a more nuanced and honest representation of the text.
Not included: Detailed textual criticism notes (that's a separate feature — textual/transmission notes). We're just adjusting the color, not adding explanatory UI.
When reading a Gospel chapter, verses where Jesus is speaking are highlighted in gold. Some verses where the speaker attribution is uncertain (scholars debate whether it's Jesus or the narrator) appear in a softer, muted amber instead.
User flow:
Edge cases:
certainty_level: possible — these show in muted ambercertainty_level: certain — standard goldspeech_type field also has indirect — indirect speech is not highlighted at allColors:
Visual distinction:
No additional UI elements needed — this is purely a color change based on data.
Data:
jesus_speech with columns: verse_id (FK), speech_type (direct/indirect/absent), certainty_level (certain/probable/possible), attested_in, notesgetJesusSpeechForChapter(bookId, chapter) already exists in queries/jesus-speech.tscertainty_level — it's just not used in the frontend yetImplementation:
VerseText.svelte to check certainty_level when applying Jesus speech colorcertainty_level === 'certain' → use --color-jesus-words (gold)certainty_level === 'probable' || 'possible' → use new CSS variable --color-jesus-words-disputed (#d4a574)Files:
apps/web/src/lib/components/bible/VerseText.svelte (modify)apps/web/src/lib/theme/colors.ts (add disputed color variable)apps/web/src/routes/(app)/read/[[book]]/[[chapter]]/+page.server.ts (may need to pass certainty data)Current: PLANNED Milestone: v1 Priority: Medium — enhances accuracy of Jesus' words display
History:
jesus_speech table with certainty_level column)certainty_level — only checks speech_typeDependencies: