My ultimate goal with this is to be able to make full featured UIs on embedded devices like the ESP32.
I just did a fairly big update which adds a bunch of features that make it into a reasonably complete CSS Grid implementation:
- basic html/css style layout for nodes not in a grid - basic html layout using constraints like percent parent (20'pp), auto (cx"auto"), content-min (cx"content-min") - support for constraint operators including min, max, - and + (limited to single level, e.g. no `min(min(x,y),z)`) - basic and grid layouts now support min-size and max-size constraints (e.g. like CSS min-width)
It's a weekend project. It's been pretty fun figuring out how CSS Grid works and how browsers implement parts of their layout routines. Especially how auto and frac works in CSS Grid. The core implementation turns out simple but subtle.
This project is similar to Taffy in Rust, however, the implementation is a bit simpler and much less thorough. It doesn't support CSS flexbox either.
Feedback or suggestions would be awesome!