Skip to content

fix(ios): restore opaque scroll-edge appearance on iOS 26+- #567 - #612

Merged
thiagobrez merged 5 commits into
callstack:mainfrom
oleksandrzavarzin-callstack:codex/issue-532-ios26-scroll-edge
Oct 30, 2026
Merged

thiagobrez merged 5 commits into
callstack:mainfrom
oleksandrzavarzin-callstack:codex/issue-532-ios26-scroll-edge

Conversation

@oleksandrzavarzin-callstack

@oleksandrzavarzin-callstack oleksandrzavarzin-callstack commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #532. It is a continuation of @thiagobrez's work from #567.

Summary

On iOS 26+, the Liquid Glass tab bar does not draw the UITabBarAppearance background. So scrollEdgeAppearance, translucent={false} and tabBarStyle.backgroundColor had no effect. #567 sets UITabBar.backgroundColor instead.

On iOS 26.5 the glass bar changes its own traits to dark over colored content, so the dynamic .systemBackground became black. This PR resolves the bar color against the window's traits, and applies it again when the light/dark mode changes.

Changes on top of #567:

  • The verification artifacts (artifacts/issue-532/) are removed from the repository.
  • The branch is merged with main.
  • TabViewImpl.swift resolves the bar color with tabBar.window?.traitCollection, and calls updateTabBarAppearance on onChange(of: colorScheme).

Results

Tested on iPhone 17 simulators with a repro that has colored rows under the bar.

Case 1.5.0 #567, iOS 26.5 This PR, iOS 26.5 This PR, iOS 27.0
opaque, translucent={false}, light glass dark band solid white solid white
opaque, translucent={false}, dark glass dark gray band tinted by the content solid black solid black
custom color glass solid color solid color solid color
default, transparent glass glass glass glass

In dark mode, a light custom color gets light icons, because dark mode uses light label colors.

Screenshots (iOS 26.5)

Rows:

  • default
  • opaque
  • transparent
  • translucent false
  • color + default
  • color + opaque
  • color + transparent.

Left: top of the list. Right: bottom of the list.

1.5.0, light 1.5.0, dark
image image
#567, light #567, dark
image image
This PR, light This PR, dark
image image

@thiagobrez
thiagobrez added this pull request to the merge queue Oct 30, 2026
Merged via the queue into callstack:main with commit 229e659 Oct 30, 2026
6 checks passed
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.

scrollEdgeAppearance seems to have no effect on iOS 26+

2 participants