1.45.0
Breaking Changes📦 streamlitView on GitHub →
⚠ 1 breaking✨ 25 features🐛 31 fixes⚡ 1 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
- Update any hard‑coded markdown anchor links to match the new slugified IDs.
- Replace all occurrences of st.experimental_audio_input with st.audio_input.
- If you relied on selectbox/multiselect being disabled when options were empty, review the new accept_new_options behavior.
- Review custom CSS that targeted st.help borders and adjust if necessary due to unified theming.
- Check any code that manually handled st.html resize events; the new handling may change behavior.
- 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.