1.51.0
Breaking Changes📦 streamlitView on GitHub →
⚠ 1 breaking✨ 35 features🐛 12 fixes🔧 26 symbols
Summary
Streamlit 1.51.0 adds extensive layout, theming, and widget identity enhancements along with many bug fixes, while removing Python 3.9 support.
⚠️ Breaking Changes
- Python 3.9 support has been removed; users must upgrade to Python >=3.10.
Migration Steps
- Review any custom theme configurations and migrate to the new theme.base structure if needed.
- If you relied on Python 3.9‑specific behavior, test your app under Python >=3.10.
- No code changes are required for the new widget key identity, but you may want to start using the key parameter for consistent widget identity.
✨ New Features
- Add width to st.plotly_chart.
- Automatically hide row indices in st.dataframe when row selection is active.
- Add width to st.vega_lite_chart.
- Add codeTextColor config and update linkColor.
- Add height to st.vega_lite_chart.
- Add width to st.pydeck_chart.
- Use key as main identity for st.color_picker widget.
- Add type argument to st.popover to match st.button.
- Add width to st.altair_chart.
- Add cursor kwarg to st.write_stream.
- Preload slow Python modules in streamlit hello command.
- Reusable custom themes via theme.base config.
- Make streamlit run with no args default to streamlit_app.py.
- Allow st.feedback to have a default initial value.
- Add height to st.altair_chart.
- Modernize height parameter for st.pydeck_chart.
- Update width and height handling for st.map.
- Modernize width/height parameters for st.scatter_chart.
- Modernize width and height for st.area_chart and st.bar_chart.
- Custom Dark Theme – add light/dark section configurations for theme and theme.sidebar.
- Use key as main identity for st.segmented_control widget.
- Use key as main identity for st.radio widget.
- Use key as main identity for st.audio_input widget.
- Add pinned parameter to MultiselectColumn.
- Use key as main identity for st.slider and st.select_slider widgets.
- Custom Dark Theme – support light/dark config inheritance and populate new session message.
- Use key as main identity for st.chat_input widget.
- Add support for auto color to MultiselectColumn using chart colors.
- Allow configuring color for ProgressColumn.
- Use key as main identity for st.feedback and st.pills widgets.
- Add stretch height option to st.dataframe.
- Custom Dark Theme – theme and sidebar theme creation.
- Custom Dark Theme – main and settings menu updates.
- Add API for st.space.
- Add st.components.v2.components namespace and classes.
🐛 Bug Fixes
- Slider thumbs no longer overshoot the track.
- Fix vega chart unrecognized dataset error.
- Add AbortController for async upload operations.
- Fix PlotlyChart flickering by adding overflow hidden.
- Pills now show selected values when disabled.
- Make Python Altair code thread‑safe.
- Fix file watcher issue with common path check.
- Correct showErrorDetails config parsing for deprecation warnings.
- Explicitly show error message for 500 errors.
- Make fuzzy search case‑insensitive.
- Fix DataFrame content width horizontal alignment.
- Fix pyplot/image width regression in fragments and containers.
🔧 Affected Symbols
st.plotly_chartst.dataframest.vega_lite_chartst.pydeck_chartst.color_pickerst.popoverst.altair_chartst.write_streamstreamlit.hellotheme.basest.feedbackst.pillsst.segmented_controlst.radiost.audio_inputMultiselectColumnst.sliderst.select_sliderst.chat_inputProgressColumnst.spacest.components.v2.componentsst.mapst.scatter_chartst.area_chartst.bar_chart