#ambient #ui #hook #element #react #run-time #top

ambient_ui

A UI library for the Ambient runtime, built on top of Ambient's Element library

16 releases

0.3.1 Oct 25, 2023
0.3.1-rc.1 Oct 24, 2023
0.3.0-rc.2 Sep 29, 2023
0.2.1 May 6, 2023

#1128 in Game dev

Download history 34/week @ 2024-06-07 44/week @ 2024-06-14 45/week @ 2024-06-21 19/week @ 2024-06-28 11/week @ 2024-07-05 39/week @ 2024-07-12 49/week @ 2024-07-19 41/week @ 2024-07-26 33/week @ 2024-08-02 34/week @ 2024-08-09 28/week @ 2024-08-16 28/week @ 2024-08-23 41/week @ 2024-08-30 23/week @ 2024-09-06 16/week @ 2024-09-13 24/week @ 2024-09-20

112 downloads per month
Used in 15 crates (2 directly)

MIT/Apache

365KB
9K SLoC

ambient_ui

A UI library for Ambient. Built on top of ambient_element.

Ambient's UI system is heavily inspired by React (with hooks), and follows many of the same patterns. Take a look at the React documentation to learn how hooks work in general.


lib.rs:

A UI library for Ambient. Built on top of ambient_element.

Ambient's UI system is heavily inspired by React (with hooks), and follows many of the same patterns. Take a look at the React documentation to learn how hooks work in general.

Getting started

Here's a minimal, complete example of a counter app:

use ambient_api::prelude::*;

#[element_component]
fn App(hooks: &mut Hooks) -> Element {
    let (count, set_count) = use_state(hooks,0);
    FlowColumn::el([
        Text::el(format!("We've counted to {count} now")),
        Button::new("Increase", move |_| set_count(count + 1)).el(),
    ])
}

#[main]
pub fn main() {
    App.el().spawn_interactive();
}

See all UI examples here.

Dependencies

~10–53MB
~1M SLoC