The next frontier for Streamlit: our feature roadmap for 2023 and beyond

My personal Wishlist.

(I am aware that some of my wishes already have been granted by additional modules)

Plotly:

  • get feedback from events, clicks (already on Roadmap: ‘Selections on charts’)

Tabs:

  • Markup in Labels - to also use headings etc. (maybe on Roadmap: ‘Allow markdown in widget labels’)
  • Possibility to switch between tabs programmatically. e.g: When a button in the sidebar gets clicked and the page is rerun the second tab gets selected/shown, maybe by declaring tab2.show() or tab2.active(), tab2.select()

Dataframes:

  • Make Selections possible (already on Roadmap: Selections on dataframes)

Multipage Apps:

  • I do not like the fact that in multipage apps the data from session_state of all apps gets merged together. I would prefer it when I could access it more like st.session_state.page_5.my_selectbox. This looks more structured and “feels safer”. It avoids “naming colissions” when combining apps.
  • The icon/emoji from the “main page” should be default for all “sub pages”, as long as no other icon has been specified
  • Switch between apps programmatically

The bestest of all Ideas for Selectboxes

  • I want to be able to give any list of Objects, like dataclasses, to a selectbox and have nice labels. We could define a special method to return proper labels. Let us call it __label__. I am such a genius (:sweat_smile:Turns out that is how it already works, I just have to specify/overload the __str__ method to creates nice labels. :flushed: Well now I have to simplify some of my code)
3 Likes

If case this is helpful, I managed to do this with CSS in my markdown:

full_width_buttons = """
                <style>
              
                section[data-testid="stSidebar"] div.stButton button {
                width: 100%;
                }
             
                </style>
                """

st.markdown(full_width_buttons, unsafe_allow_html=True)

This was for my sidebar though, not sure how well it’ll play for any container.

Bandcamp Explorer (bc-explorer.app) if you’d like to see it in action :slight_smile:

3 Likes

Starting version 1.18.0, you can pass use_container_width=True to st.button!

2 Likes