bevy_ui_borders

Crates.iobevy_ui_borders
lib.rsbevy_ui_borders
version0.3.0
sourcesrc
created_at2023-03-02 12:28:57.661258
updated_at2023-03-18 15:41:10.819009
descriptionBevy UI borders plugin
homepage
repositoryhttps://github.com/ickshonpe/bevy_ui_borders
max_upload_size
id798857
size134,943
(ickshonpe)

documentation

README

bevy_ui_borders

crates.io MIT/Apache 2.0 crates.io

Draw borders around Bevy UI Nodes

image

  • A Bevy plugin that adds border and outline rendering to UI nodes.

  • Supports Bevy 0.10

  • Only supports solid one-colour borders due to the limitations of the current Bevy UI renderer.

Usage

Add the dependency to your Bevy project:

cargo add bevy_ui_borders

To display a bordered UI node:

  • Add the BordersPlugin plugin to your app.
  • Spawn an entity with a BorderColor component and a NodeBundle where the border field of its Style component is set to a non-zero thickness.

Components

  • BorderColor: Defines the color of a UI node's border.
  • Outline: Specifies the color and thickness of the outline around the UI node's border.

Bundles

  • BorderedNodeBundle: A bundle for creating UI nodes with a border and outline.

  • BorderBundle: A bundle for adding border and outline components to an existing UI node.

Example

To draw a white UI node with a red border:

use bevy::prelude::*;
use bevy_ui_borders::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugin(BordersPlugin)
        .add_startup_system(spawn_example)
        .run();
}

fn spawn_example(mut commands: Commands) {
    commands.spawn(Camera2dBundle::default());
    commands.spawn((
        NodeBundle {
            style: Style {
                size: Size::new(Val::Px(100.), Val::Px(100.)),
                margin: UiRect::all(Val::Px(100.)),
                border: UiRect::all(Val::Px(10.)),
                ..Default::default()
            },
            background_color: Color::WHITE.into(),
            ..Default::default()
        },
        BorderColor(Color::RED),
    ));       
}

Examples

cargo --run --example minimal
cargo --run --example tiles
cargo --run --example outlines
cargo --run --example stress
Commit count: 19

cargo fmt