Change8

1.45.0

Breaking Changes
📦 streamlitView on GitHub →
1 breaking25 features🐛 31 fixes1 deprecations🔧 31 symbols

Summary

Streamlit 1.45.0 introduces numerous UI enhancements, new context fields, and theming refinements, while also delivering a host of bug fixes and a breaking change that slugifies markdown anchors.

⚠️ Breaking Changes

  • Markdown anchor IDs are now slugified, which may break custom anchor links. Update any hard‑coded anchor references to use the new slugified format or adjust your markdown accordingly.

Migration Steps

  1. Update any hard‑coded markdown anchor links to match the new slugified IDs.
  2. Replace all occurrences of st.experimental_audio_input with st.audio_input.
  3. If you relied on selectbox/multiselect being disabled when options were empty, review the new accept_new_options behavior.
  4. Review custom CSS that targeted st.help borders and adjust if necessary due to unified theming.
  5. Check any code that manually handled st.html resize events; the new handling may change behavior.
  6. If you used st.fragment together with st.balloons or st.snow, verify that interactions still work as expected.

✨ New Features

  • Added url field to st.context.
  • Added ip_address field to st.context.
  • Added is_embedded field to st.context.
  • Added icon parameter to st.text_input.
  • Added icon parameter to st.number_input.
  • Unified st.help border colors (theming).
  • Allowed adding new options to selectbox and multiselect dynamically.
  • Selectbox/multiselect no longer disabled when empty options but accept_new_options is true.
  • Optimized st.write when called with a single string argument.
  • Added tab_index attribute to iframe and custom components.
  • Added width parameter to alerts and exception components.
  • Theming: use dark mix for hovered color instead of theme.colors.secondaryBg.
  • Theming: fine‑tuned element spacing for baseRadius config.
  • Theming: use borderColor in theme.sidebar for sidebar border.
  • Theming: use markdown text colors for primitives.
  • Theming: replace danger and success colors in non‑notification components.
  • Improved placeholder style and in‑edit input margin for Selectbox and Multiselect.
  • SessionInfo now remains active after initialization and includes connection information.
  • De‑experimentalized st.user (now stable).
  • Support for emoji favicons in navigation.
  • Added marker that an icon is an emoji for set_page_config.
  • Links to Google/ChatGPT are shown only when the site is localhost.
  • Excluded dot files and __init__.py from pages discovery.
  • Auto‑reload of config on exceptions.
  • Preserved context_info fields on rerun triggered by st.rerun.

🐛 Bug Fixes

  • Fixed tabs and link_button from getting disabled on disconnect.
  • Fixed inability to determine the form a current element is in.
  • Removed rainbow from badge color literal.
  • Preserved selectbox frontend state when clicking away and prevented rerun until an option is selected.
  • Fixed showErrorDetails showing wrong value in `streamlit config show`.
  • Fixed chat input height for multi‑line placeholder.
  • Theming: used borderColor in theme.sidebar for sidebar border.
  • Only show links to Google/ChatGPT if the site is localhost.
  • Added marker that an icon is an emoji for set_page_config.
  • Disabled sidebar page navigation links when the app is not connected.
  • Fixed st.html resize handling.
  • Excluded dot files and __init__.py from pages.
  • Fixed button hover color overwriting colored text.
  • Theming: fixed radio button visual for different baseFontSize.
  • Allowed auto‑reload of config on exceptions.
  • Fixed st.fragment interaction with st.balloons and st.snow.
  • Fixed frontend validation for st.date_input.
  • Improved SVG support when only viewBox is defined.
  • Refactored st.html for style tags.
  • Fixed sidebar sizing issue under certain conditions.
  • Fixed encoding handling.
  • Updated FontFaceDeclaration to support customizable font styles.
  • Handled multi‑part extensions like .tar.gz in file upload validation.
  • Fixed sidebar resizing (bug 11062).
  • Preserved context_info fields on rerun triggered by st.rerun.
  • Fixed st.dataframe({}) from showing errors.
  • Fixed st.audio_input actions styling.
  • Fixed st.camera_input disabled button styling.
  • Fixed element toolbar visual glitches (papercuts).
  • Fixed element toolbar update to version 2.
  • Removed anchor and query parameters from the URL.

🔧 Affected Symbols

st.contextst.text_inputst.number_inputst.helpst.selectboxst.multiselectst.writest.tabsst.link_buttonst.formst.badgest.showErrorDetailsst.chat_inputtheme.sidebar.borderColorst.htmlst.fragmentst.balloonsst.snowst.date_inputst.audio_inputst.camera_inputst.dataframest.userst.experimental_audio_inputst.sidebarst.exceptionst.alertst.iframecustom_componentst.session_infost.page_config

⚡ Deprecations

  • st.experimental_audio_input has been removed. Replace its usage with the stable st.audio_input API.