It’s a tradeoff. You either make your app native but only for one platform, or you make it look “universal” and run on all three.
Either way, it’s bad experience for the end user
JavaFX uses the same approach as Humble UI: they draw all the widgets themselves and have custom cross-platform look and feel.
We aim to be better quality version of JavaFX