Skip to content

Releases: Textualize/textual

The Fixed faster than superman on laundry day Release

01 Dec 20:58
4e0ff24

Choose a tag to compare

Hotfix for Content.fold from last release.

[6.7.1] - 2025-12-1

Fixed

  • Fixed Content.fold #6256

The 6.7 - if you know, you know release

29 Nov 16:34
3d8de08

Choose a tag to compare

[6.7.0] - 2025-11-29

Added

  • Added GridLayout.max_column_width #6228
  • Added Content.fold #6238
  • Added strip_control_codes to Content constructors #6238

Changed

  • Added Screen.get_loading_widget which deferes to App.get_loading_widget #6228

Fixed

  • Fixed anchor with ScrollView widgets #6228

The mark of the Best release

10 Nov 17:54

Choose a tag to compare

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 TextArea cursor display on wrapped lines #6196
  • Fixed remove_children not refreshing layout #6206
  • Fixed flicker with :hover pseudo class #6214
  • Fixed scrollbar not updating after textarea paste #6219

Added

  • Added grid_size property to GridLayout #6210
  • Exposed NoSelection and BLANK via textual.widgets.select #6214
  • Added Widget.FOCUS_ON_CLICK classvar amd Widget.focus_on_click method #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 🎃

31 Oct 17:23
526bdeb

Choose a tag to compare

A small release; one fix, one bug. Mainly so I could release on Halloween. 🦇

[6.5.0] - 2025-10-31

Added

  • Added DOMNode.trap_focus #6202

Fixed

  • Fixed issue with focus + scroll #6203

The one word command release

22 Oct 17:31
3427dba

Choose a tag to compare

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 bazel users #6163
  • Fixed for text selection with double width characters #6186

Changed

  • Simplified system commands (command palette) to a single word #6183

The Pithonic release

11 Oct 11:19
eed9aa0

Choose a tag to compare

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

  • Dropped support for Python3.8 #6121
  • Added support for Python3.14 #6121

The Copy release

01 Oct 16:12
a77700c

Choose a tag to compare

Hot fix for 2 copy related issues

[6.2.1] - 2025-10-01

  • Fix inability to copy text outside of an input/textarea when it was focused #6148
  • Fix issue when copying text after a double click #6148

The Eager release

30 Sep 14:25
c0e7fe3

Choose a tag to compare

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._arrange is now public (as Widget.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_update public #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 compact to 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 None aren'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

02 Sep 11:44
667dcea

Choose a tag to compare

In this release we have a new "block" border style, and new flat style buttons.

Screen.Recording.2025-09-02.at.08.21.16.mov

[6.1.0] - 2025-08-01

Added

  • Added Button.flat boolean to enable flat button style #6094
  • Added namespaces parameter to run_action #6094
  • Added "block" border style #6094

The Anniversary Release

31 Aug 16:24

Choose a tag to compare

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_click and Pilot.triple_click #6035
  • Fixed sizing issue with Pretty widget #6040 #6041
  • Fixed garbled inline app output when inline_no_clear=True #6080

Added

  • Added bar_renderable to ProgressBar widget #5963
  • Added OptionList.set_options #6048
  • Added TextArea.suggestion #6048
  • Added TextArea.placeholder #6048
  • Added Header.format_title and App.format_title for easier customization of title in the Header #6051
  • Added Widget.get_line_filters and App.get_line_filters #6057
  • Added Binding.Group #6070
  • Added DOMNode.displayed_children #6070
  • Added TextArea.hide_suggestion_on_blur boolean #6070
  • Added OptionList.highlighted_option property #6090
  • Added TextArea.update_suggestion method #6090
  • Added textual.getters.app #6089

Changed

  • Breaking change: The renderable property on the Static widget has been changed to content. #6041
  • Breaking change: HeaderTitle widget is now a static, with no text and sub_text reactives #6051
  • Breaking change: Renamed Label constructor argument renderable to content for 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.