55 releases
0.14.5 | Apr 21, 2022 |
---|---|
0.13.5 | Dec 3, 2021 |
0.13.3 | Oct 19, 2021 |
0.12.0 | Nov 15, 2020 |
0.8.3 | Nov 30, 2019 |
#70 in #gui-framework
Used in nusa
23KB
568 lines
Kagura
kagura
is a component-oriented GUI framework. This framework has extensibility to be used in different contexts.
When you create a web page, kagura
needs nusa
. nusa
gives kagura
features to manuplate DOM by virtual-DOM.
Documents
https://kagura.gitbook.io/kagura-nusa-en/
Creating a web page
kagura
needs nusa
to generate a web page. like this:
extern crate js_sys;
extern crate kagura;
extern crate nusa;
extern crate wasm_bindgen;
extern crate wasm_bindgen_futures;
extern crate web_sys;
use nusa::prelude::*;
use wasm_bindgen::prelude::*;
#[wasm_bindgen(start)]
pub fn main() {
wasm_bindgen_futures::spawn_local(async {
kagura::Runtime::run(nusa::dom_node::BasicDomNode::new(entry_point(), |_| {
vec![Html::h1(
Attributes::new(),
Events::new(),
vec![Html::text("Hello World")],
)]
}))
.await;
});
}
fn entry_point() -> web_sys::Node {
web_sys::window()
.unwrap()
.document()
.unwrap()
.get_element_by_id("app")
.unwrap()
.into()
}
Dependencies
~4–13MB
~157K SLoC