2025 release notes
This page contains release notes for Streamlit versions released in 2025. For the latest version of Streamlit, see Release notes.
Version 1.45.0
Release date: April 29, 2025
Highlights
- Announcing the general availability of
st.user
, a dict-like object to access information about the current user.
Notable Changes
st.multiselect
andst.selectbox
have a new parameter to let users add new options.st.context
has new attributes:url
,ip_address
, andis_embedded
.- Text alerts and exceptions have a new
width
parameter (#11142). - You can set the tab index for
st.components.v1.html
andst.components.v1.iframe
(#11065, #7969). - When you pass a CSS file's path to
st.html
, Streamlit will automatically insert<style>
tags and avoid creating extra space in the app (#10979, #9388, #10027). - You can add an icon to the left of the value in
st.text_input
andst.number_input
.
Other Changes
- Per the scheduled deprecation,
st.experimental_audio_input
has been removed. Usest.audio_input
instead. - Various elements received styling tweaks for consistency and compatibility with advanced theming (#10916, #10930, #10915, #10944, #10990, #11033, #11034).
- The element toolbar sizing and spacing was adjusted for improved UX (#11135, #11155).
- Bug fix: Streamlit does not display a frontend error when displaying an empty dataframe (#11100, #11064).
- Bug fix:
st.context
retains its information when callingst.rerun
(#11113, #11111). - Bug fix:
st.camera_input
has the correct color and hover effect when disabled (#11116). - Bug fix:
st.audio_input
has consistent color and hover effects with other widgets (#11118). - Bug fix:
st.logo
displays correctly when the sidebar is resized (#11063, #11062). - Bug fix:
st.file_uploader
can handle multi-part file extensions in itstype
parameter (#11043, #11041). Thanks, moutayam! - Bug fix:
theme.fontFaces
correctly supports font style (#11098, #11097). - Bug fix:
streamlit init
specifies file encoding to avoid errors in systems where UTF-8 is not the default (#11090, #11086). Thanks, ashm-dev! - Bug fix: In the sidebar, space is reserved for the scrollbar to prevent flickering from resizing (#10733, #10310).
- Bug fix:
st.logo
supports SVGs defined with aviewBox
(#11038, #10904). - Bug fix:
st.date_input
raises an error in the UI if a user enters a date outside of the specified allowed range (#10764, #8475). - Bug fix:
st.snow
andst.balloons
don't incorrectly rerun during a fragment rerun (#11015, #10961). - Bug fix: When updating
config.toml
during development, Streamlit will elegantly handle invalid TOML formatting and reload the configuration file on the next save (#10857, #1256, #8320). - Bug fix: Streamlit applies the correct hover effect when colored text is used in button labels (#10996, #8767).
- Bug fix: Streamlit ignores
__init__.py
and dotfiles in the/pages
directory when automatically declaring pages in a multipage app (#11009, #11006). st.write
received an optimization tweak for rendering strings (#10985).- Bug fix:
st.html
renders at 100% width for correct sizing (#10976, #10964). - Bug fix: Page links become disabled if a client disconnects from the Streamlit server (#10946, #9198).
- Bug fix: Streamlit supports newer emojis in page icons (#10912, #11154).
- Bug fix:
st.exception
only shows links to Google and ChatGPT when the app is being accessed throughlocalhost
(#10971, #10924). - Bug fix:
st.chat_input
will expand to show multi-line placeholder text in most browsers. Firefox does not support this fix (#10931, #10611). - Bug fix: Streamlit elegantly catches a
TypeError
when concurrent changes to rows and columns cause a failure in serialization (#10954, #10937). - Bug fix: Streamlit cleanly handles non-ASCII characters in anchor links, which may change some anchors in existing apps (#10929, #8114).
- Bug fix: To prevent a race condition, session information is not immediately cleared unless a new session message is received (#9886, #9767).
- Bug fix:
streamlit config show
correctly displaysclient.showErrorDetails
as a string instead of a list (#10921, #10913). - Bug fix:
st.selectbox
does not lose its value if a partial edit is abandoned (#10891). - Bug fix:
st.badge
doesn't falsely showrainbow
as a color option (#10896). - Bug fix: To avoid a file lock conflict the occurs with some IDEs, Streamlit's file watcher utilities retries reading files when blocked (#10868, #4486). Thanks, Morridin!
- Bug fix:
st.selectbox
andst.multiselect
have consistent color and spacing for placeholder text (#10865). - Bug fix: Context managers correctly handle form elements (#10752, #8761). Thanks, SrGesus!
- Bug fix:
st.link_button
andst.tabs
remain active when a client disconnects from a Streamlit server (#10861).
Version 1.44.0
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 whenlogger.level="debug"
(#10826). - ๐ชต Streamlit automatically enables more detailed logging if
rich
is installed (#10650). - ๐ข
st.slider
andst.number_input
raise an error when assigned a value in excess of a declared minimum or maximum (#9964, #9342). - ๐ ๏ธ
st.table
support pandasStyler.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 insidest.tabs
(#10825, #10815). - ๐ฆ Bug fix: For backwards compatibility,
theme.font="sans serfi"
is internally converted to the newtheme.font="sans-serif"
(#10789, #10786). - ๐ Bug fix: When using
st.secrets
, if Streamlit can't find thesecrets.toml
file, it will raise aFileNotFoundError
(#10508, #8559). - ๐ธ๏ธ Bug fix:
st.secrets
raises a clearTypeError
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 thehelp
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).
Version 1.43.0
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
- ๐ You can prevent
st.download_button
from triggering a rerun by settingon_click="ignore"
(#10296, #4382). - ๐ You can access a user's timezone and timezone offset through
st.context
(#10336). - โ๏ธ You can configure the row height in
st.dataframe
andst.data_editor
with a new parameter (#9549, #7266, #8632, #5386). - ๐
st.dataframe
andst.data_editor
useuse_container_width=True
by default (#10434). - ๐ค Markdown has a small text directive (#10487, #10486).
- ๐งต You can pass strings, paths, and callables to
st.navigation
in place ofStreamlitPage
objects for convenience (#10358, #10069). Thanks, ashm-dev! - ๐ Streamlit has a new custom component,
streamlit-bokeh
, to support the latest version of Bokeh (#10374, #5858). - ๐ฃ
NumberColumn
,ProgressColumn
,DatetimeColumn
,DateColumn
, andTimeColumn
have preconfigured format options for ease of use (#10179, #8788, #7702). - ๐๏ธ Static file serving supports files with JSON, XML, and common font file extensions. (#10417, #10335, #10337, #10302).
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
forst.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
andst.segmented_control
have consistent font sizes across browsers (#10349).
Version 1.42.0
Release date: February 4, 2025
Highlights
- ๐ฉโ๐ป Introducing
st.login()
andst.logout()
to authenticate users with any OpenID Connect provider.
Notable Changes
- โฃ๏ธ
st.table
supports Markdown (#8785, #10088). - โฒ๏ธ
st.spinner
can show elapsed time withshow_time=True
(#6805, #10072). - ๐
st.image
supports Markdown in thecaption
parameter (#6808, #10075). - โ๏ธ
st.code
has aheight
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 inst.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
andst.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 whenheight
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 inst.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 thevalue
parameter (#10005, #10006). - ๐ชฒ Bug fix:
st.write
passes tost.html
when._repr_html()
is present for an object (#9910). - ๐ Bug fix:
st.html
preservestarget=_blank
if set in an HTML string (#9972, #9994).
Still have questions?
Our forums are full of helpful information and Streamlit experts.