Skip to content

Releases: Textualize/textual

The BLANK to NULL release

16 Feb 17:14
576104f

Choose a tag to compare

The major version change is due to changing Select.BLANK to Select.NULL, to avoid an unfortunate name clash.

See below for the full changes...

[8.0.0] - 2026-02-16

Added

  • Added mode argument to push_screen and push_screen_wait to enable pushing a screen to a non-active mode #6362
  • Added App.mode_change_signal and App.screen_change_signal #6362
  • Added Tabs.get_tab #6362
  • Added Catppuccin Frappe and Macchiato themes #6335

Changed

  • It is no longer a NOOP and warning to dismiss a non-active screen. The dismiss will still work, but the screen may not update if the current mode is not active. #6362
  • Added 50ms delay when switching screens to allow state to udpate and prevent janky flash of old content #6362
  • Breaking change: Changed Select.BLANK to Select.NULL to avoid clash with newer Widget.BLANK Classvar #6374

The extended cursor release

30 Jan 13:48
9737a5a

Choose a tag to compare

The DataTable row cursor will now extend the full width of the datatable, which looks better.

The DataTable will now only emit a *Selected message if clicking a second time.

[7.5.0] - 2026-01-30

  • The DataTable row cursor will extend to the full width if there is excess space #6345
  • The DataTable will send a selected event on click, only if the cell / row / column is currently highlighted #6345

The Pointed Release

25 Jan 20:03
47ecedf

Choose a tag to compare

Adds a pointer rule to TCSS, so you can change how the mouse pointer looks over a given widget.

Screen.Recording.2026-01-25.at.17.33.18.mov

See https://textual.textualize.io/styles/pointer/ for details

[7.4.0] - 2026-01-25

Added

  • Added pointer rule #6339

The Super release

15 Jan 16:33
813aeea

Choose a tag to compare

A few fixes and small features. Enjoy.

[7.3.0] - 2026-01-15

Fixed

  • Fixed triple click on command palette raising an exception #6329

Added

  • Added DOM.query_one_optional
  • Added default parameter to get_component_rich_style get_component_rich_style

Changed

  • Added super+c (command on mac) alternative bindings for copy, for terminals that support it (Ghostty does)
  • Allow Sparkline to be of any height, not just 1 #6171

The Helping Release

11 Jan 17:43
88cbc50

Choose a tag to compare

Small update to the help system. The help panel will look for a HELP attribute on the focused widget, but now it will also look at ancestors until it finds a usable HELP attribute. There are also a few changes to add more titles to the keys area.

[7.2.0] - 2026-01-11

Changed

  • The help panel will look at ancestor widgets for a HELP attribute if there isn't one on the focused widget #6320

The BLANK Release

10 Jan 10:33
600ae3d

Choose a tag to compare

[7.1.0] - 2026-01-10

Fixed

  • Fixed issue with missing refresh #6318

Added

  • Added Widget.BLANK which can optimize rendering of large widgets (typically containers that scroll) #6318

The Good Night's Sleep Release

09 Jan 22:34
810c418

Choose a tag to compare

[7.0.3] - 2026-01-09

Fixed

  • Fixed performance issue with large scrollable containers #6317

The One Line Release

09 Jan 12:50

Choose a tag to compare

[7.0.2] - 2026-01-09

Fixed

  • Removed superfluous style updates when setting display attribute. #6316

The Transition Speed Release

07 Jan 13:08
45f66be

Choose a tag to compare

A small optimization to speed up transition when popping a screen.

[7.0.1] - 2026-01-07

Added

  • Added a refresh_styles boolean to the ScreenResult message which reduces style updates when popping screens

The Atomic Release

03 Jan 11:51
a604748

Choose a tag to compare

This is a much smaller change than the version number may suggest. A breaking change to a method added just a few days ago. But Semver mandates the major version bump.

This release has two new themes, thanks to @NSPC911

[7.0.0] - 2026-01-03

Changed

  • Node.update_node_styles has grown a animate parameter

Added