ContentView.swift
//
// ContentView.swift
// SwiftUITest
//
// Created by Cairocoders
//
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
ZStack {
Color("BgColor").edgesIgnoringSafeArea(.all)
VStack {
Spacer()
Image("home")
Spacer()
PrimaryButton(title: "Get Started")
NavigationLink(
destination: SignInView().navigationBarHidden(true),
label: {
Text("Sign In")
.font(.title3)
.fontWeight(.bold)
.foregroundColor(Color("PrimaryColor"))
.padding()
.frame(maxWidth: .infinity)
.background(Color.white)
.cornerRadius(50.0)
.shadow(color: Color.black.opacity(0.08), radius: 60, x: 0.0, y: 16)
.padding(.vertical)
})
.navigationBarHidden(true)
HStack {
Text("New around here? ")
Text("Sign in")
.foregroundColor(Color("PrimaryColor"))
}
}
.padding()
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct PrimaryButton: View {
var title: String
var body: some View {
Text(title)
.font(.title3)
.fontWeight(.bold)
.foregroundColor(.white)
.frame(maxWidth: .infinity)
.padding()
.background(Color("PrimaryColor"))
.cornerRadius(50)
}
}
SignInView.swift
//
// SignInView.swift
// SwiftUITest
//
// Created by Cairocoders
//
import SwiftUI
struct SignInView: View {
@State private var email: String = "" // by default it's empty
var body: some View {
ZStack {
Color("BgColor").edgesIgnoringSafeArea(.all)
VStack {
Spacer()
VStack {
Text("Sign In")
.font(.largeTitle)
.fontWeight(.bold)
.padding(.bottom, 30)
SocalLoginButton(image: Image(uiImage: #imageLiteral(resourceName: "apple")), text: Text("Sign in with Apple"))
SocalLoginButton(image: Image(uiImage: #imageLiteral(resourceName: "google")), text: Text("Sign in with Google").foregroundColor(Color("PrimaryColor")))
.padding(.vertical)
Text("or get a link emailed to you")
.foregroundColor(Color.black.opacity(0.4))
TextField("Work email address", text: $email)
.font(.title3)
.padding()
.frame(maxWidth: .infinity)
.background(Color.white)
.cornerRadius(50.0)
.shadow(color: Color.black.opacity(0.08), radius: 60, x: /*@START_MENU_TOKEN@*/0.0/*@END_MENU_TOKEN@*/, y: 16)
.padding(.vertical)
PrimaryButton(title: "Email me a signup link")
}
Spacer()
Divider()
Spacer()
Text("You are completely safe.")
Text("Read our Terms & Conditions.")
.foregroundColor(Color("PrimaryColor"))
Spacer()
}
.padding()
}
}
}
struct SignInView_Previews: PreviewProvider {
static var previews: some View {
SignInView()
}
}
struct SocalLoginButton: View {
var image: Image
var text: Text
var body: some View {
HStack {
image
.padding(.horizontal)
Spacer()
text
.font(.title2)
Spacer()
}
.padding()
.frame(maxWidth: .infinity)
.background(Color.white)
.cornerRadius(50.0)
.shadow(color: Color.black.opacity(0.08), radius: 60, x: /*@START_MENU_TOKEN@*/0.0/*@END_MENU_TOKEN@*/, y: 16)
}
}
