react/yoga

Yoga is an embeddable layout engine targeting web standards.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 34 minutes ago
Added to GitGenius on August 2nd, 2026
Created on April 7th, 2014
Open Issues & Pull Requests: 163 (+0)
GitHub issues: Enabled
Number of forks: 1,548
Total Stargazers: 18,859 (+0)
Total Subscribers: 387 (+0)

Issue Activity (beta)

Open issues: 47
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 846 days
Stale 30+ days: 43
Stale 90+ days: 42

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 1

Top labels

  • Algorithm (14)
  • JavaScript (4)
  • bug (3)
  • Feature Request (2)
  • Documentation (1)
  • Java (1)
  • Question (1)

Repository Insights (GitGenius)

Median issue/PR response: 12.4 hours
Mean response time: 37.9 days
90th percentile: 172.2 days
Tracked items: 69

Most active contributors

Detailed Description

Yoga is an embeddable layout engine developed by React that implements flexbox layout standards for use across multiple platforms and programming languages. Written primarily in C++, the engine targets C++ 20 and uses CMake for its build system, with an optional wrapper script that can leverage Ninja for faster compilation. The project is distributed across multiple package managers including npm as yoga-layout, Maven Central for Java integration, and Swift Package Manager, making it accessible to developers working in diverse technology stacks.

The core purpose of Yoga is to provide a performant, standards-compliant flexbox implementation that can be embedded into applications beyond web browsers. Rather than reimplementing layout logic in each platform or framework, Yoga offers a single, well-tested layout engine with language bindings that allow developers to use the same underlying implementation whether they are building web applications, mobile apps, or other software requiring flexbox-based layout calculations. The project maintains an official website at yogalayout.dev where users can access documentation and resources.

Yoga's testing approach is distinctive in its use of automatically generated test cases. The test suite relies on HTML fixtures that describe node structures, which are rendered in Chrome to establish expected layout results. This methodology ensures that Yoga's output matches browser behavior for the same flexbox specifications. Developers can add new test fixtures to the gentest/fixtures directory, and the project provides tooling to generate corresponding tests using Yarn. The test generation process requires Yarn classic and involves running the gentest command to create tests from newly added fixtures, streamlining the addition of test coverage as the engine evolves.

The repository demonstrates active maintenance and community engagement through its presence in the vcpkg package collection maintained by Microsoft and community contributors. This integration allows developers using vcpkg for dependency management to easily incorporate Yoga into their projects, though the project acknowledges that version synchronization may occasionally lag and encourages community contributions to keep the vcpkg port current.

Development workflows are supported with debugging infrastructure tailored to common development environments. Yoga provides VSCode launch configurations that enable developers to debug C++ unit tests using either lldb on Unix-like systems or vsdbg on Windows, allowing breakpoint-based debugging directly within the IDE. This tooling support reflects consideration for developer experience and accessibility of the codebase.

The project's positioning as an embeddable engine means it serves as a foundational component for other frameworks and applications that need layout capabilities without implementing flexbox from scratch. By providing consistent behavior across platforms through a single C++ implementation with multiple language bindings, Yoga reduces fragmentation in how flexbox layouts are calculated and rendered, ensuring more predictable behavior across different environments and reducing the maintenance burden on projects that depend on it.

yoga
by
reactreact/yoga

Repository Details

Fetching additional details & charts...