Button icon in List to match style?

I am trying to figure out how to set a button's label icon to match the button style when inside a list.

These four buttons display differently depending on context – if put inside a List or a VStack:

Button(role: .destructive) {} label: {
    Label("Test", systemImage: "figure")
}.buttonStyle(.automatic)

Button(role: .destructive) {} label: {
    Label("Test", systemImage: "figure")
}.buttonStyle(.bordered)

Button {} label: {
    Label("Test", systemImage: "figure")
}.buttonStyle(.borderedProminent)

Button(role: .destructive) {} label: {
    Label("Test", systemImage: "figure")
}.buttonStyle(.borderedProminent)

Inside a List, which looks weird in my opinion.

For reference, this is what they look like inside a VStack, which is what I'd expect:

I am not sure if this is intentional or a bug. If there are any workaround which do not explicitly set a specific color, like .foreground(.red), please let me know.

Problem is that buttons in List receive all the defaults style attributes of the List.

Hence you have to set manually each style element.

Or it may be easier to put the buttons in a ScrollView instead of List.

Button icon in List to match style?
 
 
Q