Skip to content

fix(mobile): keep Android tab icons sized with their labels under large text - #2507

Merged
DoodleBears merged 2 commits into
mainfrom
claude/project-thread-2n6vb4
Oct 21, 2026
Merged

DoodleBears merged 2 commits into
mainfrom
claude/project-thread-2n6vb4

Conversation

@DoodleBears

Copy link
Copy Markdown
Contributor

Why the change

With large system text on Android, the computer icon at the left of the Chats tabs is clipped instead of growing with the label / 安卓系统字体放大后,「聊天」顶部标签左侧的电脑图标被裁切,没有跟 label 一起放大。

Refs: follow-up to #2461 / #2499 (reported by Vain on a real Android phone).

Special things to note

  • Root cause: on Android, expo-symbols draws Material Symbols as a font Text (fontSize: size) inside a fixed size × size View. The Text follows the system font scale but the box doesn't, so at 2× text the glyph is twice its box and gets clipped.
  • Fix: new primitives/system-symbol (.android.tsx divides the glyph size by theme.fontScale and keeps the box at the requested size). HostGlyph and RowIcon now use it, so settings row icons and the chat-row computer mark are covered too.
  • Tab and Customize-computer preview icons now size from meta.line × theme.fontScale, so they track the label; default size is unchanged.
  • Merge risk: small, UI only, revert-safe. iOS path is unchanged apart from tab icon size following font scale.
  • Verification: tsc --noEmit, new test/system-symbol-android.test.tsx plus source-name / host-look / home-search / message-sheet-native / style-guard tests pass. pnpm lint passes after the changelog link. Native screenshots (Android light/dark at default and max text) are queued on the shared device lane and will be added here.
  • CI test plan: affected; no new config or repo-reading test.

Change outline

  • src/ui/primitives/system-symbol{,.android}.tsx (new)
  • HostGlyph, RowIcon → SystemSymbol
  • environment-pager.tsx, host-look-editor.tsx: icon size × fontScale
  • DESIGN.md: note on native symbols and label-aligned icons
  • Screenshots: pending device run (see above).

Generated by Claude Code

…ge text

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014UiRXqKRSQS39KzeJJnLcA
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014UiRXqKRSQS39KzeJJnLcA
@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 25 minutes.

Check out review usage here.

View limit details

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

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 05e93e5a-109b-4701-ab75-4ff0693eed1e
📥 Commits

Reviewing files that changed from the base of the PR and between cda84e7 and 7645fdf.

📒 Files selected for processing: 9
  • apps/mobile/DESIGN.md
  • apps/mobile/src/ui/primitives/row-icon.tsx
  • apps/mobile/src/ui/primitives/system-symbol.android.tsx
  • apps/mobile/src/ui/primitives/system-symbol.tsx
  • apps/mobile/src/ui/shell/environment-pager.tsx
  • apps/mobile/src/ui/shell/host-look-editor.tsx
  • apps/mobile/src/ui/shell/host-tile.tsx
  • apps/mobile/test/system-symbol-android.test.tsx
  • changes/2507-mobile-android-large-text-tab-icons.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@DoodleBears DoodleBears self-assigned this Oct 21, 2026
@DoodleBears
DoodleBears merged commit c130841 into main Oct 21, 2026
5 checks passed
@DoodleBears
DoodleBears deleted the claude/project-thread-2n6vb4 branch October 21, 2026 13:48
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.

2 participants