[Media] haven-ui 0.1.0 - cross platform desktop gui liberated from html

198 points ethoooo 13 comments
[Media] haven-ui 0.1.0 - cross platform desktop gui liberated from html

https://github.com/cyypherus/haven

After 3 or 4 years of hobby coding this UI project is in a usable-but-early state & I'd like to share it!

  • Immediate mode UI
  • Headless mode for testing
  • Anyrender, vello, winit, backer & parley
  • Minimal set of built in widgets - text, text field, button, dropdown, toggle, slider, image, svg, and a lazy scroller

& heres what a view function looks like

fn view<'a>(state: &'a State, app: &mut PaneState) -> View<'a, State> {
    column_spaced(
        20.,
        vec![
            text(id!(), format!("Count: {}", state.count))
                .fill(Color::WHITE)
                .build(app),
            button(id!(), binding!(state.button))
                .text_label("Increment")
                .on_click(|state, _app| state.count += 1)
                .build(app),
        ],
    )
    .pad(20.)
}