--- title: st.sidebar slug: /develop/api-reference/layout/st.sidebar description: st.sidebar displays items in a sidebar. --- ## st.sidebar ## Add widgets to sidebar Not only can you add interactivity to your app with widgets, you can organize them into a sidebar. Elements can be passed to `st.sidebar` using object notation and `with` notation. The following two snippets are equivalent: ```python # Object notation st.sidebar.[element_name] ``` ```python # "with" notation with st.sidebar: st.[element_name] ``` Each element that's passed to `st.sidebar` is pinned to the left, allowing users to focus on the content in your app. The sidebar is resizable! Drag and drop the right border of the sidebar to resize it! ↔️ Here's an example of how you'd add a selectbox and a radio button to your sidebar: ```python import streamlit as st # Using object notation add_selectbox = st.sidebar.selectbox( "How would you like to be contacted?", ("Email", "Home phone", "Mobile phone") ) # Using "with" notation with st.sidebar: add_radio = st.radio( "Choose a shipping method", ("Standard (5-15 days)", "Express (2-5 days)") ) ``` The only elements that aren't supported using object notation are `st.echo`, `st.spinner`, and `st.toast`. To use these elements, you must use `with` notation. Here's an example of how you'd add [`st.echo`](/develop/api-reference/text/st.echo) and [`st.spinner`](/develop/api-reference/status/st.spinner) to your sidebar: ```python import streamlit as st with st.sidebar: with st.echo(): st.write("This code will be printed to the sidebar.") with st.spinner("Loading..."): time.sleep(5) st.success("Done!") ```