This is quite a large release! Fueled in part by my work on Toad
Markdown rendering has been improved, with full text selection, prettier code blocks and tables. Plus streaming support.

Plenty of other fixes and additions. Thats to everyone who contributed code and issues!
There are two breaking changes (see below). These are unlikely to affect anyone, but Semver requires bumping the major version number.
[5.0.0] - 2025-07-25
Added
- Added get_minimal_width to Visual protocol #5962
- Added
expand
andshrink
attributes to GridLayout #5962 - Added
Markdown.get_stream
#5966 - Added
textual.highlight
module for syntax highlighting #5966 - Added
MessagePump.wait_for_refresh
method #5966 - Added
Widget.container_scroll_offset
e84600c - Added
Markdown.source
attribute to MarkdownBlocks e84600c - Added extension mechanism to Markdown e84600c
- Added
index
toListView.Selected
event #5973 - Added
layout
switch to Static.update #5973
Fixed
- Fixed
TextArea
issue with thecss
theme, where the background color was stuck from the previous theme #5964
Changed
- Improved rendering of Markdown tables (replace Rich table with grid) which allows text selection #5962
- Change look of command palette, to drop accented borders #5966
- Some style tweaks to Markdown e84600c
- Content markup can now accept component classes when preceded by a dot, e.g. "Hello [.my_custo_style]World[/]!" #5981
- Breaking change:
Visual.render_strips
has a new signature. If you aren't explicitly building Visuals then this won't effect you. #5981 - Breaking change: The component classes on Markdown have been moved to MarkdownBlock. This won't affect you unless you have customize the Markdown CSS #5981
- The textual-speedups library will now be imported automatically if it is installed. Set
TEXTUAL_SPEEDUPS=0
to disable.