

[](https://crates.io/crates/makara)
<p align="center">
<img width="180" src="assets/logo.png">
</p>
<h2 align="center">GUI Library built on top of Bevy Game Engine.</h2>
## Getting start
```rust
fn on_button_click(click: On<Clicked>, mut text_q: TextQuery) {
text_q.get_by_id("my-text", |t| t.set_text("Hello mars"));
}
fn setup(mut commands: Commands) {
commands.spawn(
root_!(
align_items: AlignItems::Center,
justify_content: JustifyContent::Center;
[
text_!("Hello earth", id: "my-text"),
button_!("Click me"; on: on_button_click)
]
)
);
}
```
## Features
- Built-in widgets including button, modal, text input and more.
- Routing systems.
- Custom styling with ID & Classes similar to HTML/CSS.
- Built in styling via class.
- Leverages Bevy’s massive parallelism for smooth and efficient rendering.
- High level API and flexible.
## Installation
```
cargo add makara
```
## Run examples
```
cargo run --examples <example_name>
```
## Documentation
- [Rust official API doc](https://docs.rs/makara/latest/makara/)
- [Makara cookbook](https://muongkimhong.github.io/makara/)
## Contributing
Makara needs your contributions. Please see [contributing](https://github.com/MuongKimhong/makara/blob/master/CONTRIBUTING.md).
## Versions
Currently, it supports only bevy 0.17.x onward.
| 0.18.x | 0.2.x |
| 0.17.x | 0.1.x |
## License
Makara is released under the [MIT License](https://opensource.org/licenses/MIT).
> [!WARNING]
> **Makara is new**, many useful features are still missing.