Change8

1.52.0

Breaking Changes
📦 streamlitView on GitHub →
3 breaking24 features🐛 21 fixes2 deprecations🔧 30 symbols

Summary

Streamlit 1.51.0 introduces numerous UI enhancements, new widget parameters, and performance improvements, while removing native bokeh chart support and deprecating certain APIs.

⚠️ Breaking Changes

  • Native bokeh chart support has been removed; replace `st.bokeh_chart` usage with alternative chart libraries or custom components.
  • `add_rows` command now includes a deprecation note; update code to avoid relying on deprecated behavior and migrate to newer data handling APIs.
  • Keyword‑argument support for `st.vega_lite_chart` is deprecated; stop passing kwargs and use the explicit parameters instead.

Migration Steps

  1. Remove any usage of `st.bokeh_chart` or other native bokeh chart APIs.
  2. Update calls to `add_rows` to follow the new non‑deprecated behavior or replace them with alternative data‑handling functions.
  3. Stop passing arbitrary keyword arguments to `st.vega_lite_chart`; use the explicit parameters documented in the API.
  4. For `st.file_uploader` and `st.camera_input`, provide a stable `key` argument to maintain widget state across reruns.

✨ New Features

  • Support width="content" on `st.container`.
  • Add `height="content"` to `st.dataframe` and `st.data_editor`.
  • Add height support to `st.plotly_chart`.
  • Add `accept_audio` parameter to enable audio recording in `st.chat_input`.
  • Add `help` argument and tooltip to `st.badge`.
  • Add frontend for executing JavaScript in `st.html`.
  • Use `key` as the main identity for `st.file_uploader` widget.
  • Use `key` as the main identity for `st.camera_input` widget.
  • Add microphone permission‑denied error handling to audio components.
  • Implement missing placeholder for `st.dataframe`.
  • Show warning when hiding index in dynamic data editor.
  • Add deferred download button.
  • Add text alignment parameter to `st.text`.
  • Add support for setting spinner as `icon`.
  • Add official support for Python 3.14.
  • Introduce a new datetime input widget.
  • Allow configuring delta arrow in `st.metric`.
  • Add text alignment for heading elements.
  • Support passing query parameters to `st.switch_page`.
  • Add `audio_sample_rate` parameter to `st.chat_input` for customizable recording quality.
  • Add optional `uvloop` support for better event‑loop performance.
  • Allow configuring keyboard shortcuts on buttons.
  • Support passing query parameters to `st.page_link`.
  • Add `text_alignment` parameter to markdown elements.

🐛 Bug Fixes

  • Fix negative height calculation in `st.text_area`.
  • Fix `MultiselectColumn` issue when starting with empty rows.
  • Fix `MultiselectColumn` shape error when adding data.
  • Fix font fallback and sidebar page navigation font.
  • Fix disabled widgets showing border when `showWidgetBorder=true`.
  • Fix wrapping regression for `st.pills` and `st.segmented_control`.
  • Fix minimum width constraint for `st.color_picker`.
  • Improve metric sparkline hovering efficiency.
  • Fix date picker icon visibility in dark mode for `st.dataframe`.
  • Fix visual regression with `st.audio_input` waveform.
  • Bump `js-yaml` from 3.14.1 to 3.14.2 in component library.
  • Do not print warning for placeholder CCv2 definitions.
  • Fix icon wrapping with minimum width enforcement in `st.feedback`.
  • Remove upper bound for the `packaging` package.
  • Fix empty Markdown code blocks rendering as “undefined”.
  • Fix segmented control wrapping issue.
  • Ensure key is reflective of data argument in CCv2 instances.
  • Fix query parameters not preserved on back navigation.
  • Enable better file uploading on Android.
  • Reclassify Auth Callback Error to Warning.
  • Improve `st.line_chart` hovering performance.

🔧 Affected Symbols

st.bokeh_chartadd_rowsst.vega_lite_chartst.containerst.dataframest.data_editorst.plotly_chartst.chat_inputst.badgest.htmlst.file_uploaderst.camera_inputst.metricst.switch_pagest.page_linkst.textst.spinnerst.text_areast.pillsst.segmented_controlst.color_pickerst.feedbackst.audio_inputst.line_chartMultiselectColumnFormsContextScriptRunContextThemeContextNavigationContextSidebarConfigContext

⚡ Deprecations

  • `add_rows` command is deprecated.
  • Keyword‑argument support for `st.vega_lite_chart` is deprecated.