diff --git a/src/gui/components/_legacy.py b/src/gui/components/_legacy.py index bee8daf..d5ddc3a 100644 --- a/src/gui/components/_legacy.py +++ b/src/gui/components/_legacy.py @@ -60,15 +60,80 @@ header[data-testid="stHeader"] { footer { display: none !important; } -/* Reclaim top padding lost from hidden header */ +/* Reclaim top padding lost from hidden header. Slim the bottom too — + Streamlit's default leaves several rems below the last widget. */ .stAppViewBlockContainer, [data-testid="stAppViewBlockContainer"] { - padding-top: 1rem !important; + padding-top: 0.5rem !important; + padding-bottom: 0.75rem !important; } /* Scale content to fit app window */ .stApp { zoom: 0.85; } + +/* ---------- Compact-spacing layer ---------- */ +/* Streamlit ships generous vertical rhythm (~1rem gap between every + block, 1.5rem+ above each heading, 1rem on dividers). For a desktop + data app that's a lot of empty space. Tighten the gaps without + making the layout look cramped. */ + +/* Gap between stacked elements inside a vertical block (the default + container around most page content). */ +[data-testid="stVerticalBlock"] { + gap: 0.5rem !important; +} +[data-testid="stHorizontalBlock"] { + gap: 0.5rem !important; +} + +/* Headings — tighter top space + a hair less below. */ +.stApp h1 { margin-top: 0.25rem !important; margin-bottom: 0.5rem !important; } +.stApp h2 { margin-top: 0.5rem !important; margin-bottom: 0.4rem !important; } +.stApp h3 { margin-top: 0.4rem !important; margin-bottom: 0.3rem !important; } +.stApp h4 { margin-top: 0.3rem !important; margin-bottom: 0.25rem !important; } + +/* st.divider() — Streamlit's default hr has 1rem above and below. */ +[data-testid="stMarkdownContainer"] hr, +hr { + margin-top: 0.4rem !important; + margin-bottom: 0.4rem !important; +} + +/* Markdown paragraphs — slim trailing space. */ +[data-testid="stMarkdownContainer"] p { + margin-bottom: 0.25rem; +} + +/* Captions — slim trailing space. */ +[data-testid="stCaption"], +[data-testid="stCaptionContainer"] { + margin-bottom: 0.25rem; +} + +/* Expander header padding — Streamlit's default is roomy. */ +[data-testid="stExpander"] details > summary { + padding-top: 0.35rem; + padding-bottom: 0.35rem; +} + +/* Button row inside columns — tighter top space. */ +[data-testid="stButton"], +[data-testid="stDownloadButton"] { + margin-top: 0; + margin-bottom: 0; +} + +/* File-uploader internal spacing. */ +[data-testid="stFileUploader"] { + margin-bottom: 0.25rem; +} + +/* Metric tiles — Streamlit pads them generously inside a row. */ +[data-testid="stMetric"] { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} """