> Unlike common object-oriented GUI frameworks, Ribir widgets do not need to inherit a base class or hold a base object. It is a pure composition model
I'm really not sure how this "composition" is any different to the usual inheritance you see in frameworks like QML *in practice*.
This in Ribir:
```
Column {
align_items: Align::Center,
item_gap: 12.,
@H1 { text: "Todo" }
}```
Would be this in QML:
```
ColumnLayout {
spacing: 12
Text {
Layout.alignment: Qt.AlignHCenter
text: "Todo"
font.pointSize: 17
}
}```
Generally, many forms of inheritance do not compose, but I'm not sure that makes these primitives composable.
To format as code on HN, indent two spaces. https://news.ycombinator.com/formatdoc