/flex

Go implementation of CSS flexbox layout algorithm, port of Facebook's Yoga

Primary LanguageGoOtherNOASSERTION

flex - CSS flexbox layout implementation in Go

Go implementation of flexbox CSS layout algorithm.

A pure Go port of Facebook's Yoga.

How to use

Read tutorial or look at _test.go files.

Status

The port is finished. The code works and passess all Yoga tests.

The API is awkward by Go standards but it's the best I could do given that I want to stay close to C version.

Logic is currently synced up to https://github.com/facebook/yoga/commit/f45059e1e696727c1282742b89d2c8bf06345254

How the port was made

You can read a detailed story.

In short:

  • manually ported C code to Go, line-by-line
  • manually ported tests to Go
  • tweak the API from C style to be more Go like. The structure and logic still is very close to C code (this makes porting future C changes easy)