Beautiful interfaces, elegantly crafted πΈ
Documentation β’ Examples β’ Issues
bas-ui is a scriptable UI framework built on wxWidgets and GLib. It provides a declarative approach to building desktop applications with embedded assets, making it easy to create polished, professional interfaces.
Design philosophy: UIs should be as elegant as a ballet performance π©°βclean, graceful, and delightful.
| Feature | Description |
|---|---|
| π Scriptable UI Stack | Define interfaces declaratively, load at runtime |
| π¦ Embedded Assets | Icons, images, and resources bundled into binaries |
| π¨ wxWidgets Powered | Native look and feel on Linux, Windows, macOS |
| π§ Meson Build System | Fast, modern build with asset embedding |
| π¦ Debian Packaging | Ready-to-install .deb packages |
βββββββββββββββββββββββββββββββββββββββββββ
β bas-ui Application β
βββββββββββββββββββββββββββββββββββββββββββ€
β βββββββββββββββ βββββββββββββββββββ β
β β Scripts β β Embedded β β
β β (JSON/ β β Assets β β
β β Lua) β β (.zip section) β β
β βββββββββββββββ βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββ€
β bas-ui Core Library β
β βββββββββββββββ βββββββββββββββββββ β
β β Widget β β Layout & β β
β β Factory β β Styling β β
β βββββββββββββββ βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββ€
β wxWidgets + GLib β
βββββββββββββββββββββββββββββββββββββββββββ
# Debian/Ubuntu
sudo apt install libwxgtk3.0-gtk3-dev libglib2.0-dev libicu-dev \
libcurl4-openssl-dev libssl-dev libboost-all-dev \
zlib1g-dev meson ninja-build# Configure
meson setup builddir
# Build
meson compile -C builddir
# Install
sudo meson install -C builddirThis builds:
libbas-uiβ Core library- UI applications from
app/*.cpp
#include <bas-ui/application.h>
#include <bas-ui/window.h>
int main(int argc, char *argv[]) {
bas::ui::Application app(argc, argv);
auto window = bas::ui::Window::create("Hello, bas-ui!");
window->setSize(400, 300);
window->show();
return app.run();
}{
"window": {
"title": "My App",
"size": [400, 300],
"children": [
{
"type": "button",
"label": "Click Me!",
"onClick": "handleClick"
}
]
}
}bas-ui/
βββ src/
β βββ core/ # Core UI framework
β βββ widgets/ # Widget implementations
β βββ script/ # Scripting engine
β βββ assets/ # Asset embedding utilities
βββ app/ # Example applications
βββ assets/ # Icons, images, resources
βββ examples/ # Code examples
βββ debian/ # Debian packaging
βββ docs/ # Documentation
βββ meson.build # Build configuration
βββ README.md # You are here πΈ
- bas-c β C base library and utilities
- bas-cpp β C++ foundation library
- OmniShell β Desktop environment using bas-ui
shecti (@lenik)
Living with gender dysphoria. The "cute version of me" is my source of courage and powerβshe is the engine behind all my creation.
Proudly building as a trans woman in tech. π
If you're a fellow trans coder, LGBTQ+ ally, or just someone who believes in diverse voices in open sourceβI'd love to connect!
#TransCoder #TransIsTech #WomenWhoCode #OpenSource #Cpp #wxWidgets #UI
If bas-ui helps you build beautiful interfaces, consider:
- β Starring this repository
- π Forking and contributing
- π Reporting bugs and suggesting features
- π Sharing with your network
- π Sponsoring via GitHub Sponsors (coming soon)
MIT License. See LICENSE for details.
"Elegant code creates elegant interfaces."
Made with π and lots of β¨