Files
yoga/website/contents/getting-started/standalone.md
Roland Crosby 910adaa5dc Update standalone JS docs (#1342)
Summary:
Excited to see some activity around this project! The move from Flow to TypeScript broke one of the links in the documentation, which this PR fixes. I went ahead and updated the example code as well, since it looks like some things moved around since the switch to the async loader.

Pull Request resolved: https://github.com/facebook/yoga/pull/1342

Reviewed By: yungsters

Differential Revision: D48337554

Pulled By: NickGerleman

fbshipit-source-id: 8397cab60cf2104e271029a235f287a179ece2f4
2023-08-14 21:20:59 -07:00

73 lines
1.8 KiB
Markdown

---
path: "/getting-started/standalone"
title: "Standalone"
hasPlayground: false
---
# Standalone
Adding Yoga to a project is as simple as adding the dependency to your package manager of choice.
### Android
```groovy
dependencies {
implementation 'com.facebook.yoga.android:yoga-layout:x.x.x'
}
```
### Javascript
The JavaScript bindings for Yoga can be used from node.js and within the browser.
When using Yoga from node.js the native library is used, in browsers a pure JS
version is used (cross-compiled using [emscripten](https://emscripten.org/)).
```
$> yarn add yoga-layout
```
This is an example on how to use Yoga in JavaScript. For a full API reference,
have a look at the [TypeScript type definitions](https://github.com/facebook/yoga/blob/main/javascript/src/wrapAssembly.d.ts).
```js
import {loadYoga} from 'yoga-layout';
const Yoga = await loadYoga();
const root = Yoga.Node.create();
root.setWidth(500);
root.setHeight(300);
root.setJustifyContent(Yoga.JUSTIFY_CENTER);
root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
const node1 = Yoga.Node.create();
node1.setWidth(100);
node1.setHeight(100);
const node2 = Yoga.Node.create();
node2.setWidth(100);
node2.setHeight(100);
root.insertChild(node1, 0);
root.insertChild(node2, 1);
root.calculateLayout(500, 300, Yoga.DIRECTION_LTR);
console.log(root.getComputedLayout());
// {left: 0, top: 0, width: 500, height: 300}
console.log(node1.getComputedLayout());
// {left: 150, top: 0, width: 100, height: 100}
console.log(node2.getComputedLayout());
// {left: 250, top: 0, width: 100, height: 100}
```
### iOS
```
pod 'YogaKit', '~> 1.7'
```
## Including Yoga From Source
If you plan to include Yoga from Source in a C++ project then all you have to do is inlude
the top level `yoga` folder. Make sure to look at the top level `BUCK` file to ensure you build
using the same compiler flags.