github Textualize/textual v0.86.0
The Quickening Release

latest release: v0.86.1
6 hours ago

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

Don't miss a new textual release

NewReleases is sending notifications on new releases.