diff --git a/TheNoiseClock/App/ContentView.swift b/TheNoiseClock/App/ContentView.swift index 62b2fbd..1c20f6b 100644 --- a/TheNoiseClock/App/ContentView.swift +++ b/TheNoiseClock/App/ContentView.swift @@ -112,8 +112,9 @@ struct ContentView: View { } .transition(.asymmetric( insertion: .opacity, - removal: .opacity.combined(with: .scale(scale: 1.1)) + removal: .opacity.combined(with: .move(edge: .bottom)).combined(with: .scale(scale: 0.9)) )) + .zIndex(1) // Ensure it stays on top during transition } } .sheet(isPresented: $keepAwakePromptState.isPresented) { @@ -140,7 +141,7 @@ struct ContentView: View { guard shouldShowKeepAwakePromptForTab() else { return } keepAwakePromptState.showIfNeeded(isKeepAwakeEnabled: clockViewModel.style.keepAwake) } - .animation(.spring(duration: 0.6, bounce: 0.3), value: onboardingState.hasCompletedWelcome) + .animation(.spring(duration: 0.45, bounce: 0.2), value: onboardingState.hasCompletedWelcome) } private func shouldShowKeepAwakePromptForTab() -> Bool { diff --git a/TheNoiseClock/Features/Onboarding/Views/OnboardingView.swift b/TheNoiseClock/Features/Onboarding/Views/OnboardingView.swift index bc753ba..de072af 100644 --- a/TheNoiseClock/Features/Onboarding/Views/OnboardingView.swift +++ b/TheNoiseClock/Features/Onboarding/Views/OnboardingView.swift @@ -417,8 +417,8 @@ struct OnboardingView: View { } private func triggerCelebration() { - // Use a more subtle transition to the main app - withAnimation(.spring(duration: 0.6, bounce: 0.3)) { + // Snappier transition for a better feel + withAnimation(.spring(duration: 0.45, bounce: 0.2)) { onComplete() } }