-
Notifications
You must be signed in to change notification settings - Fork 297
Longform reading UX improvements #3496
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
alltheseas
wants to merge
9
commits into
damus-io:master
from
alltheseas:feature/longform-reading-ux
Closed
Longform reading UX improvements #3496
alltheseas
wants to merge
9
commits into
damus-io:master
from
alltheseas:feature/longform-reading-ux
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Pre-process markdown with ensureBlockLevelImages() to add paragraph breaks around standalone images, forcing proper block-level parsing. Creates KingfisherImageProvider for MarkdownUI to handle proper aspect ratio and image caching. Changelog-Fixed: Fixed stretched/cut-off images in longform notes Signed-off-by: alltheseas <[email protected]>
Display a thin purple progress bar at top of longform articles (kind 30023) that tracks scroll position through the content. Uses top/bottom GeometryReader trackers to measure content bounds and calculates progress linearly. Closes: damus-io#3494 Changelog-Added: Added reading progress bar for longform articles Signed-off-by: alltheseas <[email protected]>
Display estimated reading time in minutes alongside word count for longform articles. Uses standard 200 words per minute reading rate calculation. Closes: damus-io#3492 Changelog-Added: Added estimated read time to longform preview Signed-off-by: alltheseas <[email protected]>
Add settings for longform article reading experience: - Sepia mode toggle for comfortable reading with warm tones - Line height slider (1.2-2.0x) for adjustable text spacing Both settings persist and apply to the full longform article view. Closes: damus-io#3495 Changelog-Added: Added sepia mode and line height settings for longform articles Signed-off-by: alltheseas <[email protected]>
When viewing the full article (not truncated), remove the card border and background styling for a cleaner reading experience. Card styling is now only shown in truncated preview mode (timeline, search results). Changelog-Changed: Removed card styling from longform preview in full article view Signed-off-by: alltheseas <[email protected]>
When reading longform articles, scrolling down hides the navigation bar and tab bar for a distraction-free reading experience. Tap anywhere to restore the chrome, or it automatically restores when leaving the view. Closes: damus-io#3493 Changelog-Added: Added focus mode with auto-hide navigation for longform reading Signed-off-by: alltheseas <[email protected]>
…rm event Restore chrome (nav bar + tab bar) when user taps to select a different event in thread view. Previously the tab bar could stay hidden because updateChromeVisibility short-circuits when isLongformEvent is false. Changelog-Fixed: Fixed tab bar staying hidden when switching from longform to non-longform event Signed-off-by: alltheseas <[email protected]>
Previously scrolling up would restore the nav/tab bars. Now only tapping restores chrome, giving a cleaner reading experience without accidental restoration while scrolling. Changelog-Changed: Changed focus mode to only hide navigation on scroll down Signed-off-by: alltheseas <[email protected]>
The conditions !blur_images || (!blur_images && X) simplify to just !blur_images, and the else branch covers the blur_images case. Signed-off-by: alltheseas <[email protected]>
Collaborator
Author
Collaborator
Author
|
cc @BenGWeeks |
Contributor
|
Will take a look at this next week. |
Collaborator
|
trying now |
Collaborator
|
nice, works great. added to integration queue |
jb55
pushed a commit
that referenced
this pull request
Jan 6, 2026
Pre-process markdown with ensureBlockLevelImages() to add paragraph breaks around standalone images, forcing proper block-level parsing. Creates KingfisherImageProvider for MarkdownUI to handle proper aspect ratio and image caching. Changelog-Fixed: Fixed stretched/cut-off images in longform notes Closes: #3496 Signed-off-by: alltheseas <[email protected]> Signed-off-by: William Casarin <[email protected]>
9 tasks
jb55
pushed a commit
to jb55/damus
that referenced
this pull request
Jan 6, 2026
Pre-process markdown with ensureBlockLevelImages() to add paragraph breaks around standalone images, forcing proper block-level parsing. Creates KingfisherImageProvider for MarkdownUI to handle proper aspect ratio and image caching. Changelog-Fixed: Fixed stretched/cut-off images in longform notes Closes: damus-io#3489 Closes: damus-io#3496 Signed-off-by: alltheseas <[email protected]> Signed-off-by: William Casarin <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
longform
pr-in-merge-queue
The PR has been reviewed, tested, and added to an integration branch. Will be merged soon.
ui
usability
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.


Summary
This PR adds several improvements to the longform article reading experience:
Relation to #3489: The first commit in this PR includes the same image fix from #3489. This PR bundles that fix with additional longform UX improvements.
Checklist
Standard PR Checklist
Closes:orFixes:tags in the commit messages wherever applicable, or made sure those are not needed. See Submitting patchesTest report
Device: iPhone 17 Pro (Simulator)
iOS: iOS 26.2
Damus: feature/longform-reading-ux branch
Setup: Tested with various longform articles (kind 30023) from different authors
Steps:
Results:
Other notes
Screenshots of the changes are available in the related issues. Each commit is a logical unit that can be reviewed independently.