Skip to content

fix(core): render a qs Selah pause on its own end-aligned line - #467

Open
Dustin-Kelley wants to merge 18 commits into
mainfrom
cursor/qs-selah-own-line-6aa8
Open

Dustin-Kelley wants to merge 18 commits into
mainfrom
cursor/qs-selah-own-line-6aa8

Conversation

@Dustin-Kelley

@Dustin-Kelley Dustin-Kelley commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Why

YPE-6406

A Selah pause sits on the left of an ordinary poetry line. It should be its own italic line, aligned to the end. Swift and the format tool already do that.

What changed

  • A qs pause outside a refrain is an italic line aligned to the end.
  • The pause line reads the pause, then the footnote marker, then any trailing punctuation. With notes on that is the pause, the marker, then the period. With notes off the marker is hidden and the line reads with the period on that same line.
  • A period with no footnote stays on the pause. A footnote with no period stays beside the pause.
  • A block pause uses the same highlight fill as its verse, so a dark highlight does not leave white text on a blank line.

Scope

  • Every non-refrain qs pause (p, d, q–q4, Verse of the Day, BibleCard, and the same elsewhere).
  • Refrains stay as they are. The Passion Translation is the check for that.
  • The footnote marker stays on the pause line, before any trailing punctuation.

Decision vs Swift

Swift PR 297 puts the pause on its own end-aligned line and defers punctuation grouping and footnote attachment. This PR keeps that line layout and also keeps trailing punctuation (and an attached footnote marker) on the pause line so the period does not drop onto a line by itself when notes are off. Web is intentionally ahead of Swift here; a Swift follow-up can match this later.

Screenshots

HTML source for the version matrix is the YouVersion Platform API (HAB.3, HTML, notes included), the same source Swift PR 297 used. Fixture / Storybook rows use the pause + footnote + period case Cam asked for (version 130 Habakkuk 3:3 has no footnote in the API). Before images stay on the earlier commit where useful. After images below are from this branch after lifting pauses onto .yv-qs-line.

Pause + footnote + period (required)

Example After
Notes on (Storybook / Verse.Html) After pause footnote period notes on
Notes off — period stays on the pause line (fixture) After pause footnote period notes off
Notes on — marker + period on the pause line (fixture) After pause footnote period fixture notes on
Yellow highlight through the pause line After yellow highlight Selah
RTL pause + footnote + period After RTL Selah

Habakkuk 3:3 / 3:9 / 3:13 after (versions 130, 4360, 1849)

Example After
130 Habakkuk 3:3 130 Hab 3:3
130 Habakkuk 3:9 130 Hab 3:9
130 Habakkuk 3:13 130 Hab 3:13
4360 Habakkuk 3:3 notes on (API footnote on Pausa) 4360 Hab 3:3 notes on
4360 Habakkuk 3:3 notes off 4360 Hab 3:3 notes off
4360 Habakkuk 3:9 4360 Hab 3:9
4360 Habakkuk 3:13 4360 Hab 3:13
1849 Habakkuk 3:3 1849 Hab 3:3
1849 Habakkuk 3:9 1849 Hab 3:9
1849 Habakkuk 3:13 1849 Hab 3:13

Version 1849 (The Passion Translation) renders these pauses as refrain-style .qr lines (“Pause in his presence”), already end-aligned. This PR leaves .qr alone, so 1849 before/after match by design.

BibleCard surface

Example After
BibleCard-style shell, 130 Habakkuk 3:3 BibleCard Hab 3:3

Black and yellow highlight (130 Habakkuk 3:3)

Before is main (old display:block pause). After is this branch with .yv-qs-line.

Example Before After
Black 000000 light mode Before black highlight After black highlight
Yellow ffec5b light mode Before yellow highlight After yellow highlight fresh

Earlier before/after pairs for Habakkuk 3:3 notes on/off and highlights remain here for history:

Example Before After
130 Habakkuk 3:3, notes off Before 130 Habakkuk 3:3 notes off After 130 Habakkuk 3:3 notes off
Highlighted Selah, 130 Habakkuk 3:3, yellow ffec5b Before yellow highlight on Selah After yellow highlight on Selah

Blast Radius

Reader scripture. Pauses inside refrains are left out of the new line. Turning notes off still hides the marker.

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; the previous trailing-text issue is fixed.

Summary

Moves non-refrain Selah pauses onto their own italic, end-aligned lines.

  • Ordinary Selah pauses now sit on their own end-aligned line.

Reviews (12) · Last reviewed commit: "fix(core): keep .yv-v around text after ..." · Reviewed by Greptile

The stylesheet still only italicizes qs, and a period after the pause stays outside the span.
A Selah pause outside a refrain becomes an italic line aligned to the end.
A following period stays on that line, and a following footnote marker stays beside the pause.

YPE-6406
@changeset-bot

changeset-bot Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 6fb40f8

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@youversion/platform-core Patch
@youversion/platform-react-ui Patch
@youversion/platform-react-hooks Patch
vite-react Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

The marker beside a Selah pause is the decided layout.
@Dustin-Kelley
Dustin-Kelley marked this pull request as ready for review November 2, 2026 14:13
A period after a footnote on a Selah pause stays on the pause line, after the marker.
@cursor
cursor Bot marked this pull request as draft November 2, 2026 15:29
@Dustin-Kelley
Dustin-Kelley marked this pull request as ready for review November 3, 2026 14:24
Screenshots use live Platform API HTML for the three Bibles in Swift PR 297.
@cursor
cursor Bot marked this pull request as draft November 3, 2026 15:02
A block pause sits outside the inline verse fill, so it uses that same fill.
@Dustin-Kelley

Copy link
Copy Markdown
Collaborator Author

@greptile please re-review

@Dustin-Kelley
Dustin-Kelley marked this pull request as ready for review November 3, 2026 16:32
Signed-off-by: Dustin Kelley <Kelleydustin2018@gmail.com>

@camrun91 camrun91 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @Dustin-Kelley! The pause on its own line is a good change, and the CI is green. But I found 1 blocking problem and some required changes. I put 5 inline comments on the diff. The items below are not on lines in the diff.

1. Required: PR title
The title has "(YPE-6406)" and uses the ui scope. CONTRIBUTING.md:178 says that ticket references go in the branch name and the PR body, not in the title. All code changes are in packages/core. Please change the title to fix(core): render a qs Selah pause on its own end-aligned line and put the Jira link in the body.

2. Required: screenshots do not show the claims
In the PR description, the 130-hab33-notes-on and 130-hab33-notes-off images are the same image. Verse 3:3 in version 130 has no footnote, so these images do not show the footnote marker. The 1849 before and after images are also the same, so they show no change. No image shows the case that the code changes: a pause with a footnote marker and a period. Please add screenshots of a verse that has a footnote and a period, with notes on and off.

3. Required: scope does not match the code
The body and the test name say "q and q4". But .qs:not(.qr .qs) applies to all qs that are not in a refrain, which includes p, d, q1–q3, Verse of the Day, and BibleCard. Please make the selector match the scope, or change the body and test names to say "all non-refrain qs".

4. Required: acceptance criteria and RTL
The Jira acceptance criteria ask for Habakkuk 3:3, 3:9, and 3:13 in versions 130, 4360, and 1849, and a Verse of the Day or BibleCard check. The PR shows only 3:3. ADR 0009 asks for an RTL example with browser results. Please add these.

5. Required: record the difference from Swift
Swift PR 297 defers punctuation grouping and footnote attachment. Jira says that the footnote placement is "pending team decision". This PR adds both. AGENTS.md and ADR 0009 say to align with the sister SDKs. Please link the team decision, or record the difference in a decision doc. Then link a Swift follow-up ticket.

When these items are done, I am happy to review again. Thank you!

Dustin-Kelley and others added 4 commits November 4, 2026 10:58
Already-transformed HTML uses [data-verse-footnote], so the backfill path
must recognize those anchors or the period stays on its own line.

Co-authored-by: Cursor <cursoragent@cursor.com>
Whitespace before the footnote left the period outside the pause line.

Co-authored-by: Cursor <cursoragent@cursor.com>
Refrains stay inline; punctuation grouping only applies outside .qr.

Co-authored-by: Cursor <cursoragent@cursor.com>
Latin-only .!? left CJK, Arabic, and closing quotes alone under the pause.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Dustin-Kelley Dustin-Kelley changed the title fix(ui): render qs Selah pause on its own right-aligned line (YPE-6406) fix(core): render a qs Selah pause on its own end-aligned line Nov 4, 2026
Dustin-Kelley and others added 3 commits November 4, 2026 11:00
The selector is not limited to q and q4.

Co-authored-by: Cursor <cursoragent@cursor.com>
Capture the Selah line after extracting it onto its own verse-tagged shelf.

Co-authored-by: Cursor <cursoragent@cursor.com>
Host the after shot in the PR description instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
Move non-refrain pauses out of the inline .yv-v wrapper onto .yv-qs-line so highlights stay one line tall, and cover the layout with a Storybook journey.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Dustin-Kelley

Copy link
Copy Markdown
Collaborator Author

Addressed the remaining review items on this round:

  • Lifted non-refrain qs pauses onto .yv-qs-line (no block inside .yv-v); Storybook journey covers notes on/off, highlight, and RTL.
  • PR description now has the Decision vs Swift note, the pause+footnote+period shots Cam asked for, Habakkuk 3:3/3:9/3:13 afters for 130/4360/1849, RTL, and a BibleCard-style surface. 1849 uses .qr refrain pauses, so those stay unchanged by design.

posted by Cursor on behalf of Dustin

Split mid-host content after Selah, copy reading direction onto .yv-qs-line, drop the obsolete footnote float, and raise the browser/server size budgets.

Co-authored-by: Cursor <cursoragent@cursor.com>
Clone ancestor verse wrappers when splitting a host so trailing same-verse words stay copyable and highlightable.

Co-authored-by: Cursor <cursoragent@cursor.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants