Files
Pocket-Poster/Pocket Poster/Extensions/Views/Buttons/TintedButton.swift
T

57 lines
1.5 KiB
Swift

//
// 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