An open API service indexing awesome lists of open source software.

https://github.com/rickbutton/yoga-wasm

The Yoga layout engine, but in WebAssembly.
https://github.com/rickbutton/yoga-wasm

Last synced: 17 days ago
JSON representation

The Yoga layout engine, but in WebAssembly.

Awesome Lists containing this project

README

        

# yoga-wasm

`yoga-wasm` is a build of Facebook's [Yoga](https://github.com/facebook/yoga)
Flexbox layout engine, for JavaScript and WebAssembly.

It is a drop in replacement for the [`yoga-layout`](https://www.npmjs.com/package/yoga-layout) NPM package.

## Installation

```bash
# npm
npm install --save yoga-wasm

# yarn
yarn add yoga-wasm
```

## Usage

You should be able to use `yoga-wasm` in the same way you would normally use `yoga-layout`:

```js
import * as yoga from "yoga-wasm";

const node = yoga.Node.create();

node.setMaxWidth(100);

node.calculateLayout(100, 100, yoga.DIRECTION_LTR);
```

## Prior Art

[`yoga-dom`](https://github.com/vincentriemer/yoga-dom) is another attempt to port Yoga to JS with WebAssembly. I leaned heavily on
[viankakrisna](https://github.com/viankakrisna)'s `embind` bindings when porting the latest version of Yoga's bindings from `nbind` to `embind`.

## Contributing

Open a PR or file an issue!