What determines the size of a UIScrollEdgeElementContainerInteraction with a hard edge effect?

I've got an iOS app with a custom top toolbar view that uses a UIScrollEdgeElementContainerInteraction to achieve the iOS 26 progressive blur background. It's over top of a web view, and I've set the top edge effect style on its scroll view to .hard so the toolbar's edges are more defined.

I'm noticing that the blur doesn't extend fully to the bottom edge of the toolbar, and I'm curious to know if this is a bug or expected behavior. If the latter, what exactly are the details of what's expected? What determines the bottom extent of the blur?

I've got this result in a sample project on iOS 26.0. The white border is the label, and the red border is the title bar view itself. Note that the Daring Fireball logo visible inside the bounds of the bar view, and is cut off at the bottom edge of the label.

This is the code from the demo app that produced the screenshot.

let config = WKWebViewConfiguration()
        let webView = WKWebView(frame: .zero, configuration: config)
        self.view.addSubview(webView)
        
        webView.translatesAutoresizingMaskIntoConstraints = false
        webView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true;
        webView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true;
        webView.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true;
        webView.rightAnchor.constraint(equalTo: self.view.rightAnchor).isActive = true;
        
        webView.scrollView.topEdgeEffect.style = .hard
        
        webView.load(URLRequest(url: URL(string: "https://daringfireball.net")!))
        
        let barView = UIView()
        self.view.addSubview(barView)
        barView.translatesAutoresizingMaskIntoConstraints = false
        barView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true;
        barView.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
        barView.rightAnchor.constraint(equalTo: self.view.rightAnchor).isActive = true
        
        let edgeEffect = UIScrollEdgeElementContainerInteraction()
        edgeEffect.scrollView = webView.scrollView
        edgeEffect.edge = .top
        barView.addInteraction(edgeEffect)
        
        barView.layer.borderColor = UIColor.red.cgColor
        barView.layer.borderWidth = 1
        
        let titleLabel = UILabel()
        barView.addSubview(titleLabel)
        titleLabel.translatesAutoresizingMaskIntoConstraints = false
        titleLabel.leftAnchor.constraint(equalTo: barView.leftAnchor).isActive = true
        titleLabel.rightAnchor.constraint(equalTo: barView.rightAnchor).isActive = true
        titleLabel.bottomAnchor.constraint(equalTo: barView.bottomAnchor, constant: -20).isActive = true
        titleLabel.topAnchor.constraint(equalTo: barView.safeAreaLayoutGuide.topAnchor, constant: 8).isActive = true
        
        titleLabel.textAlignment = .center
        titleLabel.text = "Title Here"
        titleLabel.layer.borderColor = UIColor.green.cgColor
        titleLabel.layer.borderWidth = 1

This is slightly different on iOS 26.1 beta 4. The initial page load still displays the same issue, but if you tap a link somewhere on the page and navigate, the blur updates to extend down to the bottom of the bar view.

FB20756572

What determines the size of a UIScrollEdgeElementContainerInteraction with a hard edge effect?
 
 
Q