bevy_text_popup

Crates.iobevy_text_popup
lib.rsbevy_text_popup
version
sourcesrc
created_at2023-08-24 00:21:50.775275
updated_at2024-12-06 01:04:51.568657
descriptionEasily create temporary text pop-up nodes in the Bevy game engine
homepage
repositoryhttps://github.com/edouardpoitras/bevy_text_popup
max_upload_size
id952994
Cargo.toml error:TOML parse error at line 17, column 1 | 17 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Edouard Poitras (edouardpoitras)

documentation

README

Bevy Text Popup

Bevy Text Popup Latest version Documentation MIT Apache

Bevy plugin to easily create UI text popups with events.

Popups are meant to be short-lived and on top of all other UI components.

Useful for notifications and prompting user input.

Current Customization Options:

  • Font: cargo run --example custom_font
  • Background: Color and Transparency (image background to come)
  • Border: cargo run --example border
  • Buttons: cargo run --example buttons
  • Timeouts: Dismiss automatically after X seconds
  • Modal: cargo run --example modal

Upcoming Customization Options:

  • Dismiss: Click anywhere to dismiss, X close button, etc.
  • Input: Allow for user input.
  • Hover/Click: Color change on button/popup hover/click.
  • Animations: Open/Close/Dismiss/Click/etc.

Examples

This example will display a modal popup for 10s with a 'Close' button.

use bevy::prelude::*;
use bevy_text_popup::{TextPopupEvent, TextPopupPlugin, TextPopupTimeout, TextPopupButton};

fn main() {
    App::new()
        .add_plugins((DefaultPlugins, TextPopupPlugin))
        .add_systems(Startup, setup)
        .run();
}

fn setup(mut commands: Commands, mut text_popup_events: EventWriter<TextPopupEvent>) {
    commands.spawn(Camera2d::default());

    text_popup_events.send(TextPopupEvent {
        content: "Modal Example".to_string(),
        modal: Some(Color::linear_rgba(0., 0., 1., 0.75).into()),
        timeout: TextPopupTimeout::Seconds(10),
        dismiss_button: Some(TextPopupButton {
            text: "Close".to_string(),
            text_color: TextColor::from(Color::BLACK),
            background_color: Color::linear_rgb(1., 1., 1.).into(),
            ..Default::default()
        }),
        name: Some(Name::new("custom_popup_name")), // Name component will be added to entity.
        ..default()
    });
}

Buttons

cargo run --example buttons

Buttons Example

Border

cargo run --example border

Border

Custom Font

cargo run --example custom_font

Custom Font Example

Locations

cargo run --example locations

Locations

And example showing custom pixel coordinates:

cargo run --example custom_locations

Modal

cargo run --example modal

Modal

Transparency

cargo run --example transparency

Transparency

Bevy Compatibility

bevy bevy_text_popup
0.15 0.5
0.14 0.4
0.13 0.3
0.12 0.2
0.11 0.1
Commit count: 16

cargo fmt