A SwiftUI library for creating customizable floating action button menus with straight or circular layouts.
FloatingButton is a SwiftUI library that enables developers to create customizable floating action button menus for iOS, macOS, and watchOS apps. It solves the need for interactive, animated menu components that expand from a primary button, offering both straight-line and circular layouts with extensive control over appearance and behavior.
SwiftUI developers building applications for Apple platforms (iOS, macOS, watchOS) who need to implement floating action menus with advanced customization and smooth animations.
Developers choose FloatingButton for its declarative SwiftUI API, rich customization options, and support for complex animations, making it a robust alternative to building custom FAB menus from scratch while maintaining full design control.
Easily customizable floating button menu created with SwiftUI
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports both straight-line and circular menu arrangements, allowing developers to choose the optimal design for different interfaces, as shown in the README examples.
Offers modifiers for spacing, animation, opacity, offsets, and angles, enabling precise control over the menu's appearance and behavior without needing custom SwiftUI code.
Provides bindings for `wholeMenuSize` and `menuButtonsSize` to receive real-time updates, facilitating adaptive layouts and responsive design in complex UIs.
Allows custom SwiftUI animations with per-element delays and initial states, ensuring polished transitions that integrate seamlessly with app interactions.
Requires sub-buttons to be cast to `AnyView`, adding boilerplate code and reducing type safety, which can clutter SwiftUI view definitions.
Only supports a single layer of sub-buttons, making it unsuitable for applications needing nested or complex menu structures beyond basic expansions.
Cocoapods support is deprecated after version 1.3.0, forcing reliance on Swift Package Manager, which may not fit all legacy or mixed-dependency projects.