zsui 0.3.0-alpha.2

Rust-first feature-gated native UI framework for Win32, AppKit, and Linux.
Documentation
use zsui::{
    app, Command, HostCapabilities, SettingsItemSpec, SettingsPageSpec, TraySpec, UiNode, Window,
};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let report =
        app("Audit Example")
            .window(
                Window::new("Audit Example").size(900, 620).content(
                    UiNode::column("root")
                        .gap(8)
                        .child(UiNode::text("title", "Audit Example"))
                        .child(UiNode::button("open", "Open", Command::ShowMainWindow)),
                ),
            )
            .tray(
                TraySpec::new()
                    .tooltip("Audit Example")
                    .item("Open", Command::ShowMainWindow)
                    .item("Quit", Command::Quit),
            )
            .global_hotkey("Alt+Space", Command::OpenQuickPanel)
            .settings_page(SettingsPageSpec::new("general", "General").item(
                SettingsItemSpec::toggle("launch_on_startup", "Launch on startup", false),
            ))
            .declaration_report_for(&HostCapabilities::linux_scaffold());

    println!("{}", serde_json::to_string_pretty(&report)?);
    Ok(())
}