iOS 27 beta 1: .scrollEdgeEffectStyle(.soft) renders fully transparent above safeAreaBar

Feedback ID: FB23086400

On iOS 27 beta 1, .scrollEdgeEffectStyle(.soft, for: .top) on a List underneath a custom .safeAreaBar(edge: .top) no longer renders the progressive fade-blur. The top edge is fully transparent — scrolled rows pass under the bar with no visual treatment at all, as if scrollEdgeEffectDisabled() had been applied.

What I've verified so far:

  • .hard renders correctly in the exact same hierarchy; only .soft is affected.
  • The same binary works correctly on iOS 26.x Xcode preview. I'm building with Xcode 26.3 (iOS 26 SDK).

Minimal reproduction:

import SwiftUI

struct EdgeEffectRepro: View {
    enum Style: String, CaseIterable, Identifiable {
        case automatic, soft, hard
        var id: Self { self }

        var value: ScrollEdgeEffectStyle {
            switch self {
            case .automatic: .automatic
            case .soft: .soft
            case .hard: .hard
            }
        }
    }

    @State private var style: Style = .soft
    @State private var useSystemBarOnly = false

    var body: some View {
        NavigationStack {
            List(0..<60, id: \.self) { i in
                Text("Row \(i)")
                    .frame(maxWidth: .infinity, alignment: .leading)
                    .listRowBackground(
                        i.isMultiple(of: 2)
                            ? Color.orange.opacity(0.45)
                            : Color.teal.opacity(0.45)
                    )
            }
            .scrollIndicators(.hidden)
            .scrollEdgeEffectStyle(style.value, for: .top)
            .safeAreaBar(edge: .top) {
                if !useSystemBarOnly {
                    VStack(spacing: 8) {
                        HStack {
                            Text("Custom Top Bar")
                                .font(.system(size: 28, weight: .bold))
                            Spacer()
                        }
                        HStack {
                            Text("Second row (e.g. date range picker)")
                                .font(.caption)
                                .foregroundStyle(.secondary)
                            Spacer()
                        }
                    }
                    .padding(.horizontal)
                }
            }
            .safeAreaInset(edge: .bottom) {
                VStack(spacing: 8) {
                    Picker("Edge effect style", selection: $style) {
                        ForEach(Style.allCases) { Text($0.rawValue).tag($0) }
                    }
                    .pickerStyle(.segmented)

                    Toggle("System bar only (control group)", isOn: $useSystemBarOnly)
                        .font(.caption)
                }
                .padding()
                .background(.regularMaterial)
            }
            .navigationTitle("EdgeEffect Repro")
            .navigationBarTitleDisplayMode(.inline)
        }
    }
}

Steps: run on iOS 27 beta 1, set the picker to soft, scroll rows under the bar.

Expected: fade-blur as on iOS 26.

Actual: fully transparent. Switch to hard: renders fine.

Answered by DTS Engineer in 899782022

Hello all,

Thank you for reporting, and for this easy to demonstrate sample project @NSCruiser.

I have related all of these reports and made sure they were seen by the relevant engineering team.

Generally, updates will be provided to you through Feedback Assistant. There, you can track if the report is still being investigated, has a potential identified fix, or has been resolved in another way.

In the meantime, continue using this thread to discuss workarounds or share your updates as you test against versions that are released.

For more details on Feedback Status, please see “Understanding the Status of Your Feedback” linked here: https://developer.apple.com/bug-reporting/status

Thank you.

 Travis

Still reproducible on beta 2. Additionally, .safeAreaBar also renders without the soft blur background. When keyboard activates / hides, the blur briefly flickers by shows up and hides again as the safeAreaBar content move with the keyboard.

Still reproducible on Beta 3.

I am seeing the same issue. I duped your Feedback.

Still reproducible on Beta 4.

Still reproducible on Beta 4 and it also affects UIKit

Hello all,

Thank you for reporting, and for this easy to demonstrate sample project @NSCruiser.

I have related all of these reports and made sure they were seen by the relevant engineering team.

Generally, updates will be provided to you through Feedback Assistant. There, you can track if the report is still being investigated, has a potential identified fix, or has been resolved in another way.

In the meantime, continue using this thread to discuss workarounds or share your updates as you test against versions that are released.

For more details on Feedback Status, please see “Understanding the Status of Your Feedback” linked here: https://developer.apple.com/bug-reporting/status

Thank you.

 Travis

iOS 27 beta 1: .scrollEdgeEffectStyle(.soft) renders fully transparent above safeAreaBar
 
 
Q