Introduce initial UI for connecting to networks

This commit is contained in:
Conrad Kramer 2024-02-24 09:49:07 -08:00
parent 51fd638b72
commit 0fe630878d
33 changed files with 1458 additions and 321 deletions

View file

@ -0,0 +1,50 @@
import SwiftUI
struct FloatingButtonStyle: ButtonStyle {
static let duration = 0.08
var color: Color
var cornerRadius: CGFloat
func makeBody(configuration: Configuration) -> some View {
configuration.label
.font(.headline)
.foregroundColor(.white)
.frame(minHeight: 48)
.padding(.horizontal)
.background(
RoundedRectangle(cornerRadius: cornerRadius)
.fill(
LinearGradient(
colors: [
configuration.isPressed ? color.opacity(0.9) : color.opacity(0.9),
configuration.isPressed ? color.opacity(0.9) : color
],
startPoint: .init(x: 0.2, y: 0),
endPoint: .init(x: 0.8, y: 1)
)
)
.background(
RoundedRectangle(cornerRadius: cornerRadius)
.fill(configuration.isPressed ? .black : .white)
)
)
.shadow(color: .black.opacity(configuration.isPressed ? 0.0 : 0.1), radius: 2.5, x: 0, y: 2)
.scaleEffect(configuration.isPressed ? 0.975 : 1.0)
.padding(.bottom, 2)
.animation(
configuration.isPressed ? .easeOut(duration: Self.duration) : .easeIn(duration: Self.duration),
value: configuration.isPressed
)
}
}
extension ButtonStyle where Self == FloatingButtonStyle {
static var floating: FloatingButtonStyle {
floating()
}
static func floating(color: Color = .accentColor, cornerRadius: CGFloat = 10) -> FloatingButtonStyle {
FloatingButtonStyle(color: color, cornerRadius: cornerRadius)
}
}