Crate bevy_text_popup

Source
Expand description

§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

§Custom Components

cargo run --example custom_components

cargo run --example modal

Modal

§Transparency

cargo run --example transparency

Transparency

§Bevy Compatibility

bevybevy_text_popup
0.160.6
0.150.5
0.140.4
0.130.3
0.120.2
0.110.1

Structs§

TextPopup
TextPopupActionNode
TextPopupButton
TextPopupButtonActionData
TextPopupEvent
Users send these events to create text popups.
TextPopupExpires
TextPopupExpiresInFrames
TextPopupNeverExpires
TextPopupPlugin
TextPopupRootNode
TextPopupTextNode

Enums§

TextPopupLocation
TextPopupTimeout