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.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.