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.

2025 release notes

This page contains release notes for Streamlit versions released in 2025. For the latest version of Streamlit, see Release notes.

Release date: March 25, 2025

Highlights

  • ๐Ÿ’ˆ Introducing advanced theming options! Use an assortment of configuration options to customize the appearance of your app. Change the fonts, colors, and roundness of your app without CSS.
  • ๐Ÿ‘ฎ Introducing st.badge to insert a colored badge element. You can also include badges in Markdown using a new directive.
  • ๐Ÿ—๏ธ Use streamlit init in your terminal to create all the local files you need for a new Streamlit app.

Notable Changes

  • ๐Ÿค– st.exception includes links to open Google or ChatGPT with the contents of the exception. This includes uncaught exceptions displayed in the app.
  • ๐Ÿ—บ๏ธ You can access the user's locale through st.context (#10563).

Other Changes

  • ๐Ÿ“„ When using a pages/ directory to automatically generate a multipage app, no pages (including the entrypoint file) can have the same inferred URL pathname (#10276).
  • ๐ŸŽ๏ธ To improve performance, Streamlit uses the React 18 createRoot API for its frontend (#10453).
  • ๐Ÿ“ To improve compatibility with AI tools, script compilation errors are logged when logger.level="error" and not just when logger.level="debug" (#10826).
  • ๐Ÿชต Streamlit automatically enables more detailed logging if rich is installed (#10650).
  • ๐Ÿ”ข st.slider and st.number_input raise an error when assigned a value in excess of a declared minimum or maximum (#9964, #9342).
  • ๐Ÿ› ๏ธ st.table support pandas Styler.set_tooltips() (#10561, #10553).
  • โ„น๏ธ Material symbols have been updated to the latest icon set (#10813, #10717).
  • ๐Ÿฆ‹ Visual tweaks to headers (#10599).
  • ๐Ÿฆ€ Bug fix: st.html displays correctly when used inside st.tabs (#10825, #10815).
  • ๐ŸฆŽ Bug fix: For backwards compatibility, theme.font="sans serfi" is internally converted to the new theme.font="sans-serif" (#10789, #10786).
  • ๐ŸŒ Bug fix: When using st.secrets, if Streamlit can't find the secrets.toml file, it will raise a FileNotFoundError (#10508, #8559).
  • ๐Ÿ•ธ๏ธ Bug fix: st.secrets raises a clear TypeError if you try to assign a value to an attribute (#10698, #10107).
  • ๐Ÿฆ— Bug fix: In single-page apps, st.page_link does not highlight external links as if they are the current page (#10690, #10689).
  • ๐Ÿฆ‚ Bug fix: st.poppover displays at the correct width when using the help parameter (#10709, #10693).
  • ๐ŸฆŸ Bug fix: All components (and custom components) that read their width from the DOM initially load with a width of -1 px to prevent flickering (#10712, #10672, #10663, #10644).
  • ๐Ÿฆ  Bug fix: When st.number_input is configured to use integers, the default minimum and maximum values will prevent integer overflow (#10655, #6740).
  • ๐Ÿชฐ Bug fix: st.navigation uses immutable types to prevent mypy errors (#10670).
  • ๐Ÿชณ Bug fix: Custom components correctly inherit font from theme configuration (#10661, #10660).
  • ๐Ÿ•ท๏ธ Bug fix: Dataframes correctly support Dask data objects (#10662).
  • ๐Ÿž Bug fix: Button widths are correct when using the help parameter (#10658, #10648, #10656).
  • ๐Ÿ Bug fix: Scrolling is disabled when hovering over st.number_input to prevent accidental value changes (#10642, #8867).
  • ๐Ÿœ Bug fix: st.chat_input gives a clear error in the UI when the file size limit is exceeded (#10530).
  • ๐Ÿชฒ Bug fix: The favicon and Markdown emojis use the same SVG emoji source for consistency (#10539, #6822).
  • ๐Ÿ› Bug fix: The dataframe search bar is more responsive to width (#10534, #10532).

Release date: March 4, 2025

Highlights

  • ๐Ÿ“ Announcing the option to accept files with st.chat_input!
  • ๐Ÿ“’ Introducing a new column type for column configuration! Use JsonColumn to show JSON-compatible objects.

Notable Changes

Other Changes

  • ๐Ÿฅท Users can hide dataframe columns (#10264, #6870).
  • ๐Ÿ“… Users can change the format of numbers, dates, and times in dataframes (#10420).
  • โ†”๏ธ Users can auto-size column widths (#10476).
  • ๐Ÿปโ€โ„๏ธ Streamlit supports Polars dataframe and series hashing (#10408, #10347).
  • โ˜ ๏ธ rich is no longer a required dependency for Streamlit (#10320).
  • ๐Ÿฆ‹ st.file_uploader has a better display format in narrow containers (#10272).
  • ๐ŸฆŽ Bug fix: Tabs are prevented from having a width of zero to prevent flickering (#10533).
  • ๐ŸŒ Bug fix: Column order is correctly displayed when set in column configuration (#10445, #10442).
  • ๐Ÿ•ธ๏ธ Bug fix: We updated dataframe null handling to prevent deprecation warnings (#10484).
  • ๐Ÿฆ— Bug fix: Elapsed time doesn't overflow for st.audio_input (#10410, #10373). Thanks, ashm-dev!
  • ๐Ÿฆ‚ Bug fix: st.altair_chart does not show an incorrect "true" tooltip when the user makes a selection (#10456, #10448).
  • ๐ŸฆŸ Bug fix: Streamlit does not raise a RuntimeError when an asyncio event loop is not already running (#10455, #10452).
  • ๐Ÿฆ  Bug fix: The key for an internal MIME type is set correctly to avoid a browser warning (#10404).
  • ๐Ÿชฐ Bug fix: st.data_editor automatically scrolls to the bottom when a user adds a row (#10405, #10351).
  • ๐Ÿชณ Bug fix: Tooltips are suppressed on user-added rows in st.data_editor to prevent erroneous warnings (#10398).
  • ๐Ÿ•ท๏ธ Bug fix: st.logo displays consistently when used with fragments and dialogs (#10377, #10350, #10382).
  • ๐Ÿž Bug fix: st.graphviz_chart has rounded corners for consistent style (#10224).
  • ๐Ÿ Bug fix: Streamlit raises a clear exception when an underscore is used in provider for st.login (#10360, #10356).
  • ๐Ÿœ Bug fix: The dataframe column menu displays correctly inside dialogs (#10359, #10357).
  • ๐Ÿชฒ Bug fix: Exception handling was adjusted for improved compatibility with Cython (#10354, #10353). Thanks, tutu-sol!
  • ๐Ÿ› Bug fix: st.pills and st.segmented_control have consistent font sizes across browsers (#10349).

Release date: February 4, 2025

Highlights

  • ๐Ÿ‘ฉโ€๐Ÿ’ป Introducing st.login() and st.logout() to authenticate users with any OpenID Connect provider.

Notable Changes

  • โฃ๏ธ st.table supports Markdown (#8785, #10088).
  • โฒ๏ธ st.spinner can show elapsed time with show_time=True (#6805, #10072).
  • ๐Ÿ’ˆ st.image supports Markdown in the caption parameter (#6808, #10075).
  • โ†•๏ธ st.code has a height parameter (#7418, #10080).
  • โ†”๏ธ Most charts default to using use_container_width=True (#10064).
  • โ„๏ธ SnowflakeConnection was updated to match the current Snowflake API, which changes its handling of keyword arguments in some cases (#10122).
  • ๐Ÿ Users can drag and drop dataframe columns to rearrange them (#8796, #10099).

Other Changes

  • ๐Ÿ“Œ Dataframes have column menus for users to sort and pin columns (#10206).
  • ๐Ÿšฆ Dataframes support categorical indices (#9647, #10195).
  • ๐Ÿ›ธ Dataframes show a hover highlight on rows (#8096, #10104).
  • โš ๏ธ When dataframes have cell values that are inconsistent with their configured type, Streamlit shows a tooltip describing the error (#8253, #9899).
  • โžฐ If there is an existing asyncio event loop when a Streamlit app starts, the app will reuse it instead of creating a new one (#10164). Thanks, DeltaGa!
  • ๐Ÿ–ผ๏ธ Streamlit recognizes pyspark.sql.connect.dataframe.DataFrame objects as dataframes (#9953, #9954). Thanks, OSalama!
  • ๐Ÿ˜ƒ We've updated emoji validation for new emojis (#10149).
  • ๐Ÿ”ฃ Material Symbols have been updated with the latest icons (#10247).
  • ๐Ÿ’… Visual tweaks and improvements (#8705, #9823, #10047, #10048, #10083, #10087, #10225).
  • โญ• st.image displays rounded corners for consistent design (#9999).
  • ๐ŸŽฉ Bug fix: Top margin is applied correctly in st.columns (#10265, #10268).
  • ๐Ÿ’ฉ Bug fix: react-syntax-highlighter is aliased to prevent rendering errors in st.code (#10231, #10244).
  • ๐Ÿงน Bug fix: We improved error messages for st.query_params (#10111, #10237).
  • ๐Ÿชฑ Bug fix: Linting for st.altair_chart recognizes all Altair chart types (#10202).
  • โ†—๏ธ Bug fix: st.dataframe supports raw Arrow data (#5606, #10191).
  • ๐Ÿ Bug fix: st.navigation and st.page_link work when running in pure Python tests (#10163).
  • โ˜ ๏ธ Bug fix: Retries were added to prevent a possible race condition when files are removed while Streamlit is running (#10148).
  • ๐Ÿ‘ฝ Bug fix: When printing an app, st.logo will only print once (#10165, #10171).
  • ๐ŸŒ Bug fix: Material icons are marked to prevent translation (#10168, #10174).
  • ๐Ÿ‘ป Bug fix: st.vega_lite_chart correctly caches and updates its data (#6689, #10125).
  • ๐Ÿฆ€ Bug fix: When a fragment ID is not found, Streamlit logs a warning but doesn't raise an error (#9921, #10130).
  • ๐Ÿฆ‹ Bug fix: The label on st.expander correctly fades when stale (#10085).
  • ๐ŸฆŽ Bug fix: st.date_input provides better type hinting for its return value (#9477, #9620). Thanks, pranaybattu!
  • ๐ŸŒ Bug fix: In dataframes, small float values display their first significant figure instead of displaying as 0 (#10060).
  • ๐Ÿ•ธ๏ธ Bug fix: When rich is installed, errors are only logged once. (#10097).
  • ๐Ÿฆ— Bug fix: st.text preserves whitespace (#10055, #10062).
  • ๐Ÿฆ‚ Bug fix: Dataframe width is not ignored when height is changed (#9762, #10036).
  • ๐ŸฆŸ Bug fix: Multi index columns correctly handle empty labels (#9749, #10035).
  • ๐Ÿฆ  Bug fix: Pinned columns respect column_order in when configured in st.dataframe (#9997, #10034).
  • ๐Ÿชฐ Bug fix: Tooltips don't overflow to the left or right (#9288, #9452, #9983).
  • ๐Ÿชณ Bug fix: Disabled feedback widgets correctly show their value (#10030).
  • ๐Ÿ•ท๏ธ Bug fix: Widgets correctly submit values if a user edits the value and immediately clicks a button (#10007, #10018).
  • ๐Ÿž Bug fix: Some MIME types have been hardcoded to protect against browser misconfiguration (#10004, #10010).
  • ๐Ÿ Bug fix: Files that unnecessarily inflated Streamlit's installation size were removed (#10008, #10011).
  • ๐Ÿœ Bug fix: st.date_input gives the correct type hint for the value parameter (#10005, #10006).
  • ๐Ÿชฒ Bug fix: st.write passes to st.html when ._repr_html() is present for an object (#9910).
  • ๐Ÿ› Bug fix: st.html preserves target=_blank if set in an HTML string (#9972, #9994).
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.