Skip to content
Snippets Groups Projects
README.md 1.7 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
StarToaster's avatar
StarToaster committed
Use bevy main! Make sure the version of Kayak you are using uses the same version of bevy.

```rust
kayak_ui = { git="https://github.com/StarArawn/kayak_ui", rev="{INSERT_COMMIT_SHA_HERE}", features = ["bevy_renderer"] }
StarToaster's avatar
StarToaster committed
bevy = { git = "https://github.com/bevyengine/bevy", rev="4bcf49b2ea6fb5f42388b0e15d204020053ee5c7" }
StarToaster's avatar
StarToaster committed
## Check out the book!
[Kayak UI Book](./book/src/SUMMARY.md)