damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

GradientButtonStyle.swift (1309B)


      1 //
      2 //  GradientButtonStyle.swift
      3 //  damus
      4 //
      5 //  Created by eric on 5/20/23.
      6 //
      7 
      8 import SwiftUI
      9 
     10 struct GradientButtonStyle: ButtonStyle {
     11     let padding: CGFloat
     12 
     13     init(padding: CGFloat = 16.0) {
     14         self.padding = padding
     15     }
     16 
     17     func makeBody(configuration: Self.Configuration) -> some View {
     18         return configuration.label
     19             .padding(padding)
     20             .foregroundColor(Color.white)
     21             .background {
     22                 RoundedRectangle(cornerRadius: 12)
     23                     .fill(PinkGradient)
     24             }
     25             .scaleEffect(configuration.isPressed ? 0.95 : 1)
     26     }
     27 }
     28 
     29 
     30 struct GradientButtonStyle_Previews: PreviewProvider {
     31     static var previews: some View {
     32         VStack {
     33             Button(action: {
     34                 print("dynamic size")
     35             }) {
     36                 Text(verbatim: "Dynamic Size")
     37             }
     38             .buttonStyle(GradientButtonStyle())
     39             
     40             
     41             Button(action: {
     42                 print("infinite width")
     43             }) {
     44                 HStack {
     45                     Text(verbatim: "Infinite Width")
     46                 }
     47                 .frame(minWidth: 300, maxWidth: .infinity, alignment: .center)
     48             }
     49             .buttonStyle(GradientButtonStyle())
     50             .padding()
     51         }
     52     }
     53 }