4 releases (2 breaking)
Uses new Rust 2024
0.3.0 | Apr 26, 2025 |
---|---|
0.2.0 | Apr 23, 2025 |
0.1.1 | Apr 18, 2025 |
0.1.0 | Apr 18, 2025 |
#291 in Game dev
523 downloads per month
685KB
1.5K
SLoC
Bevy UI Text Input
Text input crate for Bevy UI using cosmic text.
Basic usage
Spawn a TextInputNode
component to create a text input:
commands
.spawn((
TextInputNode::default(),
Node {
width: Val::Px(500.),
height: Val::Px(250.),
..default()
},
))
The size has to be set using Node
, there isn't any support for responsive sizing yet.
The active text input is set using the ActiveTextInput
resource. Inputs can also be set to activate on clicks.
There are a couple of examples, text_input
is the most complete:
cargo run --example text_input
Features
- Undo and redo
- Text selection with keyboard and mouse
- Overwrite and insert edit modes
- Horizontally scrolling single line input
- Validated integer, decimal and hexadecimal input modes
- Vertical and horizontal scrolling
- Cut, copy, and paste with clipboard support
- Display prompt when empty
- Keyboard navigation supports page up & down, home & End, next & previous word, buffer start & end and scroll up & down
- Mouse wheel scrolling
- Max characters limit
Problems + Bugs
- Overwrite cursor becomes an insert cursor at the end of lines.
- Scrolling can be glitchy if the line height isn't an exact divisor of the input box.
- The plugin can't access any existing
FontAtlasSet
s frombevy_text
and has to create its own atlases for any fonts it uses.
Not supported (at least yet)
- IME
- Responsive sizing
- Rich text
- Syntax highlighting
- World UI
- Text2d
- Onscreen keyboard
Dependencies
~20–34MB
~612K SLoC