Skip to content

fix(mobile): polish Android toast styling and text scaling - #28586

Open
none23 wants to merge 2 commits into
pingdotgg:mainfrom
none23:t3/android-toast-font-scaling
Open

none23 wants to merge 2 commits into
pingdotgg:mainfrom
none23:t3/android-toast-font-scaling

Conversation

@none23

@none23 none23 commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Problem

On Android, changing the app's text size scales the settled/snoozed message but leaves much of the toast's icon, spacing, and Undo control fixed. Small text sits inside an oversized container, and larger text makes the surrounding elements look out of proportion.

The toast also has tight padding before the icon and mismatched rounding around Undo, leaving an uneven gap around the button.

Original Android toast with tight left padding and mismatched rounding around Undo highlighted

Change

Fix Android toast scaling and polish its rounding, spacing, and Undo button while preserving 48 dp touch targets. Icons and controls follow the app and system text scales, with compact padding at larger sizes, coordinated container and button corners, and more space before the icon. Large text can move the action onto a second row.

The change stays in the shared mobile toast component. iOS keeps its existing layout and controls.

Scope and approval

Focused fix for an obvious visual defect in the existing Android font-size setting. It changes toast sizing and visual styling, with no new settings, workflows, or backend behavior. The before/after captures below establish the defect without a separate issue.

Verification

  • vp run check:changed passed after rebasing onto current main.
  • Android 16 emulator captures cover app sizes 11, 16, and 22 pt, plus 150% system text at 16 and 22 pt. Messages, icons, and actions fit without clipping.
  • Snooze and settle Undo restored the threads. At 11 and 16 pt, taps outside Undo's visible pill but inside its 48 dp target also worked.
  • A temporary component-catalog fixture verified a four-line message and a description-only toast. The fixture was removed after verification.
  • Opus 5.5 reviewed the native captures and requested no further changes. iOS was not runtime-tested.
Text size Before After
11 pt Snoozed Before 11 pt Snoozed cropped toast After 11 pt Snoozed cropped toast
16 pt Snoozed Before 16 pt Snoozed cropped toast After 16 pt Snoozed cropped toast
22 pt Snoozed Before 22 pt Snoozed cropped toast After 22 pt Snoozed cropped toast
16 pt + Android 150% Snoozed Before 16 pt Android 150%  Snoozed cropped toast After 16 pt Android 150%  Snoozed cropped toast
22 pt Settled Before 22 pt Settled cropped toast After 22 pt Settled cropped toast
Full screenshots
Text size Before After
11 pt Snoozed Original Android snoozed-thread toast at 11pt Updated Android snoozed-thread toast at 11pt
16 pt Snoozed Original Android snoozed-thread toast at 16 pt Updated Android snoozed-thread toast at 16pt
22 pt Snoozed Original Android snoozed-thread toast at 22pt Updated Android snoozed-thread toast at 22pt
16 pt + Android 150% Snoozed Original Android snoozed-thread toast at 16pt-system150 Updated Android snoozed-thread toast at 16pt-system150
22 pt Settled Before 22 pt Settled full screenshot After 22 pt Settled full screenshot
22 pt + Android 150% Long messages at 11 pt
Updated Android toast at 22 pt and 150 percent system text Updated Android toasts with long messages at 11 pt

Implemented by GPT-6 Astra using the Codex harness. Design reviewed by Claude Opus 5.5 using Claude Agent.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Nov 1, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at fe34b65

Macroscope's review found this PR approvable — Android toasts now scale their icons, spacing, and controls with text size while retaining 48 dp touch targets. The change is presentation-only, with reported Android scaling and Undo verification and no backend or saved-preference changes.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Walkthrough

ToastContent uses scaled typography to size Android toast layouts and controls. Android actions and dismissal controls use explicit Pressable touch targets. Other platforms use Button actions and retain IconButton dismissal controls.

Changes: Toast Layout and Controls

Layer / File(s) Summary
Typography scaling and action layout
apps/mobile/src/components/ui/Toast.tsx
ToastContent derives Android sizing from scaled footnote typography. It uses platform-specific scaling for inline-action selection and renders Android actions with scaled Pressable controls.
Surface and dismissal controls
apps/mobile/src/components/ui/Toast.tsx
The toast surface, spacing, indicators, symbols, and Android dismissal controls use scaled sizing. Other platforms retain their existing dismissal control component.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Possibly related PRs

Suggested reviewers: shivamhwp, pixpmusic, saphid

Merge Risk: Minimal · up to c4299

Android toast controls scale with text size. No merge-blocking risk was identified.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title "fix(mobile): polish Android toast styling and text scaling" names the main change. The changeset updates the shared mobile Toast component so Android toast sizing, spacing, rounding, and th…
Description check Passed The description follows the repository template. It contains Problem, Change, Scope and approval, and Verification sections. The Problem and Change sections state the defect and the fix clearly. The S…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title "fix(mobile): polish Android toast styling and text scaling" names the main change. The changeset updates the shared mobile Toast component so Android toast sizing, spacing, rounding, and the Undo control scale with app and system text size. The title follows conventional commit form and matches the stated objective.

Full details: Description check

Explanation

The description follows the repository template. It contains Problem, Change, Scope and approval, and Verification sections. The Problem and Change sections state the defect and the fix clearly. The Scope section explains why no prior issue is linked, using the small-fix exemption. The Verification section lists concrete checks on Android 16 at several text sizes, with before/after screenshots and a note on what was not tested (iOS runtime). The template's agent attribution line is also present.

Finishing Touches
Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

ast-grep (0.51.1)

ast-grep could not parse rule config: /ast-grep-rules/ast-grep-essentials/rules/csharp/security/weak-cipher-tripledes-csharp.yml

Usage-based review receipt

Note

This review was completed with usage-based billing: files reviewed beyond your plan's included limits are billed at $0.25/file. View usage-based billing.

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.
Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between fe34b65 and c429954.

Files selected for processing: 1
  • apps/mobile/src/components/ui/Toast.tsx

Limit details: You’ve used all 10 included reviews currently available.

@none23 none23 changed the title fix(mobile): keep Android toasts proportional to text size fix(mobile): polish Android toast styling and text scaling Nov 1, 2026
@maria-rcks

maria-rcks commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Note

Written by gpt-6.1-sol on behalf of Maria

Verified on Android emulator (API 35) against a real dev server

Verified head fe34b6501212f2e31f5f6e977d7fec6d2dd3b412 on the t3 Android API 35 emulator with the cached native dev client, Metro, and an isolated dev server. Used the real server project and two completed Codex gpt-6.1-sol turns through the local proxy. No mocks or demo data.

At 22 pt, settle and snooze showed readable scaled icons and Undo controls. Undo restored each thread in the client; the server projection also returned to active with no snooze. At 22 pt plus Android 150% font scaling, the action moved onto its own row and remained readable and tappable.

The matched large-text comparison below uses the same project and threads. For the baseline, rebuilt Metro with only Toast.tsx replaced by its github/main version, which matches this PR's parent. The baseline leaves the icon small beside large text. The PR scales the icon and aligns the action's spacing and corners. Restored the exact PR file afterward; no source changes or commits.

before: original toast at 22 pt and Android 150%

after: scaled toast at 22 pt and Android 150%

snooze toast at 22 pt

settle and undo restore the real Codex thread at 22 pt

All 29 existing CI checks were successful when inspected. This pass changed no code, so no new check run was submitted.

Not verified

  • iOS cannot run on this Linux VM.
  • 11 pt, every toast variant, TalkBack announcements, and the outer edge of the 48 dp touch targets were not exercised.

Merge conflict resolution

Merged current main without rebasing in c429954aa7998228c597d2962c5e8bba05bf6fce and pushed to the existing contributor branch without force. Android toast scaling and controls are unchanged. Kept main's iOS radius 28, p-2 surface padding, compact action, and inline-action leading inset. The PR still changes only Toast.tsx (108 additions, 16 deletions against main).

Blacksmith vp run check:changed 61c3794c32b0eeebfac09add43e403618c65d2d7 passed: format, lint, knip, mobile and scripts typechecks, and six existing React Compiler checks. Two independent source reviews approved the merged head with no findings. All 29 checks on the merged head passed. GitHub reports CLEAN and MERGEABLE, and the latest bot review has no actionable findings.

Native runtime was not repeated on this merged head: device access is disabled in this VM and no Android device is attached. The earlier Android evidence above covers the unchanged Android implementation. iOS remains unverified.

# Conflicts:
#	apps/mobile/src/components/ui/Toast.tsx

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

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants