v6.0.0
Textualize/textualv6.0.0Aug 31, 2025by willmcgugan
AI Summary
A large update featuring optimizations to the line API, a new `Binding.Group` for key management, and various improvements to TextArea and Header widgets.
Key Highlights
- Optimizations to the line API to avoid applying background styles to widget content.
- New `Binding.Group` for managing key bindings.
- New `TextArea` features including suggestions and placeholders.
- New `Header.format_title` and `App.format_title` for easier customization.
Breaking Changes
- The `renderable` property on `Static` is now `content`.
- `HeaderTitle` widget is now a static with no `text` and `sub_text` reactives.
- Renamed `Label` constructor argument `renderable` to `content`.
- Optimization to line API to avoid applying background styles to widget content.
New Features
- `bar_renderable` to `ProgressBar`
- `OptionList.set_options`
- `TextArea.suggestion`
- `TextArea.placeholder`
- `Header.format_title` and `App.format_title`
- `Widget.get_line_filters` and `App.get_line_filters`
- `Binding.Group`
- `DOMNode.displayed_children`
- `TextArea.hide_suggestion_on_blur`
- `OptionList.highlighted_option`
- `TextArea.update_suggestion`
- `textual.getters.app`
Full Release Notes
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. https://github.com/Textualize/textual/pull/6034 - Fixed `Content.expand_tabs` https://github.com/Textualize/textual/pull/6038 - Fixed return value for `Pilot.double_click` and `Pilot.triple_click` https://github.com/Textualize/textual/pull/6035 - Fixed sizing issue with `Pretty` widget https://github.com/Textualize/textual/pull/6040 https://github.com/Textualize/textual/pull/6041 - Fixed garbled inline app output when `inline_no_clear=True` https://github.com/Textualize/textual/pull/6080 ### Added - Added `bar_renderable` to `ProgressBar` widget https://github.com/Textualize/textual/pull/5963 - Added `OptionList.set_options` https://github.com/Textualize/textual/pull/6048 - Added `TextArea.suggestion` https://github.com/Textualize/textual/pull/6048 - Added `TextArea.placeholder` https://github.com/Textualize/textual/pull/6048 - Added `Header.format_title` and `App.format_title` for easier customization of title in the Header https://github.com/Textualize/textual/pull/6051 - Added `Widget.get_line_filters` and `App.get_line_filters` https://github.com/Textualize/textual/pull/6057 - Added `Binding.Group` https://github.com/Textualize/textual/pull/6070 - Added `DOMNode.displayed_children` https://github.com/Textualize/textual/pull/6070 - Added `TextArea.hide_suggestion_on_blur` boolean https://github.com/Textualize/textual/pull/6070 - Added `OptionList.highlighted_option` property https://github.com/Textualize/textual/pull/6090 - Added `TextArea.update_suggestion` method https://github.com/Textualize/textual/pull/6090 - Added `textual.getters.app` https://github.com/Textualize/textual/pull/6089 ### Changed - Breaking change: The `renderable` property on the `Static` widget has been changed to `content`. https://github.com/Textualize/textual/pull/6041 - Breaking change: `HeaderTitle` widget is now a static, with no `text` and `sub_text` reactives https://github.com/Textualize/textual/pull/6051 - Breaking change: Renamed `Label` constructor argument `renderable` to `content` for consistency https://github.com/Textualize/textual/pull/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.