import streamlit as st from streamlit_option_menu import option_menu # Page Configuration st.set_page_config(page_title="Enhanced Navigation Demo", layout="wide") # Top Navigation Bar using option_menu selected = option_menu( menu_title=None, options=["Home", "Documentation", "Examples", "Community", "About"], icons=["house", "book", "code", "people", "info-circle"], menu_icon="cast", default_index=0, orientation="horizontal", styles={ "container": {"padding": "0!important", "background-color": "#fafafa"}, "icon": {"color": "orange", "font-size": "25px"}, "nav-link": { "font-size": "15px", "text-align": "center", "margin":"0px", "--hover-color": "#eee", }, "nav-link-selected": {"background-color": "#0083B8"}, } ) # Sidebar Navigation with st.sidebar: st.header("Navigation Menu") # Main Menu Items selected_side = option_menu( menu_title="Go to", options=["Dashboard", "Analytics", "Reports", "Settings"], icons=["speedometer2", "graph-up", "file-text", "gear"], menu_icon="list", default_index=0, ) # Expandable Reports Section if selected_side == "Reports": with st.expander("Reports", expanded=True): st.button("Weekly Report") st.button("Monthly Report") st.button("Annual Report") # Main Content Area based on top navigation if selected == "Home": st.title("Welcome to Home") st.write("This is the home page content.") # Dashboard Content st.header("Dashboard") col1, col2, col3 = st.columns(3) with col1: st.metric("Sales", "$12,345", "+2.5%") with col2: st.metric("Users", "1,234", "-8%") with col3: st.metric("Conversion", "3.2%", "+1.2%") elif selected == "Documentation": st.title("Documentation") st.write("Documentation content goes here.") elif selected == "Examples": st.title("Examples") st.write("Example content goes here.") elif selected == "Community": st.title("Community") st.write("Community content goes here.") elif selected == "About": st.title("About") st.write("About content goes here.") # Content based on sidebar selection if selected_side == "Analytics": st.header("Analytics") st.line_chart({"data": [1, 5, 2, 6, 2, 1]}) elif selected_side == "Settings": st.header("Settings") st.toggle("Dark Mode") st.toggle("Notifications") st.slider("Volume", 0, 100, 50) # Footer st.markdown( """ """, unsafe_allow_html=True )