67 lines
2.0 KiB
Swift
67 lines
2.0 KiB
Swift
import SwiftUI
|
|
|
|
struct WelcomeStepView: View {
|
|
var onNext: () -> Void
|
|
|
|
var body: some View {
|
|
VStack(spacing: 32) {
|
|
Spacer()
|
|
|
|
AppIconPlaceholder(size: 120)
|
|
|
|
VStack(spacing: 12) {
|
|
Text("onboarding_welcome_title")
|
|
.font(.mealMoodH1)
|
|
.foregroundColor(.mealMoodTextPrimary)
|
|
|
|
Text("onboarding_welcome_subtitle")
|
|
.font(.mealMoodBody)
|
|
.foregroundColor(.mealMoodTextSecondary)
|
|
.multilineTextAlignment(.center)
|
|
}
|
|
|
|
Image(systemName: "figure.2.and.child.holdinghands")
|
|
.font(.system(size: 80))
|
|
.foregroundStyle(
|
|
LinearGradient(
|
|
colors: [.mealMoodCoral, .mealMoodMint],
|
|
startPoint: .topLeading,
|
|
endPoint: .bottomTrailing
|
|
)
|
|
)
|
|
.padding(.vertical, 20)
|
|
|
|
VStack(alignment: .leading, spacing: 16) {
|
|
BenefitRow(icon: "face.smiling", text: String(localized: "onboarding_welcome_benefit1"))
|
|
BenefitRow(icon: "scalemass", text: String(localized: "onboarding_welcome_benefit2"))
|
|
BenefitRow(icon: "calendar", text: String(localized: "onboarding_welcome_benefit3"))
|
|
}
|
|
.padding(.horizontal, 40)
|
|
|
|
Spacer()
|
|
|
|
PrimaryButton(title: String(localized: "onboarding_start"), icon: "✨", action: onNext)
|
|
.padding(.horizontal, 24)
|
|
.padding(.bottom, 40)
|
|
}
|
|
}
|
|
}
|
|
|
|
private struct BenefitRow: View {
|
|
let icon: String
|
|
let text: String
|
|
|
|
var body: some View {
|
|
HStack(spacing: 12) {
|
|
Image(systemName: icon)
|
|
.font(.system(size: 20))
|
|
.foregroundColor(.mealMoodCoral)
|
|
.frame(width: 28)
|
|
|
|
Text(text)
|
|
.font(.mealMoodBody)
|
|
.foregroundColor(.mealMoodTextPrimary)
|
|
}
|
|
}
|
|
}
|