How to create an overlay with padding that ignores the safe area?

Was it always so tricky to ignore the bottom safe area? Seems like iOS 26 makes this much harder.

I've tried many variations of ignoresSafeArea, safeAreaInset, safeAreaBar, etc. Nothing seems to work. As soon as I add padding, the bottom safe area crashes the party.

This is what I want to achieve:

This is what I get right now:

struct ContentView: View {
    var body: some View {
        List {
            Text("Content")
        }
        .overlay(alignment: .bottom) {
            content
        }
    }
    
    var content: some View {
        VStack {
            Text("Custom Container")
        }
        .frame(maxWidth: .infinity)
        .frame(height: 400)
        .background(Color.gray, in: .rect(corners: .concentric, isUniform: true))
        .padding(15)
    }
}

Hi, if you put .ignoresSafeArea() after the .overlay. it'll work.

struct ContentView: View {
    var body: some View {
        List {
            Text("Content")
        }
        .overlay(alignment: .bottom) {
            content
        }
        .ignoresSafeArea()
    }
    
    var content: some View {
        VStack {
            Text("Custom Container")
        }
        .frame(maxWidth: .infinity)
        .frame(height: 400)
        .background(Color.gray, in: .rect(corners: .concentric, isUniform: true))
        .padding(15)
    }
}

If you only want to ignore the bottom edges use .ignoresSafeArea(.all, edges: .bottom)

List {
    Text("Content")
}
.overlay(alignment: .bottom) {
     content
}
.ignoresSafeArea(.all, edges: .bottom)

This is working, but also breaks the safe area of the List. I guess this is fine because I would disabled scrolling anyway.

How to create an overlay with padding that ignores the safe area?
 
 
Q