Since #426 and #430, the top chrome is transparent and content shows through it properly. The bottom is not, and the two should match.
The asymmetry is in the code
The navigation bar has a full appearance path, including clearing it so the bar is transparent when a screen asks for no background (CraftNativeScreen.swift):
navigationItem.standardAppearance = nil
navigationItem.scrollEdgeAppearance = nil
...
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()The tab bar has none. UITabBarAppearance does not appear anywhere in the iOS templates; the tab bar only ever receives a tint and a hidden flag:
tabBar.tintColor = chrome.tint ?? config.tintColor.flatMap { UIColor(hex: $0) } ?? view.tintColorSo it keeps UIKit's default, which on iOS 26 is the floating glass backdrop, and content behind it is tinted and blurred even on a screen that is otherwise fully edge to edge.
It is not the scroll edge effect
Worth stating, because that was the obvious suspect and it is wrong. The band is static. Scrolling the same screen a long way, sampling the same columns before and after:
- content column: differs in 225 of 300 samples, so the view definitely scrolled
- bottom band, left gutter: differs in 0 of 47 samples, pixel for pixel identical
A scroll edge effect varies with scroll position by definition, so this is not one - bottomEdgeEffect.isHidden = tabbedScroll is doing its job. What remains is the bar's own material.
Measured on a light screen, iPhone 17 Pro, iOS 26.5, Craft 0.0.395: a white card fades from #ffffff to #fafafa over the ~33pt approaching the bar, and the page background under the pill reads #e6e6eb against #f2f2f7 elsewhere.
The ask
Give the tab bar the same appearance treatment the navigation bar already gets, so a screen that is edge to edge is edge to edge at both ends rather than only at the top. A UITabBarAppearance configured transparent, cleared by the same rule that clears the navigation bar's, would make the two consistent.
If iOS 26 constrains how far the floating tab bar's material can be removed, that is worth saying plainly in the issue, since it would mean the bottom can never fully match the top and app authors should stop expecting it to.
Why this is not fixable downstream
A Stacks application carries no Swift of its own - the iOS shell is generated from the Craft package at build time - so the tab bar's appearance can only be set here.