An embeddable and performant flexbox layout engine with multi-language bindings.
Yoga is an embeddable layout engine that implements the Flexbox layout algorithm, targeting web standards. It provides a performant and consistent way to handle layout calculations across different platforms and programming languages, solving the problem of fragmented layout logic in cross-platform development.
Developers building cross-platform applications, UI framework authors, and anyone needing a reliable, standalone layout engine that adheres to web standards.
Developers choose Yoga for its high performance, strict adherence to the Flexbox specification, and extensive language bindings, which eliminate layout inconsistencies and reduce platform-specific code.
Yoga is an embeddable layout engine targeting web standards.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Optimized in C++ with CMake builds for real-time layout calculations, making it suitable for performance-critical applications like games or embedded systems.
Provides multi-language bindings (e.g., C++, Java, JavaScript) enabling consistent Flexbox layouts across diverse environments, from mobile apps to custom renderers.
Implements the W3C Flexbox specification strictly, ensuring layout behavior matches web standards and reduces cross-browser inconsistencies.
Standalone library that can be integrated into various applications, frameworks, and tools without dependencies on specific UI ecosystems.
Only supports the Flexbox layout algorithm; projects needing CSS Grid, masonry, or other complex layouts must supplement Yoga with additional solutions.
Core implementation is in C++ 20, which can introduce build and integration challenges for projects in other languages, despite available bindings.
Requires deep understanding of Flexbox specifications and low-level layout concepts, not ideal for developers accustomed to declarative UI frameworks.
Compared to full UI frameworks, Yoga has a smaller community and fewer pre-built tools, components, or extensive documentation for edge cases.