|
import streamlit as st |
|
|
|
|
|
|
|
st.set_page_config( |
|
page_title="SBS V2.0 mapper", |
|
|
|
|
|
layout="wide" |
|
) |
|
|
|
|
|
st.markdown(""" |
|
<style> |
|
/* Target the default Streamlit header element */ |
|
/* This is typically the <header> tag containing the title, menu, and status */ |
|
header { |
|
position: sticky; /* Use sticky positioning */ |
|
top: 0px; /* Stick to the top edge */ |
|
z-index: 999; /* Ensure the header is always on top */ |
|
background-color: rgb(255, 255, 255); /* Use white background or match Streamlit's default header color */ |
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Add shadow for better visibility */ |
|
/* Ensure no conflicting height/overflow properties that might break sticky */ |
|
height: auto; /* Allow height to adjust based on content */ |
|
overflow: visible; /* Prevent content inside header from being clipped */ |
|
} |
|
|
|
/* Add padding to the main content area to prevent it from starting behind the sticky header */ |
|
/* This targets the main container div where your app content and pages are rendered */ |
|
/* The exact value might need slight adjustment based on the header's actual height */ |
|
/* Inspect the deployed app to confirm the header height and adjust padding-top accordingly */ |
|
[data-testid="stAppViewContainer"] { |
|
padding-top: 60px; /* Estimate header height (~60px). Adjust if needed after inspection. */ |
|
} |
|
|
|
/* Adjust padding for the sidebar content as well */ |
|
[data-testid="stSidebar"] { |
|
padding-top: 60px; /* Use the same padding value as the main content */ |
|
} |
|
|
|
/* Ensure the main content block within the container also has correct top padding */ |
|
/* This might be necessary for correct spacing below the header */ |
|
.main .block-container { |
|
padding-top: 1rem; /* Keep or adjust default Streamlit content padding */ |
|
} |
|
|
|
/* If the above 'header' sticky rule still doesn't work for the main scrollbar |
|
after adjusting padding-top, it strongly indicates a parent element issue. |
|
You would need to use browser dev tools to find which parent is breaking it |
|
and potentially try applying sticky to that parent, but that is more complex. |
|
For example, if a div wrapping the header and main content had overflow: auto: |
|
div[data-testid="some-parent-container"] { |
|
position: sticky; |
|
top: 0; |
|
z-index: 998; // Lower z-index than the header |
|
background: white; |
|
} |
|
This is hypothetical and requires DOM inspection. |
|
*/ |
|
|
|
</style> |
|
""", unsafe_allow_html=True) |
|
|
|
|
|
|
|
|
|
|
|
|
|
st.logo(image="images/menu_book_60dp_75FBFD.png") |
|
|
|
|
|
st.sidebar.header("SBS V2.0 mapper") |
|
st.sidebar.write("(work in progress)") |
|
st.sidebar.text("Demo by JA-RAD") |
|
|
|
|
|
|
|
|
|
st.title("Map descriptions to SBS codes with Sentence Transformer + Reasoning") |
|
st.subheader("Select specific Chapter for quicker results") |
|
|
|
|
|
|
|
|
|
type_text_page = st.Page( |
|
page="pages/type_text.py", |
|
title="DEMO (work in progress)", |
|
icon=":material/keyboard:", |
|
default=True, |
|
) |
|
|
|
pg = st.navigation(pages=[type_text_page]) |
|
pg.run() |
|
|
|
|
|
|
|
for i in range(100): |
|
st.write(f"This is scrollable content line {i}") |
|
|