Skip to content

fix(mobile): Android menus use the theme's card color and rounded corners - #28034

Open
Umais-Adeed wants to merge 1 commit into
pingdotgg:mainfrom
Umais-Adeed:fix/mobile-android-menu-surface
Open

Umais-Adeed wants to merge 1 commit into
pingdotgg:mainfrom
Umais-Adeed:fix/mobile-android-menu-surface

Conversation

@Umais-Adeed

Copy link
Copy Markdown
Contributor

Problem

Android dropdown menus (the thread filter and other anchored menus) draw on the theme's raised surface with Material's default 4dp corners. Several themes keep that surface nearly neutral, so in Grove dark the menu renders gray over a green screen. Its square corners also don't match the rounded cards and popovers used everywhere else in the app.

Change

  • Menus use --color-grouped-card, the theme-tinted card color already used by settings rows, so they follow the active theme. Material You still maps it to its own surface container.
  • Menus use a 16dp corner radius that scales with text size. This matches the composer's floating command popover. The value is added to androidControlSizing and applied to both the Compose DropdownMenu (cornerRadius) and the inline keyboard-visible variant.

3 files, +11/−4. Android only. iOS uses the native menu and is unchanged.

Scope and approval

This is a small visual consistency fix: menus should use the app's theme colors and corner radius instead of Material defaults. It doesn't change any behavior, entries or workflow. It's also proposed in Ideas discussion #27985, together with a separate project-logo change that I'm holding until it's approved. Related: #14219 (Android looking inconsistent with the rest of the app).

Verification

Tested on an Android emulator (API 35) with a dev client and the showcase demo environments, comparing upstream 80a2351 to this branch:

  • Grove dark: the menu was gray and now uses the green-tinted card. Corners are rounded.
  • Ocean dark: the menu now uses the blue-tinted card.
  • Root menu and Project submenu both checked. Selecting items still works.
Before After
Grove, Project submenu
Ocean, filter menu

Not checked: light themes, Material You dynamic color on a physical device, and the inline keyboard-visible variant (same token and radius, so the change is identical by code).

Done with Claude Opus 5.5 in Claude Code.

🤖 Generated with Claude Code

…ners

Android dropdown menus drew on the theme's raised surface with Material's
4dp corners. Several themes keep that surface nearly neutral (Grove dark
renders gray over a green screen), so menus looked detached from the app.

Menus now use the grouped-card color shared by settings rows, and the same
16dp radius as the composer's floating command popover, scaled with text size.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Oct 31, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — Android menus switch to the theme’s grouped-card color and scaled 16dp rounded corners. This is a low-risk visual change, but a human must confirm the new default appearance.

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

@coderabbitai

coderabbitai Bot commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between e5909e5 and 2c0e73b.

Files selected for processing: 3
  • apps/mobile/src/components/ui/AndroidAnchoredMenu.tsx
  • apps/mobile/src/components/ui/MenuPopup.android.tsx
  • apps/mobile/src/lib/androidControlSizing.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Walkthrough

Android menu sizing now provides a shared corner radius. Both Android menu components use that radius and the grouped-card color.

Changes: Android menu styling

Layer / File(s) Summary
Shared menu corner radius
apps/mobile/src/lib/androidControlSizing.ts
resolveAndroidControlSizing adds a menu corner radius calculated by rounding 16 * scale.
Apply shared menu styling
apps/mobile/src/components/ui/AndroidAnchoredMenu.tsx, apps/mobile/src/components/ui/MenuPopup.android.tsx
Both menus use the shared corner radius and change their background color from the card-alt color to the grouped-card color.

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

Change: Bug fix

Suggested labels: bugfix, size:XS

Suggested reviewers: juliusmarminge, maria-rcks, pixpmusic

Merge Risk: Minimal · up to 2c0e7

The Android menu styling change presents no verified merge-blocking risk.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title clearly summarizes the Android menu color and corner-radius changes.
Description check Passed The description covers the problem, changes, scope rationale, verification results, and untested cases. It includes before-and-after image references, although the escaped image markup may not render …
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: Description check

Explanation

The description covers the problem, changes, scope rationale, verification results, and untested cases. It includes before-and-after image references, although the escaped image markup may not render as images.

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

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:S 10-29 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.

1 participant