Hello there πŸ‘‹

Thanks for stopping by! We use cookies to help us understand how you interact with our website.

By clicking β€œAccept all”, you consent to our use of cookies. For more information, please see our privacy policy.

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:

pip install --upgrade streamlit

Release date: September 23, 2025

Highlights

  • 🀹 Introducing MultiselectColumn to configure colorful, editable lists in your dataframes.
  • 🎨 Announcing color palette configuration options to set the exact shade of red, orange, yellow, green, blue, violet, and grey to use in Markdown, status elements, sparklines, st.metric, and st.badge.
  • πŸ“Š st.bar_chart has a new sort parameter for conveniently sorting your bars.

Notable Changes

  • πŸ”‘ 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.button
    • st.download_button
    • st.checkbox
    • st.toggle
    • st.text_area
    • st.text_input
    • st.number_input
    • st.time_input
    • st.date_input
    • st.selectbox
    • st.multiselect
    • Custom components
  • πŸ–ŒοΈ You can configure the color of chart columns.
  • πŸ”’ st.metric supports decimal.Decimal types (#12377, #12308). Thanks, aebrahim!
  • 🎀 You can specify the sample rate for st.audio_input, and the default sample rate has been reduced to 16000 Hz.
  • βš™οΈ For clarity, in st.plotly_chart, **kwargs is deprecated and replaced by config (#12291, #12280). Thanks, zyfy29!
  • πŸ“ˆ st.line_chart and st.graphviz_chart have width parameters to use with flex containers.
  • πŸ”² You can configure st.table borders to show all, only horizontal, or no lines.
  • πŸ“‚ You can specify a default tab in st.tabs.
  • 🌐 To use hosted fonts from providers like Google and Adobe, you can declare externally hosted fonts with a URL to their CSS file in theme.font, theme.headingFont, and theme.codeFont.

Other Changes

  • 🧹 **kwargs has been removed from st.write (#12375, #12374).
  • ⏱️ To prevent browser defaults from invalidating caches too soon, cache headers include the max-age and immutable directives (#12420).
  • πŸ‘½ Material icons were updated (#12473, #12535).
  • πŸ¦‹ Visual tweaks (#12348, #12367).
  • πŸ‘» Bug fix: To correct a sequential navigation regression for st.number_input, some internal refactoring was reverted (#12547, #12526).
  • πŸ¦€ Bug fix: Custom components respect zero-size dimensions (#12479, #12454).
  • 🦎 Bug fix: Images respect center alignment in containers (#12495, #12435).
  • 🐌 Bug fix: If you use an empty string as a section label in top navigation, those pages will display individually before the collapsible sections (#12247, #12243).
  • πŸ•ΈοΈ Bug fix: To fix a performance regression, dataframes use .iat[] instead of .iloc[] internally (#12422, #10952).
  • πŸ¦— Bug fix: st.data_editor accepts Shift+Enter for multiline entry in a cell (#12401, #12386).
  • πŸ¦‚ Bug fix: To make st.pdf more compatible on Windows, MIME types were updated (#12399, #12387). Thanks, geoextra!
  • 🦟 Bug fix: To prevent long-word overflow, words are forced to break if they exceed their container's width (#12370, #12366).
  • 🦠 Bug fix: Hiding all dataframe columns won't raise a TypeError (#12361, #12227).
  • πŸͺ° Bug fix: st.logo doesn't dislocate the sidebar collapse button (#12329, #12326).
  • πŸͺ³ Bug fix: When using accept_new_options=True with st.multiselect, mobile users can access their keyboards (#12330).
  • πŸ•·οΈ Bug fix: st.components.v1.html ignores fractional pixels in width (#12354, #12340).
  • 🐞 Bug fix: st.number_input correctly accepts keyed entries (#12351, #12349).
  • 🐝 Bug fix: Markdown images maintain their aspect ratio when constrained (#12343).
  • 🐜 Bug fix: st.date_input is inclusive of min and max values (#12295, #12293).
  • πŸͺ² Bug fix: Maintain image proportions in fullscreen mode for all width settings (#12235).
  • πŸ› Bug fix: Markdown code blocks don't overflow when used in labels (#12175, #12149).
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.