Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robertdodd/bevy_round_ui
https://github.com/robertdodd/bevy_round_ui
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/robertdodd/bevy_round_ui
- Owner: robertdodd
- License: apache-2.0
- Created: 2023-11-21T00:38:34.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-04-01T14:31:34.000Z (9 months ago)
- Last Synced: 2024-05-21T18:46:38.917Z (7 months ago)
- Language: Rust
- Size: 43 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Bevy Round UI
This [Bevy](https://bevyengine.org/) plugin contains a shader for rendering rounded rect UI elements, with an
adjustable offset that can be used to add borders or make the node appear 3D.## Examples
![Screenshot of the buttons example](https://raw.githubusercontent.com/robertdodd/bevy_round_ui/master/images/screenshot.png)
The [simple](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/simple.rs) example shows how to use it
in its simplest form. The [buttons](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/buttons.rs)
example shows how to use it with interactive buttons and a panel. The
[autosize](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/autosize.rs) example demonstrates what it
looks like when nodes resize. The [circle](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/circle.rs)
example shows how to make a circle shape. The
[shapes](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/shapes.rs) example shows a number of possible
shapes. The [superellipse](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/superellipse.rs) example
shows how to use the superellipse material. The
[compare](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/compare.rs) example allows you to toggle
between the `round_rect` and `superellipse` materials to see the difference between them. The
[compare](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/superellipse_transparency.rs) example
demonstrates the `superellipse` material working with transparency.## Features
The following cargo features (all enabled by default) can be used to control which materials are enabled:
- `round_rect` - Enables the `RoundRectUiMaterial`.
- `superellipse` - Enables the `SuperellipseUiMaterial`.## Basic Usage
1. Add the `BevyRoundUiDefaultPlugins` plugin to the app.
2. Create a `RoundRectUiMaterial` material.
3. Spawn a `MaterialNodeBundle` using that material.```rust
use bevy::prelude::*;
use bevy_round_ui::prelude::*;fn main() {
App::new()
.add_plugins((DefaultPlugins, BevyRoundUiDefaultPlugins))
.add_systems(Startup, setup)
.run();
}fn setup(mut commands: Commands, mut materials: ResMut>) {
commands.spawn(Camera2dBundle::default());commands.spawn(MaterialNodeBundle {
material: materials.add(RoundRectUiMaterial {
background_color: Color::hex("#F76161").unwrap().into(),
border_color: Color::hex("#A53A3D").unwrap().into(),
border_radius: RoundUiBorder::all(20.0).into(),
offset: RoundUiOffset::bottom(10.0).into(),
}),
style: Style {
width: Val::Px(200.),
height: Val::Px(200.),
..default()
},
..default()
});
}
```## Shapes
The [shapes](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/shapes.rs) example demonstrates a number
of possible shapes that can be achieved by changing the `RoundRectUiMaterial::border_radius` property.> NOTE: Bordered circles are not perfect.
![Screenshot of the shapes example](https://raw.githubusercontent.com/robertdodd/bevy_round_ui/master/images/shapes.png)
## Superellipse
The [superellipse](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/superellipse.rs) example
demonstrates using the `SuperellipseUiMaterial` material, which renders an approximate superellipse shape with an
optional border.Also see the [compare](https://github.com/robertdodd/bevy_round_ui/blob/master/examples/compare.rs) example, which
allows you to toggle between the superellipse and round-rect materials to easily see their difference.![Screenshot of the superellipse example](https://raw.githubusercontent.com/robertdodd/bevy_round_ui/master/images/superellipse.png)
## Compatible Bevy versions
| `bevy_round_ui` | `bevy` |
|:----------------|:-------|
| `1.x` - `2.x` | `0.13` |
| `0.2` | `0.13` |
| `0.1` | `0.12` |## License
Dual-licensed under either of
- Apache License, Version 2.0,
([LICENSE-APACHE](https://github.com/robertdodd/bevy_round_ui/blob/master/LICENSE-APACHE) or
https://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](https://github.com/robertdodd/bevy_round_ui/blob/master/LICENSE-MIT) or
https://opensource.org/licenses/MIT)at your option.
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as
defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.