Skip to content

Releases: Textualize/textual

The Absolute hotfix

24 Nov 20:43
3a8eedd
Compare
Choose a tag to compare

Two extra-sneaky bugs fixed.

[0.87.1] - 2024-11-24

Fixed

  • Fixed offset not being applied to grid layout #5281
  • Fixed Select overlay set to auto width #5282

The Absolute Unit of a Release

24 Nov 12:19
de9897b
Compare
Choose a tag to compare

This version adds support for position:absolute in the CSS.

Also in this release is a game added to the demo.
Play the game by running the following command:

python -m textual.demo.game
Screenshot 2024-11-24 at 12 18 10

[0.87.0] - 2024-11-24

Added

  • Added Styles.has_any_rules #5264
  • Added position CSS rule. #5278
  • Added Widget.set_scroll #5278
  • Added Select.selection #5278

Fixed

  • Fixed offset applied to docked widgets #5264
  • Fixed loading widgets responding to input #5267

The Quickening tutorial update

19 Nov 15:53
532a6b0
Compare
Choose a tag to compare

[0.86.3] - 2024-11-19

Changed

  • Updated the tutorial (text and code) #5257

Fixed

  • Fixed a glitch with the scrollbar that occurs when you hold a to add stopwatches in the tutorial app #5257

The Quickening fix part 2

18 Nov 16:23
8d99130
Compare
Choose a tag to compare

A couple of hot-fixes.

[0.86.2] - 2024-11-18

Fixed

  • Fixed visibility glitch for widgets with an offset #5253
  • Fixed theme variables being unavailable in code until refresh_css was called #5254

The Quickening fix release

16 Nov 18:54
Compare
Choose a tag to compare

Just a tweak to the demo.

[0.86.1] - 2024-11-16

Fixed

  • Tweaks to demo

The Quickening Release

16 Nov 18:35
Compare
Choose a tag to compare

This is a large release!

v0.86.0 Adds an entirely new theming system and an updated demo (Run python -m textual).

The new theming system standardizes the look-and-feel of widgets. This should mean they will look pretty when used in combination, and you will need less tweaking of your UI. If your app already has a customized look and feel, you may need to make a few style changes. Let us know if you need any help with that (jump on the Discord server).

Here's what the demo looks like now:

Screenshot 2024-11-16 at 18 52 01
Screen.Recording.2024-11-16.at.19.08.15.mov

Use the command palette to switch themes...

[0.86.0] - 2024-11-16

Fixed

  • Fixed duplicated key displays in the help panel #5037
  • Fixed TextArea mouse selection with tab characters #5212
  • Fixed Tabs not updating the highlighting after removing a tab #5218

Added

  • Added App.theme reactive attribute #5087
  • Added various starter themes #5087
  • Added "Change theme" command to command palette #5087
  • Added variant parameter to Label widget for quick access to common styles #5087
  • Added App.get_theme which returns a theme by name #5087
  • Added App.register_theme and App.unregister_theme #5087
  • Added App.theme_changed_signal #5087
  • Added App.available_themes property which returns a mapping of theme names to Theme instances #5087
  • Added App.current_theme property which returns the currently active theme object #5087
  • Added App.get_theme_variable_defaults which returns a mapping of theme variables to their default values #5087
  • Added App.search which allows bringing up a fuzzy search list of commands on-demand #5087
  • Added App.search_themes which allows bringing up a fuzzy search list of themes on-demand #5087
  • Added textual.theme.ThemeProvider, a command palette provider which returns all registered themes #5087
  • Added several new built-in CSS variables #5087
  • Added support for in-band terminal resize protocol #5217
  • Added TEXTUAL_THEME environment var, which should be a comma separated list of desired themes #5238
  • Added Widget.is_scrolling #5238
  • Added Tree.add_json #5238

Changed

  • Driver.process_event is now Driver.process_message #5217
  • Driver.send_event is now Driver.send_message #5217
  • Added can_focus and can_focus_children parameters to scrollable container types. #5226
  • Added textual.lazy.Reveal #5226
  • Added Screen.action_blur #5226
  • Click events can now be used with the on decorator to match the originally clicked widget #5238
  • Breaking change: Removed App.dark reactive attribute #5087
  • Breaking change: To improve consistency, several changes have been made to default widget CSS and the CSS variables which ship with Textual. On upgrading, your app will likely look different. All of these changes can be overidden with your own CSS. #5087

Removed

  • Removed App.HOVER_EFFECTS_SCROLL_PAUSE #5238

The Focus, Will, Focus! Release

02 Nov 18:19
2413818
Compare
Choose a tag to compare

An interim fix, for broken focus-within pseudo-selector

[0.85.2] - 2024-11-02

  • Fixed broken focus-within #5190

The Freddy's hotfix Release

26 Oct 18:39
Compare
Choose a tag to compare

Hotfix to fix saving screenshots on Windows

[0.85.1] - 2024-10-26

Fixed

  • Fixed encoding issue when saving files such as screenshots on Windows #5182

The Freddy's Revenge Release

25 Oct 15:06
Compare
Choose a tag to compare

This versions updates the demo app. The previous demo was written quite a while ago and needed a refresh. It's not quite finished (there are plenty more widgets to cover), but it is still a bug improvement over the old one.

python -m textual

Give it a shot, we think it is pretty fun to play with.

Screen.Recording.2024-10-25.at.16.02.46.mov

There are a number of other updates in this release, and some under-the-hood changes for even smoother updates and optimizations. See below for the full list...

Enjoy!

[0.85.0] - 2024-10-25

Changed

  • Grid will now size children to the maximum height of a row #5113
  • Markdown links will be opened with App.open_url automatically #5113
  • The universal selector (*) will now not match widgets with the class -textual-system (scrollbars, notifications etc) #5113
  • Renamed Screen.can_view and Widget.can_view to Screen.can_view_entire and Widget.can_view_entire #5174

Added

  • Added Link widget #5113
  • Added open_links to Markdown and MarkdownViewer widgets #5113
  • Added App.DEFAULT_MODE #5113
  • Added Containers.HorizontalGroup and Containers.VerticalGroup #5113
  • Added $, £, , (, ) symbols to Digits #5113
  • Added Button.action parameter to invoke action when clicked #5113
  • Added immediate parameter to scroll methods #5164
  • Added textual._loop.loop_from_index #5164
  • Added min_color and max_color to Sparklines constructor, which take precedence over CSS #5174
  • Added new demo python -m textual, not quite finished but better than the old one #5174
  • Added Screen.can_view_partial and Widget.can_view_partial #5174
  • Added App.is_web property to indicate if the app is running via a web browser #5128
  • Enter and Leave events can now be used with the on decorator #5159

Fixed

  • Fixed glitchy ListView #5163

The Who You Gonna Call Release

22 Oct 13:20
3d65f2b
Compare
Choose a tag to compare

This was mainly a hotfix for a potential infinite loop in the TextArea, although there are a few fun additions: see below

[0.84.0] - 2024-10-22

Fixed

  • Fixed RadioSet not being scrollable #5100
  • Fixed infinite loop in TextArea #5154

Added

  • Added background-tint CSS rule #5117
  • Added :first-of-type, :last-of-type, :odd, and :even pseudo classes #5139