GUI library experiments

I like designing GUIs and GUI libraries

My feeling is that desktop GUIs are hard to write because almost all APIs are really bad. All native APIs use retained mode which require a massive amount of boilerplate code. React is a better API but relies on the browser DOM which is a beast. Game GUIs can be a bit better but require reimplementing a lot. Dear ImGUI is a fantastic library but it's hard to customise at the moment. Below are some implementations I've experimented with.

Typescript GUI

The latest version is used in my Synth application. Please see that for more information

Python GUI

An experiment to see if it's possible to create native GUIs using Python and a React-like API. It has custom layout engine based off Flutter and a hooks state implementation based off React (but I'm not sure this works well with Python). However instead of constructing a VDOM like React it just does a diff as it runs the code, which I feel is a lot simpler. Also contrary to the browser DOM it uses a system like Flutter where padding, margin, and other layout mechanisms are their own components. This means there isn't one giant div implementation that does everything, it means any kind of layout can be written independently of the base library, and users can write their own layout components. It also has renderers for the terminal and Kivy.

https://github.com/JakeCoxon/py-gui

Klutter

Klutter is kinda like Flutter but for Kotlin, it uses a React-like API and custom layout engine, and renders using LibGDX.

Dear ImGUI Win98

Oh also I forked Dear ImGUI to have a Windows 98 theme. https://github.com/JakeCoxon/imgui-win98