v8.0.0

Textualize/textualv8.0.0Feb 16, 2026by willmcgugan

AI Summary

Major version release featuring the renaming of Select.BLANK to Select.NULL to avoid conflict with Widget.BLANK, plus screen/mode management improvements and new Catppuccin themes.

Key Highlights

  • Changed Select.BLANK to Select.NULL (breaking change)
  • Added mode argument to push_screen and push_screen_wait
  • Added App.mode_change_signal and App.screen_change_signal
  • Added Tabs.get_tab method
  • Added Catppuccin Frappe and Macchiato themes

Breaking Changes

  • Changed Select.BLANK to Select.NULL to avoid clash with newer Widget.BLANK Classvar

New Features

  • mode argument for push_screen and push_screen_wait to enable pushing to non-active mode
  • App.mode_change_signal and App.screen_change_signal
  • Tabs.get_tab method
  • Catppuccin Frappe and Macchiato themes
  • 50ms delay when switching screens to prevent janky flash of old content

Full Release Notes

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 https://github.com/Textualize/textual/pull/6362
- Added `App.mode_change_signal` and `App.screen_change_signal` https://github.com/Textualize/textual/pull/6362
- Added `Tabs.get_tab` https://github.com/Textualize/textual/pull/6362
- Added Catppuccin Frappe and Macchiato themes https://github.com/Textualize/textual/pull/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. https://github.com/Textualize/textual/pull/6362
- Added 50ms delay when switching screens to allow state to udpate and prevent janky flash of old content https://github.com/Textualize/textual/pull/6362
- Breaking change: Changed `Select.BLANK` to `Select.NULL` to avoid clash with newer `Widget.BLANK` Classvar https://github.com/Textualize/textual/pull/6374