Skip to content

Releases: Textualize/textual

The dim tinted release

22 Apr 11:34
481a2fb
Compare
Choose a tag to compare

[3.1.1] - 2025-04-22

Fixed

  • Fixed issue with tint filter #5757
  • Fixed a crash when setting keymap before app mount #5742

The Dim the Lights Release

12 Apr 08:02
21e91cd
Compare
Choose a tag to compare

Mostly fixes, some API enhancements. See below.

[3.1.0] - 2025-04-12

Fixed

  • Fixed markup escaping edge cases #5697
  • Fixed incorrect auto height in Collapsible #5703
  • Fixed issue with keymaps and single-letter keys #5726
  • Fixed OptionList size after removing or clearing options #5728
  • Fixed footer / key panel not updating when keymaps are applied #5724
  • Fixed alignment not being applied when there are min and max limits on dimensions #5732
  • Fixed issues with OptionList scrollbar not updating #5736
  • Fixed allow_focus method not overriding can_focus() #5737
  • Fixed overlap of Input / TextArea selection with arbitrary text selection #5739

Changed

  • Collapsible title now accepts str, Text, or Content #5697
  • Rich Text objects will be converted to Content in OptionList and other widgets #5712
  • Textual will always convert dim attributes to RGB by default #5715
  • Notifications will now use content markup (previously they used Console markup) #5719

Added

  • Added TEXTUAL_DIM_FACTOR env var to set the opacity of the 'dim' ANSI attribute #5715
  • notify() now accepts a markup parameter to disable rendering the message as markup #5719
  • Added Screen.text_selection_started_signal #5739
  • Added App.clear_selection() helper method to clear arbitrary text selection of active screen #5739

The Nobody's Fool Release

01 Apr 15:02
62cd593
Compare
Choose a tag to compare

Fixes an issue with modal dialogs not refreshing.

[3.0.1] - 2025-04-01

Fixed

  • Fixed issue with modal dialog not refreshing #5696

The Too Hot Release

27 Mar 15:24
f725d5f
Compare
Choose a tag to compare

Mostly small enhancements, and fixes. This is a major version bump, due to a change in how app.query works. Previously this would query the active screen, but this would yield surprising results if you push a screen. Now app.query, gets results from the default screen.

This is unlikely to impact many apps. If it does, use app.screen.query where you previously used app.query.

[3.0.0] - 2025-03-27

Changed

  • Breaking change: App.query and friends will now always query the default (first) screen, not necessarily the active screen.
  • Content now has a default argument of an empty string, so Content() is equivalent to Content("")
  • Assigned names to Textual-specific threads: textual-input, textual-output. These should become visible in monitoring tools (ps, top, htop) as of Python 3.14. #5654
  • Tabs now accept Content or content markup #5657
  • Breaking change: Buttons will now use Textual markup rather than console markup
  • tree-sitter languages are now loaded lazily, improving cold-start time #563

Fixed

  • Static and Label now accept Content objects, satisfying type checkers #5618
  • Fixed click selection not being disabled when allow_select was set to false #5627
  • Fixed crash on clicking line API border #5641
  • Fixed Select.selection now correctly returns None if Select.BLANK is selected instead of an AssertionError
  • Fixed additional spaces after text-wrapping #5657
  • Added missing scroll_end parameter to the Log.write_line method #5672
  • Restored support for blink #5675
  • Fixed scrolling breaking on DataTable with overflow: hidden #5681

Added

  • Added Widget.preflight_checks to perform some debug checks after a widget is instantiated, to catch common errors. #5588
  • Added text-padding style #5657
  • Added Content.first_line property #5657
  • Added Content.from_text constructor #5657
  • Added Content.empty constructor #5657
  • Added Content.pad method #5657
  • Added Style.has_transparent_foreground property #5657

The fuzzy release

26 Feb 20:07
3955ece
Compare
Choose a tag to compare

A fix for the command palette's fuzzy search. Will not affect most people.

[2.1.2] - 2025-02-26

Fixed

  • Fixed command palette fuzzy search bailing too early #5579

The interrupted release

22 Feb 18:43
adf6d1c
Compare
Choose a tag to compare

Mostly fixes here. There is a small change to behavior around scroll_end. Changes below...

[2.1.1] - 2025-02-22

Fixed

  • Fixed Link binding to open the link #5564
  • Fixed IndexError in OptionList #5574
  • Fixed issue with clear_panes breaking tabbed content #5573

Changed

  • The user can now interrupt a scroll to end by grabbing the scrollbar or scrolling in any other way. Press ++end++ or scroll to the end to restore default behavior. This is more intuitive that it may sound.

The pointed release

19 Feb 15:53
33d974c
Compare
Choose a tag to compare

Mostly fixes in this release, and a small feature.

The mouse event adds pointer_* attributes which contain the pointer coordinates in pixel resolution (if supported by your terminal).

[2.1.0] - 2025-02-19

Fixed

  • Fixed smooth scrolling broken on iTerm over SSH #5551
  • Fixed height of auto container which contains auto height children #5552
  • Fixed Content.from_markup not stripping control codes #5557
  • Fixed delta_x and delta_y in mouse events when smooth scrolling is enabled #5556
  • Fixed flipped title colors in panel border #5548
  • Fixed detection of smooth scrolling #5558

Added

  • Added pointer_x, pointer_y, pointer_screen_x, and pointer_screen_y attributes to mouse events #5556

Changed

  • Animating the scrollbar while dragging is disabled if smooth scrolling is available #5558
  • Renamed TerminalSupportsInBandWindowResize to InBandWindowResize #5558

The criminally smooth hotfix release

17 Feb 12:00
c57bf45
Compare
Choose a tag to compare

[2.0.4] - 2025-02-17

Fixed

  • Fixed smooth scrolling breaking mouse support in VSCode (and probably others) #5549

The last hot release of the day

16 Feb 19:59
edca00b
Compare
Choose a tag to compare

[2.0.3] - 2025-02-16

Fixed

  • Fixed traceback from OptionList in Command Palette #5544

The refreshing hot-fix release

16 Feb 19:33
d69f0d6
Compare
Choose a tag to compare

[2.0.2] - 2025-02-16

Fixed

  • Fixed OptionList.add_options exhausting iterator #5540
  • Fixed screen not refreshing after pop #5543