diff --git a/BanYaroGo/Assets.xcassets/AppIconHero.imageset/icon-hero.png b/BanYaroGo/Assets.xcassets/AppIconHero.imageset/icon-hero.png index bfa2894..b57fdd4 100644 Binary files a/BanYaroGo/Assets.xcassets/AppIconHero.imageset/icon-hero.png and b/BanYaroGo/Assets.xcassets/AppIconHero.imageset/icon-hero.png differ diff --git a/BanYaroGo/Views/LoginView.swift b/BanYaroGo/Views/LoginView.swift index 7b751d3..12ba9f9 100644 --- a/BanYaroGo/Views/LoginView.swift +++ b/BanYaroGo/Views/LoginView.swift @@ -5,6 +5,7 @@ struct LoginView: View { @State private var email = "" @State private var password = "" + @State private var pitchExpanded = false var body: some View { ScrollView { @@ -37,16 +38,51 @@ struct LoginView: View { } } - // MARK: - Pitch (für Neue) + // MARK: - Pitch (für Neue, ausklappbar) private var pitch: some View { - VStack(alignment: .leading, spacing: 14) { - feature(icon: "map.fill", title: "Gassi-Touren aufzeichnen", subtitle: "GPS-Tracking auch im Hintergrund — mit Pause, Live Activity und HealthKit-Sync.") - feature(icon: "person.2.fill", title: "Hunde-Community", subtitle: "Gassi-Treffen, Tierärzte und Orte in deiner Nähe.") - feature(icon: "book.fill", title: "Tagebuch & Impfpass", subtitle: "Alles rund um deinen Hund an einem Ort.") - feature(icon: "exclamationmark.shield.fill", title: "Giftköder-Alarm", subtitle: "Warnungen aus deiner Region direkt aufs iPhone.") + VStack(spacing: 0) { + Button { + withAnimation(.spring(response: 0.35, dampingFraction: 0.85)) { + pitchExpanded.toggle() + } + } label: { + HStack(spacing: 12) { + Image(systemName: "info.circle.fill") + .foregroundStyle(Color.accentColor) + VStack(alignment: .leading, spacing: 2) { + Text("Was bietet banyaro.app?") + .font(.subheadline.bold()) + .foregroundStyle(.primary) + Text(pitchExpanded ? "Tippen zum Einklappen" : "Tippen für Details") + .font(.caption) + .foregroundStyle(.secondary) + } + Spacer() + Image(systemName: "chevron.down") + .font(.callout.bold()) + .foregroundStyle(.secondary) + .rotationEffect(.degrees(pitchExpanded ? 180 : 0)) + } + .padding(18) + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + + if pitchExpanded { + VStack(alignment: .leading, spacing: 14) { + Divider() + feature(icon: "map.fill", title: "Gassi-Touren aufzeichnen", subtitle: "GPS-Tracking auch im Hintergrund — mit Pause, Live Activity und HealthKit-Sync.") + feature(icon: "person.2.fill", title: "Hunde-Community", subtitle: "Gassi-Treffen, Tierärzte und Orte in deiner Nähe.") + feature(icon: "book.fill", title: "Tagebuch & Impfpass", subtitle: "Alles rund um deinen Hund an einem Ort.") + feature(icon: "rosette", title: "Verifizierte Züchter", subtitle: "Züchter-Profile, aktuelle Würfe und Welpen-Vermittlung — kein Hinterhof.") + feature(icon: "exclamationmark.shield.fill", title: "Giftköder-Alarm", subtitle: "Warnungen aus deiner Region direkt aufs iPhone.") + feature(icon: "house.fill", title: "Hundesitting", subtitle: "Sitter und Sitter-Suche in deiner Nähe — mit Bewertungen.") + } + .padding(.horizontal, 18) + .padding(.bottom, 18) + } } - .padding(18) .frame(maxWidth: .infinity, alignment: .leading) .background(.background.secondary, in: RoundedRectangle(cornerRadius: 16)) }