A SwiftUI library for fully customizable push and pop navigation transitions using first-party navigation components.
SwiftUINavigationTransitions is a SwiftUI library that enables developers to fully customize push and pop navigation transitions while using SwiftUI's native `NavigationView` and `NavigationStack`. It solves the limitation of SwiftUI's default navigation transitions by providing a flexible, declarative API for creating custom animations and interactive gestures without replacing the underlying navigation system.
iOS and macOS developers building apps with SwiftUI who need advanced control over navigation transitions, such as custom animations, dynamic transition logic, or enhanced gesture interactions.
Developers choose this library because it integrates seamlessly with SwiftUI's first-party navigation components, offers a familiar API similar to built-in transitions, and provides powerful customization options—including custom transitions and interactive gestures—without the complexity of rebuilding the navigation stack.
Pure SwiftUI Navigation transitions ✨
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works directly with SwiftUI's NavigationView and NavigationStack using a simple modifier, avoiding the need to rebuild the entire navigation stack.
Designed to resemble built-in SwiftUI Transitions, making it easy for developers to apply custom animations with a declarative approach.
Enables switching transitions based on logic, such as accessibility settings like reduced motion, as demonstrated in the README examples.
Allows overriding pop gestures with features like full-pan screen gestures, even when using the default system transition.
With version 0.16.0, the library is pre-1.0, meaning potential breaking changes and less stability compared to mature alternatives.
Tied exclusively to SwiftUI, making it unsuitable for projects with significant UIKit components or mixed navigation environments.
Creating fully custom transitions requires implementing the NavigationTransitionProtocol and writing additional SwiftUI-like code, which can increase complexity.