A Swift library for adding interactive two-finger pan transitions between visual styles in iOS apps.
Gagat is a Swift library for iOS that provides an interactive, gesture-driven transition between two visual themes in an application. It solves the problem of abrupt or jarring theme switches by enabling a smooth, animated transition triggered by a two-finger pan, enhancing user experience particularly for apps supporting dark mode.
iOS developers building applications that support multiple visual themes, especially those implementing dark mode or custom styling who want to add a polished, interactive transition effect.
Developers choose Gagat for its focused, easy-to-integrate approach to theme transitions, offering a delightful user interaction inspired by popular apps without imposing styling constraints or complex dependencies.
A delightful way to transition between visual styles in your iOS applications.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables smooth, two-finger pan-driven theme switches, inspired by Castro 2, for a polished and delightful user experience directly from anywhere in the app.
Requires only conformance to GagatStyleable and a single configuration call, keeping setup straightforward without heavy dependencies.
Fully usable from both Swift and Objective-C codebases, with separate frameworks provided to ensure seamless interoperability in mixed-language projects.
Allows fine-tuning of the transition, such as adjusting the jelly factor via Gagat.Configuration, to match the app's visual style.
Developers must implement all theme styling themselves, as Gagat only handles the transition animation, which can add significant development overhead.
Designed for exactly two visual styles and only supports iOS, reducing flexibility for apps with multiple themes or cross-platform requirements.
The mandatory two-finger pan gesture might interfere with other app-specific gestures, requiring careful UI design to avoid user confusion.