Release notes

This page lists highlights, bug fixes, and known issues for the latest release of Streamlit. If you're looking for information about nightly releases or experimental features, see Pre-release features.

star

Tip

To upgrade to the latest version of Streamlit, run:

Terminal
pip install --upgrade streamlit

Release date: March 3, 2026

Highlights

  • 🍿 Introducing dynamic containers: st.tabs, st.popover, and st.expander can rerun the app when they are opened or closed by setting the on_change parameter. If a key is also provided, you can programmatically open and close them, too.
  • πŸ–‡οΈ Announcing widget binding! Most non-trigger widgets have a bind parameter to simplify syncing widget state with query parameters.

Notable Changes

  • πŸ”— st.image has a link parameter to make images clickable with HTTP/HTTPS URLs (#14139, #9836).
  • πŸ₯· st.Page has a visibility parameter that lets you hide pages in the navigation menu while keeping them routable (#13905, #10738).
  • 🎨 Markdown supports arbitrary CSS colors for text foreground and background (#14041, #7808).
  • πŸ“ st.metric has a delta_description parameter to display descriptive text next to delta values (#13848, #13690).
  • πŸ“ You can configure the font weight and size for st.metric with the new metricValueFontWeight and metricValueFontSize configuration options (#13550, #12300). Thanks, kagawa0710!
  • πŸ“ st.table has height and width parameters (#13850, #10775, #10820).
  • πŸ“ˆ st.altair_chart and st.vega_lite_chart support selections on multi-view charts (#13591, #8643).
  • πŸ”‘ To prevent widgets from resetting when you change a parameter, widgets are transitioning to an identity based only on their keys (if provided). The following widgets use only their key for their identity:
  • πŸ“‚ st.markdown accepts width="auto" to adapt its default behavior depending on the flex layout of its container (#13841).
  • 🌐 Added a new client.allowedOrigins config option to let you customize which origins can send cross-origin postMessage (#13829, #6389).

Other Changes

  • πŸ–‹οΈ Page titles in st.Page and section labels in st.navigation support Markdown (#14053, #14010, #11771).
  • 🧹 Common block elements in widget labels are auto-escaped for convenience (#13887, #7359).
  • πŸ„β€β™‚οΈ st.multiselect lets users select all options or all currently filtered options with a single click (#13795, #4714).
  • πŸ’… Improved the design of st.multiselect and st.selectbox (#13004). Thanks, rishi-kumar0612!
  • ‼️ All widget drop-downs were restyled for consistency (#13796, #13797, #13798).
  • ↔️ For better accessibility, st.tabs displays navigation arrows when the tabs overflow their container horizontally (#13987, #5552).
  • πŸ“ The app menu was redesigned (#14101):
    • Improved accessibility (#13878, #14131).
    • Added a copy button for the Streamlit version (#13791).
    • Removed the settings menu, surfacing the theme selector and rerun settings in the main menu (#13937, #13988, #14048).
  • πŸ” Improved streamlit config show output to better distinguish theme value sources (#13761).
  • β™₯️ To improve behavior in hosted environments, the Streamlit server acknowledges client heartbeats (#13810).
  • πŸ”£ Extended sprintf to support , as a thousands separator in NumberColumn, ProgressColumn, st.number_input, st.slider, and st.metric (#13284, #1301).
  • ⬆️ Added support for cachetools 7.x (#13839, #13801).
  • ☠️ Added a deprecation notice to SnowparkConnection for better visibility (#14125).
  • πŸ¦€ Bug fix: st.spinner avoids a race condition when used right before a cache miss (#13849, #13634).
  • 🦎 Bug fix: st.date_input values are normalized in Session State to prevent a type error (#14123, #14109).
  • 🐌 Bug fix: st.metric with sparklines display correctly in horizontal flex containers (#14110, #13785).
  • πŸ•ΈοΈ Bug fix: SQLConnection.query() caches results at the instance level instead of the class level (#14094, #14077).
  • πŸ¦— Bug fix: st.segmented_control has consistent border styling on hover (#14067, #12802).
  • πŸ¦‚ Bug fix: st.date_input and st.datetime_input remove validation marks when they are cleared (#14066, #14052).
  • 🦟 Bug fix: Fixed a rendering regression for vconcat charts in Altair with faceted children (#14065, #14050).
  • 🦠 Bug fix: st.Page raised an exception if it's passed a URL path of only slashes (#14005, #13952). Thanks, nileshhadalgi016!
  • πŸͺ° Bug fix: The code block copy button was moved into a toolbar to prevent text overlap (#14024, #12958).
  • πŸͺ³ Bug fix: st.tabs retain their state when rendered after a transitional element like st.spinner (#14023, #14018).
  • πŸ•·οΈ Bug fix: Treemap and sunburst Plotly charts support selections (#13935, #9001).
  • 🐞 Bug fix: Fixed a width regression for layered vconcat charts in Altair (#13980, #13974).
  • 🐝 Bug fix: st.multiselect raises an exception when max_selections isn't positive (#13966, #13965).
  • 🐜 Bug fix: When a user adds a row to st.data_editor, all columns, including hidden ones, are initialized (#13916, #13915).
  • πŸͺ² Bug fix: st.select_slider doesn't apply its format function twice in AppTest (#13837, #13832).
  • πŸ› Bug fix: Content in collapsed expanders is not included in page search (#13818).
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.