minimal_native/
minimal_native.rs1use operad::{root_style, ColorRgba, LayoutStyle, TextStyle, UiDocument, UiNode, UiSize, UiVisual};
2
3fn main() -> operad::native::NativeWindowResult {
4 operad::native::run("Minimal Operad", minimal_document)
5}
6
7fn minimal_document(viewport: UiSize) -> UiDocument {
8 let mut ui = UiDocument::new(root_style(viewport.width, viewport.height));
9 let panel = ui.add_child(
10 ui.root(),
11 UiNode::container(
12 "app.panel",
13 LayoutStyle::column()
14 .with_size(360.0, 120.0)
15 .with_padding(20.0)
16 .with_gap(8.0),
17 )
18 .with_visual(UiVisual::panel(ColorRgba::new(24, 29, 36, 255), None, 6.0)),
19 );
20 ui.add_child(
21 panel,
22 UiNode::text(
23 "app.title",
24 "Hello from Operad",
25 TextStyle {
26 font_size: 22.0,
27 line_height: 30.0,
28 color: ColorRgba::WHITE,
29 ..TextStyle::default()
30 },
31 LayoutStyle::size(320.0, 34.0),
32 ),
33 );
34 ui.add_child(
35 panel,
36 UiNode::text(
37 "app.subtitle",
38 "This app uses the default native runtime.",
39 TextStyle::default(),
40 LayoutStyle::size(320.0, 28.0),
41 ),
42 );
43 ui
44}