Hi,
I’m experimenting with the new tabViewBottomAccessory API and I’m running into an inconsistency with how colors are handled compared to the native tab bar items.
Context
When using a TabView, the system tab bar automatically adapts its foreground color (icons and labels) based on the background content (light/dark, images, etc.). This is the expected “vibrancy” behavior.
However, when adding content via .tabViewBottomAccessory, the foreground color does not seem to follow the same logic.
Minimal example :
import SwiftUI
struct ContentView: View {
var body: some View {
TabView {
Tab("Home", systemImage: "house") {
Text("Home")
.frame(maxWidth: .infinity, maxHeight: .infinity)
.ignoresSafeArea()
}
Tab("New", systemImage: "squareshape.split.2x2") {
Text("New")
.frame(maxWidth: .infinity, maxHeight: .infinity)
.foregroundStyle(.white)
.background(Color.black)
.ignoresSafeArea()
}
}
.tabViewBottomAccessory {
HStack {
Image(systemName: "command.square")
Text("Message test")
Spacer()
Image(systemName: "play.fill")
}
.padding(.horizontal, 20)
.foregroundStyle(.primary)
}
}
}
Observed behavior
Tab bar icons and labels correctly switch between dark and light depending on the background.
Content inside .tabViewBottomAccessory remains black, even when .foregroundStyle(.primary) is used.
Expected behavior
I would expect .tabViewBottomAccessory content to:
Either inherit the same vibrancy/foreground adaptation as the tab bar items
Or have a documented way to match that behavior
I want to reuse the Apple Music Navigation
Topic:
UI Frameworks
SubTopic:
SwiftUI
0
0
44