Version 1.41.0

Notable Changes

  • :black_square_button: st.metric and st.columns have a parameter to show an optional border (#9927, #9928).
  • :art: Text and background color in Markdown can use the “primary” color from the theme.primaryColor configuration option (#9676).
  • :cold_face: You can freeze columns with column configuration to make them always visible when scrolling horizontally (#9535, #7078).
  • :three: The type parameter for buttons accepts a new option, "tertiary" (#9923).
  • :man_walking: Streamlit supports pathlib.Path objects everywhere you can use a string path (#9711, #9783).
  • :stopwatch: st.date_input and st.time_input accept ISO formatted strings for initial values (#9753).
  • :speech_balloon: st.write_stream accepts async generators, which it converts internally to sync generators (#8724, #8161).
  • :wood: The client.showErrorDetails configuration option has additional values to show or hide more information (#9909).
  • :mag_right: When Streamlit shows stack traces in the app for uncaught exceptions, internal code is omitted or reduced for easier debugging (#9913).
  • :chart_with_upwards_trend: st.line_chart shows tooltips for the nearest point on hover (#9674).
  • :globe_with_meridians: st.html will attempt to convert non-string objects with ._repr_html_() before falling back to str() (#9877).
  • :snake: Streamlit supports Python 3.13 and no longer supports Python 3.8 (#9635).

Other Changes

  • :symbols: Material Symbols have been updated with the latest icons (#9813, #9810).
  • :alien: Streamlit supports Watchdog version 6 (#9785). Thanks, RubenVanEldik.
  • :cyclone: Bug fix: Streamlit only shows cached function spinners on cache misses and doesn’t show spinners for nested cached functions (#9956, #9951).
  • :speaker: Bug fix: Streamlit’s audio buffer handles channels better to correctly play audio recordings in Firefox (#9885, #9799).
  • :fox_face: Bug fix: URL patterns are matched correctly to allow Community Cloud developer tools to display correctly in Firefox (#9849, #9848).
  • :skull_and_crossbones: Bug fix: Corrected a performance and alignment problem with containers (#9901, #9456, #9560).
  • :ghost: Bug fix: st.rerun will raise an error if an invalid scope is passed to it (#9911, #9908).
  • :butterfly: Bug fix: Dataframe toolbars show correctly in dialogs (#9897, #9461).
  • :crab: Bug fix: LinkColumn regex for display_text uses the correct URI decoding (#9895, #9893).
  • :lizard: Bug fix: st.dataframe has correct type hinting when on_selection="ignore" (#9898, #9669).
  • :snail: Bug fix: Padding is applied consistently for wide and centered layout mode (#9882, #9707).
  • :spider_web: Bug fix: st.graphviz_chart is displayed correctly when use_container_width=True (#9867, #9866).
  • :cricket: Bug fix: The overloaded definitions of st.pills and st.segmented_control use the correct selection-mode default (#9801). Thanks, RubenVanEldik!
  • :scorpion: Bug fix: st.text_area (and other widgets) are correctly submitted in a form when using Ctrl+Enter (#9847, #9841).
  • :mosquito: Bug Fix: st.write renders DeltaGenerator objects with st.help (#9828, #9827).
  • :microbe: Bug fix: st.text_area correctly matches the value in Session State when used with a key (#9829, #9825).
  • :fly: Bug fix: st.text_input does not trigger a rerun when a user submits an unchanged value (#9826).
  • :cockroach: Bug fix: Improved styling for st.exception to fix overflow and incorrect padding (#9818, #9817, #9816).
  • :spider: Bug fix: Large dataframe don’t overflow and cover the dataframe toolbar in fullscreen mode (#9803, #9798).
  • :lady_beetle: Bug fix: st.audio_input shows the correct time on recording in time zones with a half-hour offset (#9791, #9631).
  • :honeybee: Bug fix: In iOS, st.number_input shows a number pad instead of a keyboard when in focus (#9766, #9763).
  • :ant: Bug fix: Widget keys containing hyphens are correctly added to HTML classes in the DOM with an st-key- prefix (#9793).
  • :beetle: Bug fix: Audio files created by st.audio_input include a timestamp to ensure unique file names (#9768).
  • :bug: Bug fix: Double slash URL pathnames do not create a 301 redirect (#9754, #9690).
5 Likes

The new tertiary mode for buttons is hotness! I’m glad I read these release notes. With the segmented control and pill controls plus this and the material icon support, well you can really make some nice interfaces now. I’ve added some of these control into my personal note / journal app and it is looking good!

(the x in the corner here is a “tertiary” button:

and so is this refresh icon:

general shot of pills / segmented controls:

2 Likes