import SwiftUI struct WatchOSButtonStyle: ButtonStyle { var backgroundGradient = LinearGradient(colors: [ Color(red: 0.721, green: 0.341, blue: 1), Color(red: 0.486, green: 0.545, blue: 0.953), Color(red: 0.262, green: 0.733, blue: 0.914) ], startPoint: .topLeading, endPoint: .bottomTrailing) var foregroundColor: Color = .white var fontSize: Font = .title2 private var is40mm: Bool { let size = WKInterfaceDevice.current().screenBounds.size return size.height < 225 && size.width < 185 } func makeBody(configuration: Configuration) -> some View { configuration.label .font(fontSize) .fontWeight(is40mm ? .medium : .semibold) .padding(is40mm ? 6 : 8) .background( backgroundGradient.opacity(configuration.isPressed ? 0.8 : 1.0) ) .clipShape(Circle()) .animation(.easeInOut(duration: 0.1), value: configuration.isPressed) } } struct PressableIconButtonStyle: ButtonStyle { func makeBody(configuration: Configuration) -> some View { configuration.label .background(Color.clear) .opacity(configuration.isPressed ? 0.3 : 1.0) // Change opacity when pressed .animation(.easeInOut(duration: 0.25), value: configuration.isPressed) // Smooth transition } }