# Bevy Text Popup
[](https://github.com/edouardpoitras/bevy_text_popup/actions/workflows/rust.yml)
[](https://crates.io/crates/bevy_text_popup)
[](https://docs.rs/bevy_text_popup)


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.
```rust,ignore
use bevy::prelude::*;
use bevy_text_popup::{TextPopupEvent, TextPopupPlugin, TextPopupTimeout};
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(Camera2dBundle::default());
text_popup_events.send(TextPopupEvent {
content: "Modal Example".to_string(),
modal: Some(Color::BLUE.with_a(0.75)),
timeout: TextPopupTimeout::Seconds(10),
dismiss_button: Some(TextPopupButton {
text: "Close".to_string(),
..Default::default()
}),
..default()
});
}
```
### Buttons
`cargo run --example buttons`

### Border
`cargo run --example border`

### Custom Font
`cargo run --example custom_font`

### Locations
`cargo run --example locations`

### Modal
`cargo run --example modal`

### Transparency
`cargo run --example transparency`

## Bevy Compatibility
|0.11|0.1|