Skip to content
Snippets Groups Projects
README.md 1.57 KiB
Newer Older
StarArawn's avatar
StarArawn committed
<p align="center">
    <img src="images/kayak.svg" alt="Kayak UI" width="600" />
</p>
StarArawn's avatar
StarArawn committed
<br/>
StarArawn's avatar
StarArawn committed

<h1>
    <p align="center">
    Kayak UI
    <p>
</h1>

## What is Kayak UI?
AhegaHOE's avatar
AhegaHOE committed
Kayak UI is a declarative UI that can be used to make user interfaces in Rust primarily targeting games. It's free and open-source!
StarArawn's avatar
StarArawn committed

## WARNING
StarToaster's avatar
StarToaster committed
Kayak UI is in the very early stages of development. Important features are missing and documentation is non-existent. Kayak UI is designed to only work with Bevy.
StarArawn's avatar
StarArawn committed

## Features
- Easy to use declarative syntax using a custom proc macro
- Basic widget and global state management
StarArawn's avatar
StarArawn committed
- Input events (Mouse, Keyboard, Char)
StarArawn's avatar
StarArawn committed
- Fast and accurate layouts using morphorm: https://github.com/geom3trik/morphorm
StarArawn's avatar
StarArawn committed
- A few default widgets (check out Kayak's [built-in widgets](./src/widgets)!)
StarArawn's avatar
StarArawn committed
- Style system built to kind of mimic CSS styles.
- Image and Nine patch rendering.
StarToaster's avatar
StarToaster committed
- Vec widgets see vec example!
StarArawn's avatar
StarArawn committed

## Bevy Renderer Features
- Image and NinePatch renderer
- Fast MSDF Font renderer
- Quad renderer with rounded corners.
- Custom UI node to ensure UI renders on top of 3D and 2D entities.
- Fully integrated into bevy to capture input events, use bevy assets(images, etc).
StarArawn's avatar
StarArawn committed
- Dpi Scaling
StarArawn's avatar
StarArawn committed

StarArawn's avatar
StarArawn committed
## Missing features
- More default widgets.
StarArawn's avatar
StarArawn committed
- More events
StarArawn's avatar
StarArawn committed

StarArawn's avatar
StarArawn committed
## Example Screenshot
<img src="images/screen1.png" alt="Kayak UI" width="600" />

## Usage
Use bevy `0.9`! Make sure the version of Kayak you are using uses the same version of bevy.

```rust
kayak_ui = "0.1"
bevy = "0.9"
|bevy|kayak_ui|
|---|---|
|`main`|`bevy-track`|
|0.9|0.1|

StarToaster's avatar
StarToaster committed
## Check out the book!
John's avatar
John committed
[Kayak UI Book](./book/src/SUMMARY.md)