Sidebar horizontal split and scroll only the bottom section

How to implement a sidebar containing the logo, 2 buttons and a menu (streamlit_antd_components) allowing the scroll of the menu but keeping visible the logo and the buttons?

import streamlit as st
import streamlit_antd_components as sac

menu_items = [
    {"label": "Group 1", "children": [
        {"label": "Item 1.1"},
        {"label": "Item 1.2"},
        {"label": "Item 1.3"},
    ]},
    {"label": "Group 2", "children": [
        {"label": "Item 2.1"},
        {"label": "Item 2.2"},
        {"label": "Item 2.3"},
    ]},
]

with st.sidebar:
    st.logo("Discuss-DM-logo.svg")

    col1, col2 = st.columns([1,2])
    with col1:
        save_button = st.button("Save", key="save_button")
    with col2:
        cancel_button = st.button("Cancel", key="cancel_button")

    menu_index = sac.menu(menu_items, open_all=True, return_index=True, key="menu")

Python 3.13.7
streamlit 1.49.1
streamlit-antd-components 0.3.2

Hi @paolo.rho

Here’s an earlier article Anybody interested in simple component to float containers? by @bouzidanas See if you can use his idea for your sidebar column…

Cheers