Releases: Textualize/textual
The Fixed faster than superman on laundry day Release
The 6.7 - if you know, you know release
The mark of the Best release
A few minor updates and fixes.
Also a style change for the checkbox widget. Expect snapshot test files if you have used checkboxes.
Thanks to the contributors!
[6.6.0] - 2025-11-10
Fixed
- Fixed
TextAreacursor display on wrapped lines #6196 - Fixed
remove_childrennot refreshing layout #6206 - Fixed flicker with :hover pseudo class #6214
- Fixed scrollbar not updating after textarea paste #6219
Added
- Added
grid_sizeproperty toGridLayout#6210 - Exposed
NoSelectionandBLANKviatextual.widgets.select#6214 - Added
Widget.FOCUS_ON_CLICKclassvar amdWidget.focus_on_clickmethod #6216 - Added support for the kitty keyboard protocol on Windows #6207
- Added
Widget.mount_compose#6216
Changed
- Change highlight style of Select to only highlight the border, not the label #6214
The Spooky Trap release 🎃
The one word command release
Some fixes and a change to the command palette to use shorter commands, which look better in a list and are more memorable.
There is also a optimization which you may notice if you have complex widgets.
[6.4.0] - 2025-10-22
Fixed
- Fixed type hint aliasing for App under TYPE_CHECKING #6152
- Fixed circular dependency effecting
bazelusers #6163 - Fixed for text selection with double width characters #6186
Changed
- Simplified system commands (command palette) to a single word #6183
The Pithonic release
Version 6.3.0 adds support for Python 3.14, but drops support for Python3.8.
If you are updating, you may also want to update textual-dev.
There is also a new CSS rule, and a fix for code highlighting.
Enjoy!
[6.3.0] - 2025-10-11
Added
- Added scrollbar-visibility rule #6156
Fixed
- Fixed highlight not auto-detecting lexer #6167
Changed
The Copy release
The Eager release
A mixed back of features and fixes.
See the changelog for details!
[6.2.0] - 2025-09-30
Changed
- Eager tasks are now enabled On Python3.12 and above #6102
Widget._arrangeis now public (asWidget.arrange) #6108- Reduced number of layout operations required to update the screen #6108
- The :hover pseudo-class no applies to the first widget under the mouse with a hover style set #6132
- The footer key hover background is more visible #6132
- Made
App.delay_updatepublic #6137 - Pilot.click will return True if the initial mouse down is on the specified target #6139
Added
- Added
DOMNode.displayed_and_visible_children#6102 - Added
Widget.process_layout#6105 - Added
App.viewport_size#6105 - Added
Screen.size#6105 - Added
compactto Binding.Group #6132 - Added
Screen.get_hover_widgets_at#6132 - Added
Content.wrap#6138 - Added support to allow support for manual keys in add_columns as well. #5923
Fixed
- Fixed issue where Segments with a style of
Nonearen't rendered #6109 - Fixed visual glitches and crash when changing
DataTable.header_height#6128 - Fixed TextArea.placeholder not handling multi-lines #6138
- Fixed issue with RichLog when App.theme is set early #6141
- Fixed children of collapsible not being focusable after collapsible is expanded #6143
The Flat release
The Anniversary Release
This is a fairly large update, with some new features and optimizations.
There are a few breaking changes, which are unlikely to impact many apps. Unless you have build custom line-API widgets. See below for the details.
You may have to regenerate your snapshot tests, mostly as a result of the optimizations. I wouldn't expect the changes result in any material changes.
Thanks to all contributors!
[6.0.0] - 2025-08-31
Fixed
- Fix type hint for SelectType: only hashable types are allowed. #6034
- Fixed
Content.expand_tabs#6038 - Fixed return value for
Pilot.double_clickandPilot.triple_click#6035 - Fixed sizing issue with
Prettywidget #6040 #6041 - Fixed garbled inline app output when
inline_no_clear=True#6080
Added
- Added
bar_renderabletoProgressBarwidget #5963 - Added
OptionList.set_options#6048 - Added
TextArea.suggestion#6048 - Added
TextArea.placeholder#6048 - Added
Header.format_titleandApp.format_titlefor easier customization of title in the Header #6051 - Added
Widget.get_line_filtersandApp.get_line_filters#6057 - Added
Binding.Group#6070 - Added
DOMNode.displayed_children#6070 - Added
TextArea.hide_suggestion_on_blurboolean #6070 - Added
OptionList.highlighted_optionproperty #6090 - Added
TextArea.update_suggestionmethod #6090 - Added
textual.getters.app#6089
Changed
- Breaking change: The
renderableproperty on theStaticwidget has been changed tocontent. #6041 - Breaking change:
HeaderTitlewidget is now a static, with notextandsub_textreactives #6051 - Breaking change: Renamed
Labelconstructor argumentrenderabletocontentfor consistency #6045 - Breaking change: Optimization to line API to avoid applying background styles to widget content. In practice this means that you can no longer rely on blank Segments automatically getting the background color.