Notable Changes
-
st.metric
andst.columns
have a parameter to show an optional border (#9927, #9928). - Text and background color in Markdown can use the “primary” color from the
theme.primaryColor
configuration option (#9676). - You can freeze columns with column configuration to make them always visible when scrolling horizontally (#9535, #7078).
- The
type
parameter for buttons accepts a new option,"tertiary"
(#9923). - Streamlit supports
pathlib.Path
objects everywhere you can use a string path (#9711, #9783). -
st.date_input
andst.time_input
accept ISO formatted strings for initial values (#9753). -
st.write_stream
accepts async generators, which it converts internally to sync generators (#8724, #8161). - The
client.showErrorDetails
configuration option has additional values to show or hide more information (#9909). - When Streamlit shows stack traces in the app for uncaught exceptions, internal code is omitted or reduced for easier debugging (#9913).
-
st.line_chart
shows tooltips for the nearest point on hover (#9674). -
st.html
will attempt to convert non-string objects with._repr_html_()
before falling back tostr()
(#9877). - Streamlit supports Python 3.13 and no longer supports Python 3.8 (#9635).
Other Changes
- Material Symbols have been updated with the latest icons (#9813, #9810).
- Streamlit supports Watchdog version 6 (#9785). Thanks, RubenVanEldik.
- Bug fix: Streamlit only shows cached function spinners on cache misses and doesn’t show spinners for nested cached functions (#9956, #9951).
- Bug fix: Streamlit’s audio buffer handles channels better to correctly play audio recordings in Firefox (#9885, #9799).
- Bug fix: URL patterns are matched correctly to allow Community Cloud developer tools to display correctly in Firefox (#9849, #9848).
- Bug fix: Corrected a performance and alignment problem with containers (#9901, #9456, #9560).
- Bug fix:
st.rerun
will raise an error if an invalidscope
is passed to it (#9911, #9908). - Bug fix: Dataframe toolbars show correctly in dialogs (#9897, #9461).
- Bug fix:
LinkColumn
regex fordisplay_text
uses the correct URI decoding (#9895, #9893). - Bug fix:
st.dataframe
has correct type hinting whenon_selection="ignore"
(#9898, #9669). - Bug fix: Padding is applied consistently for wide and centered layout mode (#9882, #9707).
- Bug fix:
st.graphviz_chart
is displayed correctly whenuse_container_width=True
(#9867, #9866). - Bug fix: The overloaded definitions of
st.pills
andst.segmented_control
use the correct selection-mode default (#9801). Thanks, RubenVanEldik! - Bug fix:
st.text_area
(and other widgets) are correctly submitted in a form when usingCtrl+Enter
(#9847, #9841). - Bug Fix:
st.write
rendersDeltaGenerator
objects withst.help
(#9828, #9827). - Bug fix:
st.text_area
correctly matches the value in Session State when used with a key (#9829, #9825). - Bug fix:
st.text_input
does not trigger a rerun when a user submits an unchanged value (#9826). - Bug fix: Improved styling for
st.exception
to fix overflow and incorrect padding (#9818, #9817, #9816). - Bug fix: Large dataframe don’t overflow and cover the dataframe toolbar in fullscreen mode (#9803, #9798).
- Bug fix:
st.audio_input
shows the correct time on recording in time zones with a half-hour offset (#9791, #9631). - Bug fix: In iOS,
st.number_input
shows a number pad instead of a keyboard when in focus (#9766, #9763). - Bug fix: Widget keys containing hyphens are correctly added to HTML classes in the DOM with an
st-key-
prefix (#9793). - Bug fix: Audio files created by
st.audio_input
include a timestamp to ensure unique file names (#9768). - Bug fix: Double slash URL pathnames do not create a 301 redirect (#9754, #9690).