Hi there! I’m looking for some guidance as I’m new to Streamlit and haven’t found exactly what I need in the available Streamlit and community components.
I’m designing an e-commerce search page on Streamlit. The goal is to display selected filters (facets) as tags at the top of the page, allowing users to easily see and remove filters by deleting the corresponding tags. Here’s an example screenshot from an e-commerce website to illustrate this feature.
I tried using st.multiselect (see the bottom of the screenshot), but it looks like the tags aren’t able to handle longer labels, so the text gets cut off.
You can modify that by this simple function. This allows for longer text in the multiselect.
def show_longer_text_in_multiselect():
"""Show longer bits of text in streamlit multiselect items."""
st.markdown(
"""
<style>
.stMultiSelect [data-baseweb=select] span{
max-width: 250px;
}
</style>
""",
unsafe_allow_html=True,
)
# next to max-width, you can add <font-size: 0.6rem;> to change font size
Just change the 250 to how many it needs to be for your application.
Then, just call this function once at the start of your script or page.
Hopefully this helps!