Projects BibleWeb Bible Reading Disputed Jesus speech (muted color)
Planned

Disputed Jesus speech (muted color)

Area: Bible Reading Milestone: v1

Context

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.

Functional

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:

  1. User reads a Gospel chapter (Matthew, Mark, Luke, or John)
  2. Direct Jesus speech appears in gold (#fbbf24) — this already works
  3. Disputed/uncertain speech appears in muted amber (#d4a574)
  4. User can see at a glance which words are confidently attributed vs uncertain
  5. No toggle or setting needed — it's always shown this way

Edge cases:

  • Some verses have certainty_level: possible — these show in muted amber
  • Verses with certainty_level: certain — standard gold
  • The speech_type field also has indirect — indirect speech is not highlighted at all
  • Only applies to books 40-43 (Matthew through John)

UX & Design

Colors:

  • Certain direct speech: #fbbf24 (gold) — already implemented
  • Probable/possible speech: #d4a574 (muted amber) — new
  • Indirect speech: no highlighting (normal text color)
  • Background remains unchanged

Visual distinction:

  • The muted amber should be clearly different from gold but still feel "warm"
  • On dark backgrounds (#1a1a2e), both colors have good contrast

No additional UI elements needed — this is purely a color change based on data.

Technical

Data:

  • Table: jesus_speech with columns: verse_id (FK), speech_type (direct/indirect/absent), certainty_level (certain/probable/possible), attested_in, notes
  • Query: getJesusSpeechForChapter(bookId, chapter) already exists in queries/jesus-speech.ts
  • The query already returns certainty_level — it's just not used in the frontend yet

Implementation:

  • Modify VerseText.svelte to check certainty_level when applying Jesus speech color
  • If certainty_level === 'certain' → use --color-jesus-words (gold)
  • If certainty_level === 'probable' || 'possible' → use new CSS variable --color-jesus-words-disputed (#d4a574)
  • Add the new CSS variable to the theme

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)

Status

Current: PLANNED Milestone: v1 Priority: Medium — enhances accuracy of Jesus' words display

History:

  • BibleGame desktop app showed disputed sayings in muted amber (#d4a574) vs certain in gold (#fbbf24)
  • Data already exists in the database (jesus_speech table with certainty_level column)
  • Frontend currently ignores certainty_level — only checks speech_type

Dependencies:

  • Requires: Jesus speech highlighting (DONE), jesus_speech DB table (DONE)
  • Blocks: nothing