What do you think about React Native approach? Basically, they provide React as API/engine which works the same on all the platforms, and a set of bridges to native components (there is no guarantee that all the components will present on all the platforms). Their mantra is "learn once, write anywhere", which IMO works great for mobile platfroms (and they show competing performance with the pure native applications).
Flutter uses another approach; they went through a hassle of reimplementing all the components from scratch in Dart (AFAIK Qt went the same way). It is definitely not a short-term project, but it gives a great portability since they control all the drawing and, thus, can have a better portability to exotic platforms (e.g. with such an approach, we don't need to implement a whole set of bridges to all the components for every single platform, instead, we only need to adapt the drawing engine and we can run e.g. Mac OS look application on Redox), but implementing a native feel theming and accessibility will be a tedious task.
There is a project called Toga (written in Python), which follows React Native ideas targetting desktop OSes first (though they have experiments with mobile and web platforms) and it seems that they are doing great (though, they don't have enough contributors to polish the project to the level of React Native in terms of feature-completeness and documentation).
I like React Native / Toga approach the best, and I believe it is an order of magnitude easier to implement a single API with bridges to native components than reimplement the whole drawing from scratch.
P.S. Another project I want to bring to this discussion is Yoga, which is a cross-platform layout engine which implements Flexbox. It may or may not help someone with an implementation of layout system.
However, is more abstract, where the actual implementation of the UI is âleft to the readerâ.
.