Rich text support in Bevy using a custom BBCode markup flavor.
bevy version |
bevy_mod_bbcode version |
---|---|
0.15.0-rc.2 |
0.3.0-rc.1 |
0.14 |
0.1 - 0.2 |
cargo add bevy_mod_bbcode
Instead of spawning Text
, spawn Bbcode
!
use bevy::prelude::*;
use bevy_mod_bbcode::{Bbcode, BbcodePlugin, BbcodeSettings};
fn main() {
App::new()
// Register the font files stored in `assets/fonts`
.add_plugins((DefaultPlugins, BbcodePlugin::new().with_fonts("fonts")))
.add_systems(Startup, setup)
.run();
}
fn setup(mut commands: Commands) {
commands.spawn(Camera2d);
commands.spawn((Bbcode::new(
r"test [b]bold[/b] with [i]italic[/i] and [c=#ff00ff]color[/c]"),
// Use the "Fira Sans" font family with a default font size of 40
BbcodeSettings::new("Fira Sans", 40., Color::WHITE),
));
}
See examples
for more usage patterns!
b
: [b]bold[/b] texti
: [i]italic[/i] textc
: [c=#ff0000]colored[/c] text- Register named colors via
ResMut<ColorMap>
and use the names instead of hex values
- Register named colors via
m
: [m=foo]text with marker component[/m]- Register marker components via
BbcodeSettings::with_marker
and use them to update text dynamically
- Register marker components via
font
: [font="Fira Sans"]change the font family[/font]
This project is licensed under the terms of the MIT or Apache 2.0 license at your choice.
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.
Note that the assets used in the examples might use different licenses, see assets/CREDITS.md
.