v0.26.2
https://github.com/ratatui/ratatui/releases/tag/v0.26.2
MSRV: 1.74.0 π¦
The minimum supported Rust version of Ratatui is updated from 1.70.0 to 1.74.0.
List: Scroll Padding π
We introduced a new method for List which allows a certain number of items be kept visible above
and below the currently selected item while scrolling.
let list = List::new(items).scroll_padding(1);Demo of the new behavior
(visible on the left side)
Text: Construct from Iterator ποΈ
Line and Text widgets now implement FromIterator which means you can:
- Construct
Linefrom an iterator ofSpan
let line = Line::from_iter(vec!["Hello".blue(), " world!".green()]);let line: Line = iter::once("Hello".blue()) .chain(iter::once(" world!".green())) .collect();- Construct
Textfrom an iterator ofLine
let text = Text::from_iter(vec!["The first line", "The second line"]);let text: Text = iter::once("The first line") .chain(iter::once("The second line")) .collect();Text: Push Methods π₯
We added the following methods to the Text and Line structs:
Text::push_lineText::push_spanLine::push_span
This allows for adding lines and spans to a text object without having to call methods on the fields directly, which is useful for incremental construction of text objects.
For example:
let mut line = Line::from("Hello, ");line.push_span(Span::raw("world!"));line.push_span(" How are you?");Implement Widget for strings π§Ά
Widget is now implemented for &str and String, which makes it easier to render strings with no
styles as widgets.
Example usage:
terminal.draw(|f| f.render_widget("Hello World!", f.size()))?;Span: Rename Methods π
The following Span methods are renamed accordingly to the Rust method naming conventions.
Deprecated usage:
Span::to_centered_lineSpan::to_left_aligned_lineSpan::to_right_aligned_line
New usage:
Span::into_centered_lineSpan::into_left_aligned_lineSpan::into_right_aligned_line
Funding π§
We are happy to share that we have received a funding donation from Radicle!
You can read about the details here.
Other πΌ
- Marked various functions as const (#951)
- Respect alignment on Line truncation (#987)
- Donβt render scrollbar on zero length track (#964)
- Fix panic when rendering Text out of bounds (#997)
- Fix highlight_symbol overflow (#949)
- Fix Scrollbar thumb not being visible on long lists (#959)
- Ensure that paragraph correctly renders styled text (#992)
- Applied clippy (pedantic) suggestions
And lastly, we welcome @EdJoPaTo on board as a maintainer! π₯³