It makes me a little sad that JavaFX never really caught on. I thought that Swing was horrible for cross-platform development, but the little I've done with JavaFX is pretty pleasant, and seems to perform at least as well as Electron, if not better.
I recently tried to use Swing (for compat. and interop. reasons). While it was obviously "quirky" (partly just from it's age - some of those "quirks" were expected behavior at the time), it appeared to at least be functional. I have very simple GUI needs for this project, slapping a basic UI onto the project shouldn't be that hard, right?
Then I discovered the multiple layers of hell of Swing's various layout managers. I never thought I'd actually find something worse than packing GTK+ {h,v}boxes. I think I might end up retreating back to Tk...
There is .net Core, but that doesn't currently have any GUI frameworks.
My rough impression is cross platform you have three options, web crappy, full native, and non-native. The last you may be native on one platform and look/act weird everywhere else.
That said I like stuff built on wxWidgets. There are bindings for other languages, never used them tho.
I have a visceral (possibly undeserved) hatred of C++, so WxWidgets and Qt are out; as it stands it looks like for what I need I'm stuck with Electron for my GUI stuff, since I don't want the JVM dependency.
While the stock look-and-feel is functional-but-bland on all platforms, modern Tk is completely customizable and can approximate native widgets: https://tkdocs.com/tutorial/windows.html#dialogs
Tcl/Tk interfaces look goofy, but they're very easy to build. You can even build them on a REPL. It's also very easy to understand what they do when you resize.
That's going back quite awhile. Why is it that later layout managers just seemed to get a bit worse then stay that way?