- Notifications
You must be signed in to change notification settings - Fork1.5k
Yoga is an embeddable layout engine targeting web standards.
License
MIT, Unknown licenses found
Licenses found
facebook/yoga
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Yoga is an embeddable and performant flexbox layout engine with bindings for multiple languages.
Yoga's main implementation targets C++ 20 with accompanying build logic in CMake. A wrapper is provided to build the main library and run unit tests.
./unit_tests<Debug|Release>
While not required, this script will useninja if it is installed for faster builds.
Yoga is additionally part of thevcpkg collection of ports maintained by Microsoft and community contributors. If the version is out of date, pleasecreate an issue or pull request on the vcpkg repository.
Many of Yoga's tests are automatically generated, using HTML fixtures describing node structure. These are rendered in Chrome to generate an expected layout result for the tree. New fixtures can be added togentest/fixtures
.
<divid="my_test"style="width: 100px; height: 100px; align-items: center;"><divstyle="width: 50px; height: 50px;"></div></div>
To generate new tests from added fixtures:
- Ensure you haveyarn classic installed.
- Run
yarn install
to install dependencies for the test generator. - Run
yarn gentest
in theyoga
directory.
Yoga provides a VSCode "launch.json" configuration which allows debugging unit tests. Simply add your breakpoints, and run "Debug C++ Unit tests (lldb)" (or "Debug C++ Unit tests (vsdbg)" on Windows).
About
Yoga is an embeddable layout engine targeting web standards.