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