Skip to main content

Annotations & Footnotes

GospeLib's annotation system combines a rich doctrinal highlight taxonomy with a layered rendering approach, supporting scholarly footnotes and personal notes without visual clutter.

Annotation Layer Architecture

Four visual layers render independently. When multiple layers overlap on the same verse, they compose visually:

LayerVisual TreatmentZ-OrderPurpose
WashBackground fill at 0.18 opacityBottomDefault highlight — fills behind the text
UnderlineColored underline below text baselineAbove washAlternative highlight mode — text stays uncolored
TextText color changes to highlight colorAbove underlineStrong emphasis — entire verse appears in highlight color
OutlineColored 1.5px border around verse blockTopBox/outline mode — subtle structural call-out

Layer Compositing

When two different doctrinal colors overlap on the same passage:

  • Washes blend — the visual intersection creates a third color, signaling a doctrinal intersection (e.g., Yellow + Purple → warm mauve, meaning Atonement + Priesthood)
  • Underlines stack — multiple underlines appear at slightly offset positions
  • Text mode — last-applied color wins (the user can reorder)
  • Outline — multiple outlines nest

Margin Indicators

When a verse has annotations, a small indicator appears in the left margin:

IndicatorMeaning
Colored dotHighlight applied (color matches the highlight)
Pencil iconPersonal note attached
Chain linkCross-references linked
Multiple dotsMultiple overlapping annotations

Margin indicators are tappable — opening the relevant annotation panel.

Highlight Color Picker

The highlight color picker appears as part of the floating toolbar or standalone from the study toolbar.

Layout

Two rows of color swatches:

Row 1 — Doctrinal Colors (8 colors): See Colors: Doctrinal Color Taxonomy for the full list. Each swatch shows the color at full opacity with the doctrinal label below.

Row 2 — Personal Colors (4 pastel colors): See Colors: Personal Highlight Colors. Labeled "My Colors."

Below the color rows:

ControlFunction
Mode selectorToggle between Wash / Underline / Text / Outline
EraserRemove highlight from selected passage
ExpandOpen full annotation details panel

Long-Press Color Swatch

Long-pressing any doctrinal color swatch reveals the doctrinal domain description and a "Customize mapping" link to remap the color to a different theme.

Note Cards

When a user attaches a personal note to a verse, the note renders as a card:

Note Card Anatomy

ElementStyling
ContainerPaper surface, radius.lg (12px), elevation 2
Backgroundtan-50 — subtly warmer than page
Leading accent3px left border in the verse's highlight color
HeaderVerse reference + timestamp in font.size.sm
BodyUser text in font.family.scripture (Gentium Plus)
FooterEdit / Delete / Share actions

Note cards appear inline below the annotated verse in study mode, or collected in the note panel.

Footnote System

Footnote Display Modes

Four modes controlling when and how footnotes appear:

ModeBehaviorAudience
A — HiddenNo footnote indicatorsCasual reading
B — Indicators OnlySuperscript letters appear; tap to expandDefault
C — TooltipHover/long-press previews content inlineStudy
D — ExpandedAll footnotes visible below each verseDeep study

Footnote Types

Each footnote type has distinct visual coding:

TypeBadge ColorIconContent
Cross-referencecolor.semantic.crossReferenceChain linkLink to related passage
JST PurpleScrollJoseph Smith Translation alternate reading
Hebrew/Greek GoldH/G badgeOriginal language clarification
Topical Guide GreenTopic bubbleLink to topical guide entry
Bible Dictionary BlueBookLink to Bible Dictionary entry
Commentary GrayQuoteScholarly commentary excerpt

Footnote Card Anatomy

When a footnote is expanded (modes C or D):

ElementStyling
ContainerChrome surface, elevation 1, radius.md (8px)
Type badgeColored pill with icon + type label
ContentFootnote text in font.size.sm
Action"Go to passage" for cross-refs, "See full entry" for TG/BD
DismissTap outside or swipe away

Annotation Data Model

Annotations are stored per-user and synced across devices:

  • Highlights: passage range + color + mode (wash/underline/text/outline)
  • Notes: passage range + rich text + optional highlight binding
  • Bookmarks: passage point + optional label + optional collection assignment
  • Tags: user-defined labels that can be applied to any annotation