// // TintedButton.swift // Pocket Poster // // Created by lemin on 5/31/25. // import SwiftUI struct TintedButton: ButtonStyle { var color: Color var material: UIBlurEffect.Style? var fullwidth: Bool = false func makeBody(configuration: Configuration) -> some View { ZStack { if fullwidth { configuration.label .padding(15) .frame(maxWidth: .infinity) .background(material == nil ? AnyView(color.opacity(0.2)) : AnyView(MaterialView(material!))) .cornerRadius(8) .foregroundColor(color) } else { configuration.label .padding(15) .background(material == nil ? AnyView(color.opacity(0.2)) : AnyView(MaterialView(material!))) .cornerRadius(8) .foregroundColor(color) } } } init(color: Color = .blue, fullwidth: Bool = false) { self.color = color self.fullwidth = fullwidth } init(color: Color = .blue, material: UIBlurEffect.Style, fullwidth: Bool = false) { self.color = color self.material = material self.fullwidth = fullwidth } } #if DEBUG struct FullwidthTintedButton_Previews: PreviewProvider { static var previews: some View { Button("Exaple") { } .buttonStyle(TintedButton(color: .red, fullwidth: true)) .padding() } } #endif