#[cfg(target_arch = "wasm32")]
use operad::{root_style, ColorRgba, LayoutStyle, TextStyle, UiDocument, UiNode, UiSize, UiVisual};
#[cfg(target_arch = "wasm32")]
#[wasm_bindgen::prelude::wasm_bindgen]
pub async fn start() -> Result<(), wasm_bindgen::JsValue> {
operad::web::run("Minimal Operad", minimal_document).await
}
#[cfg(target_arch = "wasm32")]
fn minimal_document(viewport: UiSize) -> UiDocument {
let mut ui = UiDocument::new(root_style(viewport.width, viewport.height));
let panel = ui.add_child(
ui.root(),
UiNode::container(
"app.panel",
LayoutStyle::column()
.with_size(360.0, 120.0)
.with_padding(20.0)
.with_gap(8.0),
)
.with_visual(UiVisual::panel(ColorRgba::new(24, 29, 36, 255), None, 6.0)),
);
ui.add_child(
panel,
UiNode::text(
"app.title",
"Hello from Operad",
TextStyle {
font_size: 22.0,
line_height: 30.0,
color: ColorRgba::WHITE,
..TextStyle::default()
},
LayoutStyle::size(320.0, 34.0),
),
);
ui.add_child(
panel,
UiNode::text(
"app.subtitle",
"This app uses the default web runtime.",
TextStyle::default(),
LayoutStyle::size(320.0, 28.0),
),
);
ui
}
#[cfg(target_arch = "wasm32")]
fn main() {}
#[cfg(not(target_arch = "wasm32"))]
fn main() {
eprintln!("minimal_web is intended for wasm32-unknown-unknown");
}