36 releases (6 stable)
new 1.0.5 | Feb 10, 2025 |
---|---|
1.0.1 | Jan 31, 2025 |
0.37.2 | Jan 29, 2025 |
0.32.0 | Dec 29, 2024 |
0.13.0 | Jul 3, 2024 |
#1030 in Command-line interface
1,336 downloads per month
Used in 4 crates
1.5MB
38K
SLoC
This crate is a part of rat-salsa.
For examples see rat-widget GitHub
Rat Widgets
This crate tries to provide an extended set of widgets with
- Event handling
- Focus handling
- Builtin scrolling
- Speed
Event handling
Uses the trait defined in rat-event to implement event-handling for crossterm. All widgets are designed with other event-handlers in mind.
Focus handling
Uses FocusFlag defined by rat-focus internally, to mark the focused widget. This is just a passive flag, that probably can be used with other focus systems. Or you use rat-focus.
Scrolling
Where it makes sense the widgets implement internal scrolling. They use Scroll from rat-scrolled.
Speed
Rendering all the widgets tries hard not to need allocations and extensive copying during rendering.
Special mentions:
- rat-ftable::Table: It uses an adapter for the data for rendering instead of creating Row/Cell structs.
Widgets
All the widgets are plain ratatui widgets, and implement StatefulWidget and the (experimental) StatefulWidgetRef traits.
Event handling uses rat-event::HandleEvent. Currently, crossterm events are implemented.
Layout
There are some layout calculators beyond ratatui's Layout.
Relocation
Widgets like View and Clipper move the widget-image after rendering. This breaks any areas stored in the widget-states.
Dependencies
~10–21MB
~277K SLoC