diff --git a/TheNoiseClock/App/ContentView.swift b/TheNoiseClock/App/ContentView.swift index d1155e7..62b2fbd 100644 --- a/TheNoiseClock/App/ContentView.swift +++ b/TheNoiseClock/App/ContentView.swift @@ -110,7 +110,10 @@ struct ContentView: View { OnboardingView { onboardingState.completeWelcome() } - .transition(.opacity) + .transition(.asymmetric( + insertion: .opacity, + removal: .opacity.combined(with: .scale(scale: 1.1)) + )) } } .sheet(isPresented: $keepAwakePromptState.isPresented) { @@ -137,7 +140,7 @@ struct ContentView: View { guard shouldShowKeepAwakePromptForTab() else { return } keepAwakePromptState.showIfNeeded(isKeepAwakeEnabled: clockViewModel.style.keepAwake) } - .animation(.easeInOut(duration: 0.3), value: onboardingState.hasCompletedWelcome) + .animation(.spring(duration: 0.6, bounce: 0.3), value: onboardingState.hasCompletedWelcome) } private func shouldShowKeepAwakePromptForTab() -> Bool { diff --git a/TheNoiseClock/Features/Onboarding/Views/OnboardingView.swift b/TheNoiseClock/Features/Onboarding/Views/OnboardingView.swift index ebfcfbc..bc753ba 100644 --- a/TheNoiseClock/Features/Onboarding/Views/OnboardingView.swift +++ b/TheNoiseClock/Features/Onboarding/Views/OnboardingView.swift @@ -418,7 +418,7 @@ struct OnboardingView: View { private func triggerCelebration() { // Use a more subtle transition to the main app - withAnimation(.easeIn(duration: 0.3)) { + withAnimation(.spring(duration: 0.6, bounce: 0.3)) { onComplete() } }