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