Crate bevy_cosmic_edit

source ·
Expand description

§bevy_cosmic_edit

Multiline text editor using cosmic_text for the bevy game engine!

This bevy plugin provides multiline text editing for bevy apps, thanks to cosmic_text crate! Emoji, ligatures, and other fancy stuff is supported!

bevy_cosmic_edit

§Usage

Warning: This plugin is currently in early development, and its API is subject to change.

use bevy::prelude::*;
use bevy_cosmic_edit::*;

fn setup(mut commands: Commands, mut font_system: ResMut<CosmicFontSystem>) {
    commands.spawn(Camera2dBundle::default());

    // Text attributes
    let font_size = 16.0;
    let line_height = 18.0;
    let attrs = Attrs::new()
        .family(Family::Monospace)
        .color(Color::DARK_GRAY.to_cosmic())
        .weight(FontWeight::BOLD);

    // Spawning
    commands.spawn(CosmicEditBundle {
        buffer: CosmicBuffer::new(&mut font_system, Metrics::new(font_size, line_height))
            .with_text(&mut font_system, "Hello, Cosmic!", attrs),
        sprite_bundle: SpriteBundle {
            sprite: Sprite {
                custom_size: Some(Vec2::new(300.0, 40.0)),
                ..default()
            },
            ..default()
        },
        ..default()
    });
}

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugins(CosmicEditPlugin::default())
        .add_systems(Startup, setup)
        .add_systems(Update, change_active_editor_sprite)
        .run();
}

Check the examples folder for much more!

Native:

$ cargo r --example font_per_widget

Wasm:

$ cargo install wasm-server-runner
$ RUSTFLAGS=--cfg=web_sys_unstable_apis cargo r --target wasm32-unknown-unknown --example basic_ui

§Compatibility

bevybevy_cosmic_edit
0.13.00.16 - latest
0.12.*0.15
0.11.*0.8 - 0.14

§Feature flags

  • multicam — Enable to avoid panicing when multiple cameras are used in the same world Requires you to add CosmicPrimaryCamera marker component to the primary camera

§License

MIT or Apache-2.0

Re-exports§

Structs§

Enums§

Traits§

Functions§