Self-drawn widgets, one look everywhere
The library's own rasterizer draws every control, so rendering is identical across platforms; light/dark mode and the system accent color are followed by default, and a theme is a plain value you can override.
Native window hosts, a self-drawn rendering pipeline, a complete widget set, and full system integration. One MoonBit codebase ships native Windows 🟩 / Linux 🟩 windows, with macOS 🟨 merged into master (real-machine verification in progress). Zero config after moon add.
moon add NoahLiu/native-guifn main {
let app = match @ui.mount_window(
[@ui.text("Hello, MoonBit!", font_size=18.0)],
title="Hello, MoonBit!",
width=400,
height=300,
) {
None => {
// no window backend or no display service on this platform
return
}
Some(a) => a
}
app.run()
}@ui.* comes from NoahLiu/native-gui/ui — the full package table is in the documentation index.