v0.26.0 #909
orhun
announced in
Announcements
v0.26.0
#909
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
We are excited to announce the new version of ratatui - a Rust library that's all about cooking up TUIs 🐭
In this version, we have primarily focused on simplifications and quality-of-life improvements for providing a more intuitive and user-friendly experience while building TUIs.
✨ Release highlights: https://ratatui.rs/highlights/v026/
💖 Consider sponsoring us at https://github.com/sponsors/ratatui-org!
Features
79ceb9f
(line) Add alignment convenience functions (#856)
0df9354
(padding) Add new constructors for padding (#828)
Fixes:Create constructors for Padding that make it more clear #798
d726e92
(paragraph) Add alignment convenience functions (#866)
c1ed5c3
(span) Add alignment functions (#873)
Closes Add Alignment convenience methods to Line, Text and Paragraph (and perhaps Span). #853
b80264d
(text) Add alignment convenience functions (#862)
23f6938
(block) Add
Block::bordered
(#736)ffd5fc7
(color) Add Color::from_u32 constructor (#785)
4f2db82
(color) Use the FromStr implementation for deserialization (#705)
1cbe1f5
(constraints) Rename
Constraint::Proportional
toConstraint::Fill
(#880)Constraint::Fill
is a more intuitive name for the behavior, and it isshorter.
Resolves Rename
Constraint::Proportional
toConstraint::Fill
#859dfd6db9
(demo2) Add destroy mode to celebrate commit 1000! (#809)
540fd2d
(layout) Change
Flex::default()
(#881) [breaking]bbcfa55
(layout) Add Rect::contains method (#882)
736605e
(layout) Add default impl for Position (#869)
1e75596
(layout) Increase default cache size to 500 (#850)
Fixes:Increase Layout cache size #820
2819eea
(layout) Add Position struct (#790)
1561d64
(layout) Add Rect -> Size conversion methods (#789)
f13fd73
(layout) Add
Rect::clamp()
method (#749)98bcf1c
(layout) Add Rect::split method (#729)
0494ee5
(layout) Accept Into for constructors (#744)
7ab12ed
(layout) Add horizontal and vertical constructors (#728)
4278b40
(line) Implement iterators for Line (#896)
5d410c6
(line) Implement Widget for Line (#715)
c977293
(line) Add style field, setters and docs (#708) [breaking]
BREAKING CHANGE:
Line::style
is now a field ofLine
instead of beingstored in each
Span
.bbf2f90
(rect.rs) Implement Rows and Columns iterators in Rect (#765)
fe06f0c
(serde) Support TableState, ListState, and ScrollbarState (#723)
37c1836
(span) Implement Widget on Span (#709)
e1e85aa
(style) Add material design color palette (#786)
bf67850
(style) Add tailwind color palette (#787)
27e9216
(table) Remove allow deprecated attribute used previously for segment_size ✨ (#875)
a489d85
(table) Deprecate SegmentSize on table (#842)
c69ca47
(table) Collect iterator of
Row
intoTable
(#774) [breaking]BREAKING CHANGE:The compiler can no longer infer the element type of the container
passed to
Table::new()
. For example,Table::new(vec![], widths)
will no longer compile, as the type of
vec![]
can no longer beinferred.
2faa879
(table) Accept Text for highlight_symbol (#781)
e64e194
(table) Implement FromIterator for widgets::Row (#755)
803a72d
(table) Accept Into for widths (#745)
f025d2b
(table) Add Table::footer and Row::top_margin methods (#722)
f29c73f
(tabs) Accept Iterators of
Line
in constructors (#776) [breaking]BREAKING CHANGE:Calls to
Tabs::new()
whose argument is collected from an iteratorwill no longer compile. For example,
Tabs::new(["a","b"].into_iter().collect())
will no longer compile,because the return type of
.collect()
can no longer be inferred tobe a
Vec<_>
.b459228
(termwiz) Add
From
termwiz style impls (#726)9ba7354
(text) Implement iterators for Text (#900)
68d5783
(text) Add style and alignment (#807)
Fixes Add Style and Alignment to Text #758, fixes Implement Widget for Text #801
This PR adds:
style
andalignment
toText
Widget
forText
Text
manual draw to call for Widget implAll places that use
Text
have been updated and support its newfeatures expect paragraph which still has a custom implementation.
815757f
(widgets) Implement Widget for Widget refs (#833)
Fixes:State, borrowing widgets, etc #164
Replaces PRs: feat(widgets)!: make widgets optionally reusable #122 and
feat(widget): add render_ref method to Widget trait #16
Enables:List: Create a WidgetList where each item in the list is a Widget rather than Text #132
Validated as a viable working solution by:
docs(examples): refactor demo2 #836
eb79256
(widgets) Collect iterator of
ListItem
intoList
(#775)c8dd879
(uncategorized) Add WidgetRef and StatefulWidgetRef traits (#903)
87bf1dd
(uncategorized) Replace Rect::split with Layout::areas and spacers (#904)
dab08b9
(uncategorized) Show space constrained UIs conditionally (#895)
2a12f7b
(uncategorized) Impl Widget for &BarChart (#897)
9ec43ef
(uncategorized) Constraint Explorer example (#893)
constraint-explorer-demo.mov
It allows users to interactive explore how the constraints behave with
respect to each other and compare that across flex modes. It allows
users to swap constraints out for other constraints, increment or
decrement the values, add and remove constraints, and add spacing
It is also a good example for how to structure a simple TUI with several
Ratatui code patterns that are useful for refactoring.
Fixes:#792
4ee4e6d
(uncategorized) Make spacing work in
Flex::SpaceAround
andFlex::SpaceBetween
(#892)gap-spacearound-spacebetween.mov
Now user provided spacing gaps always take priority in all
Flex
modes.dd5ca3a
(uncategorized) Better weights for constraints (#889)
aeec163
(uncategorized) Change rounding to make tests stable (#888)
be4fdaa
(uncategorized) Change priority of constraints and add
split_with_spacers
✨ (#788)d713201
(uncategorized) Add
Color::from_hsl
✨ (#772)Related Support hsluv color constructor #763
405a125
(uncategorized) Add wide and tall proportional border set (#848)
symbols::border::PROPORTIONAL_WIDE
symbols::border::PROPORTIONAL_TALL
Fixes:#834
9df6ceb
(uncategorized) Table column calculation uses layout spacing ✨ (#824)
f299463
(uncategorized) Add one eighth wide and tall border sets ✨ (#831)
ae6a2b0
(uncategorized) Add spacing feature to flex example ✨ (#830)
cddf4b2
(uncategorized) Implement Display for Text, Line, Span (#826)
Issue:implement
Display
forText
,Line
,Span
#816This PR adds:
std::fmt::Display
forText
,Line
, andSpan
structs.Display implementation displays actual content while ignoring style.
5131c81
(uncategorized) Add layout spacing ✨ (#821)
de97a1f
(uncategorized) Add flex to layout ✨
flex.mov
9a3815b
(uncategorized) Add Constraint::Fixed and Constraint::Proportional ✨ (#783)
425a651
(uncategorized) Add comprehensive tests for Length interacting with other constraints ✨ (#802)
c50ff08
(uncategorized) Add frame count ✨ (#766)
8f56fab
(uncategorized) Accept Color and Modifier for all Styles (#720) [breaking]
Line::styled("hello", Color::Red);
Line::styled("world", Modifier::BOLD);
c959bd2
(calendar) CalendarEventStore panic (#822)
CalendarEventStore::today()
panics if the system's UTC offset cannotbe determined. In this circumstance, it's better to use
now_utc
instead.
0614190
(cd) Fix grepping the last release (#762)
a67815e
(chart) Exclude unnamed datasets from legend (#753)
3e7810a
(example) Increase layout cache size (#815)
50b81c9
(examples/scrollbar) Title wasn't displayed because of background reset (#795)
b3a57f3
(list) Modify List and List example to support saving offsets. (#667)
6645d2e
(table) Ensure that default and new() match (#751) [breaking]
BREAKING CHANGE:The default() implementation of Table now sets the
column_spacing field to 1 and the segment_size field to
SegmentSize::None. This will affect the rendering of a small amount of
apps.
b0ed658
(table) Render missing widths as equal (#710)
Fixes Table: Make it more difficult to render a table without
widths
set #510.f71bf18
(uncategorized) Bug with flex stretch with spacing and proportional constraints (#829)
cc6737b
(uncategorized) Make SpaceBetween with one element Stretch 🐛 (#813)
7a8af8d
(uncategorized) Update templates links (#808)
f2eab71
(uncategorized) Broken tests in table.rs (#784)
8dd177a
(uncategorized) Fix PR write permission to upload unsigned commit comment (#770)
Refactor
cf86123
(scrollbar) Rewrite scrollbar implementation (#847)
fd4703c
(block) Move padding and title into separate files (#837)
bc274e2
(block) Remove deprecated
title_on_bottom
(#757) [breaking]Block::title_on_bottom
was deprecated in v0.22. UseBlock::title
andTitle::position
instead.a62632a
(buffer) Split buffer module into files (#721)
e0aa6c5
(chart) Replace deprecated apply (#812)
Fixes fix apply deprecation in chart #793
7f42ec9
(colors_rgb) Impl widget on mutable refs (#865)
813f707
(example) Improve constraints and flex examples (#817)
bb5444f
(example) Add scroll to flex example (#811)
6d15b25
(layout) Move the remaining types (#743)
659460e
(layout) Move SegmentSize to layout/segment_size.rs (#742)
ba036cd
(layout) Move Layout to layout/layout.rs (#741)
8724aeb
(layout) Move Margin to margin.rs (#740)
9574198
(line) Reorder methods for natural reading order (#713)
6364533
(table) Split table into multiple files (#718)
5aba988
(terminal) Extract types to files (#760)
4d262d2
(widget) Move borders to widgets/borders.rs (#832)
5254795
(uncategorized) Make layout tests a bit easier to understand (#890)
bd6b91c
(uncategorized) Make
patch_style
&reset_style
chainable (#754) [breaking]da6c299
(uncategorized) Extract layout::Constraint to file (#739)
Documentation
6ecaeed
(text) Add overview of the relevant methods (#857)
50374b2
(backend) Fix broken book link (#733)
e1cc849
(breaking) Fix typo (#702)
49df5d4
(example) Fix markdown syntax for note (#730)
4b8e54e
(examples) Refactor Tabs example (#861)
5b7ad2a
(examples) Update gauge example (#863)
f383625
(examples) Add note about example versions to all examples (#871)
847bacf
(examples) Refactor demo2 (#836)
804c841
(examples) Update list example and list.tape (#864)
eb1484b
(examples) Update tabs example and tabs.tape (#855)
330a899
(examples) Update table example and table.tape (#840)
Fixes:Update table example #800
41de884
(examples) Document incompatible examples better (#844)
3464894
(examples) Add warning about examples matching the main branch (#778)
fb93db0
(examples) Simplify docs using new layout methods (#731)
d6b8513
(examples) Refactor chart example to showcase scatter (#703)
fe84141
(layout) Document the difference in the split methods (#750)
48b0380
(scrollbar) Complete scrollbar documentation (#823)
e67d3c6
(table) Fix typo (#707)
065b6b0
(terminal) Document buffer diffing better (#852)
86168aa
(uncategorized) Fix docstring for
Max
constraints (#898)11e4f6a
(uncategorized) Adds better documentation for constraints and flex 📚 (#818)
1746a61
(uncategorized) Update links to templates repository 📚 (#810)
43b2b57
(uncategorized) Fix typo in Table widget description (#797)
2b4aa46
(uncategorized) GitHub admonition syntax for examples README.md (#791)
388aa46
(uncategorized) Update crate, lib and readme links (#771)
Performance
1d3fbc1
(buffer) Apply SSO technique to text buffer in
buffer::Cell
(#601) [breaking]Testing
663bbde
(layout) Convert layout tests to use rstest (#879)
f780be3
(layout) Parameterized tests 🚨 (#858)
Miscellaneous Tasks
ba20372
(contributing) Remove part about squashing commits (#874)
d49bbb2
(ci) Update the job description for installing cargo-nextest (#839)
8d77b73
(ci) Use cargo-nextest for running tests (#717)
b7a4793
(ci) Bump alpha release for breaking changes (#495)
fab943b
(contributing) Add deprecation notice guideline (#761)
fc0879f
(layout) Comment tests that may fail on occasion (#814)
f8367fd
(uncategorized) Allow Buffer::with_lines to accept IntoIterator (#901)
78f1c14
(uncategorized) Small fixes to constraint-explorer (#894)
984afd5
(uncategorized) Cache dependencies in the CI workflow to speed up builds (#883)
6e76729
(uncategorized) Move example vhs tapes to a folder (#867)
151db6a
(uncategorized) Add commit footers to git-cliff config (#805)
Fixes:Changelog truncating body text orhun/git-cliff#297
c24216c
(uncategorized) Add comment on PRs with unsigned commits (#768)
Contributors
Thank you so much to everyone that contributed to this release!
Here is the list of contributors who have contributed to
ratatui
for the first time!Sponsors
Shout out to our new sponsors!
This discussion was created from the release v0.26.0.
Beta Was this translation helpful? Give feedback.
All reactions