Highlights
Streamlit has additional theming configuration options!
theme.baseFontWeight: Set the root font weight of text in the app.theme.chartCategoricalColors: Configure default categorical colors for Plotly, Altair, and Vega-Lite charts.theme.chartSequentialColors: Configure default sequential colors for Plotly, Altair, and Vega-Lite charts.theme.codeFontWeight: Set the font weight of code text.theme.dataframeHeaderBackgroundColor: Set the background color of dataframe headers.theme.headingFontSizes: Set the font sizes of headings.theme.headingFontWeights: Set the font weights of headings.theme.linkUnderline: Configure whether to underline links.
Notable Changes
You can set the unsubmitted value of st.chat_inputthrough Session State (#10175, #7166).- ↔️ You can set a
widthparameter forst.html,st.feedback,st.pills,st.segmented_control, andst.multiselect.
You can set a heightparameter forst.metricandst.text_area.
st.codeandst.formcan haveheight="stretch".
st.codecan havewidth="content".
You can show the elapsed time with the spinner for cached functions using the show_timeparameter (#11469, #10647). Thanks, Darkace01!server.showEmailPromptlets you configure whether to show the email prompt (for locally running apps).
NumberColumnandProgressColumnsupport"bytes"as a predefined format (#11288, #11287). Thanks, cgivre!
Column configuration accepts pixel widths for columns (#11838).
The display_textparameter ofLinkColumnaccepts a Material icon (#11690, #7004).
The titleparameter ofst.dialogaccepts Markdown (#11763, #11755).
To support proxying requests for custom components, in declare_component, you can set bothurlandpath(#11698).
Other Changes
Section labels in the sidebar navigation widget are collapsible (#11863).
The “Deploy” button is hidden when the “File change” notification is visible in the app chrome (#11834).
When using top navigation in an app, the header has more padding (#11836).
In NumberColumn, the precision fromstepwill override the display precision fromformat, unlessformatis a printf string (#11835).
When st.date_inputaccepts a date range, the widget displays a quick-select option below the calendar for common date ranges (#10166, #11108).
Dataframes support font weight defined in pandasStylerobjects (#11705, #6461).
The about dialog does not show by default in the app menu. The current Streamlit version is displayed in the settings dialog (#10091).
st.metricuses a background color for the delta value, likest.badge(#11678).
IDEs can give type hints for .clear()on cached functions (#11793, #11821). Thanks, whitphx!
Bug swap: To prevent a multipage app regression, st.context.themedoes not automatically rerun the app on first load. In some cases,st.context.thememay not be correct until the first rerun (#11870, #11797).
Bug fix: st.chat_inputdisplays correctly at the bottom of the screen in mobile view (#11896, #11722, #11891).
Bug fix: When a WebSocket reconnects, the app will fully rerun to prevent missing fragments (#11890, #11660).
Bug fix: To reduce No such file or directoryerrors, the file watcher has more robust exception handling and clearer logging (#11871, #11841, #11809, #11728).
Bug fix: Vega-Lite facet charts do not flicker (#11833).
Bug fix: When the initial sidebar state is set to "collapsed", the sidebar correctly loads in a collapsed state without flickering open (#11861, #11848).
Bug fix: To prevent apps from being out of sync with their current code at a later time, Streamlit clears the script cache when all file watchers disconnect (#11876, #11739). Thanks, diwu-sf!
Bug fix: Inline code in tooltips has the same relative size as inline code in other Markdown text (#11877).
Bug fix: st.multiselectandst.selectboxdisplay the correct placeholder text whenaccept_new_options=True(#11623, #11609).
Bug fix: The column visibility menu can be closed by toggling the toolbar icon (#11857, #11801).
Bug fix: Progress bar columns in dataframes have the correct padding between the bar and its label (#11685).
Bug fix: The warning indicator in a dataframe cell adapts to theme configuration (#11682).
Bug fix: To fix multiple visual and UX bugs in dataframe, glide-data-gridwas updated (#11677, #8310, #9498, #9471).
Bug fix: In the sidebar navigation widget, font spacing and weight were adjust for visual clarity (#11814).
Bug fix: Altair charts correctly resize in width to match their container (#11807, #11802).
Bug fix: The running-man icon matches the theme configuration (#11461, #11371). Thanks, TreavVasu!
Bug fix: The top header background is correctly opaque when it contains elements (#11787, #11785).
Bug fix: Extra top padding is removed when printing (#11798).
Bug fix: Markdown inline code displays correctly when unsafe_allow_html=True(#11817, #11800). Thanks, bajajku!
Bug fix: The WebSocket ping interval does not exceed the timeout interval (#11693, #11670).
Bug fix: The sidebar state initialized correctly on Community Cloud and page content slides and resizes correctly in response to the sidebar (#11732, #11702, #11710).
Bug fix: The timer in st.spinneruses system time to prevent pausing when the user focuses on another browser tab (#11756, #11720).
Bug fix: Empty containers with borders and empty expanders are visible before elements are added to them (#11669).
Bug fix: st.audio_inputandst.camera_inputhave consistent appearances (#11699, #11700).
Bug fix: To prevent a race condition, the file watcher correctly applies a lock to watched paths (#11692, #11691).