Skip to content

fix(mobile): opaque header islands and app-colour chip text before iOS 26 - #2513

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

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

Conversation

@DoodleBears

@DoodleBears DoodleBears commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Vain · project thread

Why the change

Follow-up to #2466. In the iOS 18 shots from the XS Max, the header's Back, title chip and computer button are too transparent, so message text behind the chat title stays readable and competes with it. In dark mode the Bot's name is also drawn in black on the dark chip.

Refs #2466

Special things to note

  • Merge risk: very low, iOS < 26 only. The iOS 26+ glass header keeps the native look and the system label colour. Android keeps its frosted fill and fg text. Revert is one or two commits.
  • Verification: apps/mobile vitest (1036 pass), tsc --noEmit, oxlint, oxfmt. The device recheck is queued for the next iOS batch.
  • CI test plan: affected (mobile only).

Change outline

  • headerGlassFill's non-glass fill uses the opaque raised.fill on iOS instead of frosted(raised.fill), which is translucent with no blur behind it before iOS 26.
  • barLabelStyle (the system label colour) applies only with the glass header. On our own opaque chip, the text uses the theme's fg, so it follows the app's appearance and not the system's.
  • DESIGN.md updated.

Before (main 2b82975, XS Max iOS 18.1.1, dark): the chip is see-through and the name is black.

After: pending the XS Max batch (light/dark).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Q2peBu5V6uF4Woh6wjh7Sj

On the XS Max (iOS 18) the frosted header islands let message text show
through the title chip and compete with it, worse in dark. There is no
blur behind them before iOS 26, so give them the opaque raised fill.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q2peBu5V6uF4Woh6wjh7Sj
@DoodleBears DoodleBears self-assigned this Oct 21, 2026
The XS Max shots showed a black Bot name on the dark chip: the system
label colour follows the system appearance, while our own chip fill
follows the app's. Use label only with the iOS 26 glass header.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q2peBu5V6uF4Woh6wjh7Sj
@DoodleBears DoodleBears changed the title fix(mobile): opaque header islands before iOS 26 fix(mobile): opaque header islands and app-colour chip text before iOS 26 Oct 21, 2026
@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 22 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: d9fa7de4-2a27-463f-b5a7-15698bfe7c33
📥 Commits

Reviewing files that changed from the base of the PR and between 7279450 and 48d75ed.

📒 Files selected for processing: 3
  • apps/mobile/DESIGN.md
  • apps/mobile/src/ui/chat/header-chrome.tsx
  • apps/mobile/src/ui/chat/native-header.ts
  • 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 merged commit a99be9a into main Oct 21, 2026
11 checks passed
@DoodleBears
DoodleBears deleted the claude/project-thread-pnhkr2 branch October 21, 2026 15:24
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