Skip to content

feat(reading): larger default text, a Text Size setting and fixed tab labels (backport #73 → release/v4.0) - #76

Merged
kazo0 merged 7 commits into
release/v4.0from
steve-ops/backport/release/v4.0/pr-73
Oct 13, 2026
Merged

kazo0 merged 7 commits into
release/v4.0from
steve-ops/backport/release/v4.0/pr-73

Conversation

@steve-ops-bot

@steve-ops-bot steve-ops-bot Bot commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Automated backport of #73 to release/v4.0, requested by @kazo0.

kazo0 and others added 7 commits October 12, 2026 23:44
… labels (spec 013)

Since the Uno port the reading was set in Material's BodyMedium (14) with a
HeadlineSmall title (24); the Xamarin app used iOS Body 17 / Title 28. Every
store review and issue since has been about the small print, and on iPad the
#27 column cap made it a small block at the top of an empty screen.

- DailyReflectionPage sizes its text from the Xamarin bases (28 / 17 / 13)
  times the model's TextScale through a ScaleConverter; the 720 column scales
  the same way so the line length stays put. The OS text size still applies
  on top (verified in the iOS simulator; it needs a relaunch).
- Settings > Readings gets a Text Size picker (Normal, Large, Extra Large,
  Huge), persisted as ReadingTextSize and sent to the Reflection tab as an
  EntityMessage<ReadingTextSizeSelection>, like the secular toggle.
- Tab labels opt out of the OS text scale as explicit TextBlock content, so
  they no longer run into each other at the accessibility sizes. Not a
  ContentTemplate: Uno's ContentPresenter applies it to the Icon presenter
  too, which then rendered the label template instead of the icon.
- release_notes.txt rewritten for the next release.

Closes #70, closes #71. #69 stays open for the favorites half.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DxndQ1L7ruaSHzi9voExNb
(cherry picked from commit 5f0eba1)
At Normal the column is still 720px; it only widens with a larger Text Size.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DxndQ1L7ruaSHzi9voExNb
(cherry picked from commit 99129aa)
…ec 013 §D)

The other tabs had shrunk the same way as the reading (compared against the
2020 screenshots in images/ios): the Sober Time count and date went from 28
to HeadlineSmall 24 and the tagline from 22 italic to the unstyled 14; the
Settings rows from the iOS cells' 17 to BodyMedium 14 / BodySmall 12.

- SobrietyTimeModel projects the Text Size setting into its own TextScale,
  like DailyReflectionModel; the page binds the icon, date and count from 28
  and the tagline from 22 through ScaleConverter (no FeedView, so no Parent.).
- ScaleConverter treats a non-positive scale as unbound: the generated view
  model exposes the feed as 0 before its first value and these TextBlocks
  render before that.
- SettingsPage overrides BodyMediumFontSize (17) and BodySmallFontSize (15)
  in Page.Resources (Uno Themes lightweight styling), which also reaches the
  SettingsRows.xaml templates; page-scoped so the tab labels and the other
  pages keep the theme's sizes. Section headers, nav bar and tabs unchanged.
- Tests: SobrietyTimeModelTests (scale is 1 by default, follows the setting),
  ViewSurfaceTests pins the eleven scaled bindings, the two overrides and
  their absence from App.xaml.
- Spec 013 §D, AGENTS.md, release notes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DxndQ1L7ruaSHzi9voExNb
(cherry picked from commit c1d01d4)
…ot back to

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DxndQ1L7ruaSHzi9voExNb
(cherry picked from commit 1006b21)
FontStyle="Italic" (the reading's quote, the Sober Time tagline, the book
title in the copyright) rendered upright on the Skia heads: the Roboto the
Sdk pins (2.10.0-dev.9) ships no italic files. 2.10.0-dev.12 adds them.
Uno.Material only brings Roboto transitively, so the csproj references it
directly and Directory.Packages.props pins it through UnoFontsVersion
(central package management needs the PackageVersion entry).

Verified in the iOS 27 simulator: quote and book title italic.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DxndQ1L7ruaSHzi9voExNb
(cherry picked from commit c73571e)
The Material ComboBox popup is a flat Surface — the same brush as the
filled cards and the page — with no border or shadow, so an open menu
was indistinguishable from the rows under it. Pre-existing on the Sober
Time Display row; the Text Size picker added in this PR made it obvious
(iPad, Steve's screenshot).

DRSettingsComboBoxStyle now builds the dropdown as an MD menu surface:
an Uno.UI.Toolkit ElevatedView with the Toolkit card's elevation (6)
and corner radius (12), a translucent shadow, and the 1px OnSurfaceLow
outline the picker presenters already use, which is what carries the
edge in dark theme. PopupBorder stays the Popup's direct child (Uno
sizes it to the ComboBox) and is transparent; the ElevatedView owns the
background, since a null one draws no shadow.

Verified on the web head at phone width (light) and desktop width
(dark) for both the Text Size and Sober Time Display menus; the
simulator build for the iPad Pro 11" is updated. 58 services tests
pass (no ViewSurfaceTests pin this template).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DxndQ1L7ruaSHzi9voExNb
(cherry picked from commit c8253b1)
Steve's call on the device: the "— TWELVE STEPS AND TWELVE TRADITIONS,
p. 91" line under the quote read too heavy at the body size. It now
scales from 13, the same base as the copyright block, so it sits under
the quote the way a caption does. Still through ScaleConverter, so the
Text Size setting applies. Test pin, spec 013 and the page header
comment follow.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DxndQ1L7ruaSHzi9voExNb
(cherry picked from commit 2f40d96)
@github-actions

Copy link
Copy Markdown
Contributor

🌐 Web preview deployed

https://pr-76.dailyreflection.pages.dev

Built from af91811. Updates on every push.

@kazo0
kazo0 merged commit dfef8b3 into release/v4.0 Oct 13, 2026
9 checks passed
@kazo0
kazo0 deleted the steve-ops/backport/release/v4.0/pr-73 branch October 13, 2026 00:15
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.

1 participant