A Swift wrapper for Facebook's Yoga flexbox engine, offering a concise and chainable API for iOS layout.
FlexLayout is a Swift library that wraps Facebook's Yoga flexbox engine, providing a native iOS API for building responsive and performant user interfaces. It solves the complexity of manual frame calculations by offering a declarative, chainable syntax that simplifies layout code while delivering superior performance over Apple's UIStackView.
iOS developers building complex, responsive UIs who want a more powerful and performant alternative to UIStackView or manual Auto Layout constraints.
Developers choose FlexLayout for its blend of CSS Flexbox familiarity, Swift-native elegance, and exceptional performance—enabling faster layout rendering and cleaner code compared to traditional iOS layout methods.
FlexLayout adds a nice Swift interface to the highly optimized facebook/yoga flexbox implementation. Concise, intuitive & chainable syntax.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides an intuitive Swift-native API with method chaining that mirrors flexbox structure, making layout code readable and maintainable, as shown in the README's define() method examples.
Built on the Yoga engine, it delivers layout speeds 8–12x faster than UIStackView, with benchmark results documented in the README's performance section.
Implements the complete CSS Flexbox specification, including direction, wrap, justify, align, grow, shrink, and basis properties, offering versatile layout capabilities.
Automatically handles right-to-left languages for internationalization and seamlessly integrates with PinLayout for mixed layout strategies, allowing fine control and animations.
FlexLayout does not support the flexbox 'order' property, limiting control over item sequencing compared to standard CSS flexbox implementations.
Requires iOS 13.0 or later, excluding apps that need to support older iOS versions, as stated in the README's requirements.
Lacks integration with Interface Builder or visual design tools, forcing all layouts to be defined programmatically, which may not suit teams accustomed to drag-and-drop workflows.
Developers unfamiliar with CSS Flexbox must learn its concepts, and the README's detailed documentation, while comprehensive, assumes prior flexbox knowledge.