Major UI overhaul to follow mockup design
Browse filesCritical layout fixes:
- Fix processing indicator with proper gradient background and container
- Move footer to absolute bottom of page below all content
- Dramatically reduce excessive spacing throughout interface
- Improve visual hierarchy with tighter margins and padding
Mockup alignment:
- Better processing message styling matching design
- Fixed footer positioning (no longer above chat input)
- Reduced header separator margins
- Enhanced CSS for better space utilization
Space optimization:
- Reduced main container padding to 0.5rem top
- Added element spacing controls
- Better sidebar spacing management
- More professional and compact appearance
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
app.py
CHANGED
|
@@ -40,11 +40,21 @@ st.markdown("""
|
|
| 40 |
|
| 41 |
/* Reduce main container padding */
|
| 42 |
.main .block-container {
|
| 43 |
-
padding-top:
|
| 44 |
-
padding-bottom:
|
| 45 |
max-width: 100%;
|
| 46 |
}
|
| 47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
/* Sidebar */
|
| 49 |
[data-testid="stSidebar"] {
|
| 50 |
background-color: #f8f9fa;
|
|
@@ -143,13 +153,12 @@ st.markdown("""
|
|
| 143 |
.processing-indicator {
|
| 144 |
background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
|
| 145 |
color: #333;
|
| 146 |
-
padding:
|
| 147 |
-
border-radius:
|
| 148 |
-
margin:
|
| 149 |
margin-left: 0;
|
| 150 |
margin-right: auto;
|
| 151 |
-
max-width:
|
| 152 |
-
position: relative;
|
| 153 |
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
| 154 |
animation: pulse 2s infinite;
|
| 155 |
}
|
|
@@ -515,7 +524,7 @@ with header_col2:
|
|
| 515 |
label_visibility="collapsed"
|
| 516 |
)
|
| 517 |
|
| 518 |
-
st.markdown("<hr style='margin: 0.
|
| 519 |
|
| 520 |
|
| 521 |
# Load data with error handling
|
|
@@ -672,12 +681,14 @@ def show_custom_response(response):
|
|
| 672 |
return {"is_image": False}
|
| 673 |
|
| 674 |
def show_processing_indicator(model_name, question):
|
| 675 |
-
"""Show processing indicator"""
|
| 676 |
st.markdown(f"""
|
| 677 |
-
<div
|
| 678 |
-
<div class='
|
| 679 |
-
|
| 680 |
-
|
|
|
|
|
|
|
| 681 |
</div>
|
| 682 |
""", unsafe_allow_html=True)
|
| 683 |
|
|
@@ -843,10 +854,10 @@ if st.session_state.get("processing"):
|
|
| 843 |
feedbacks_given = len([r for r in st.session_state.get("responses", []) if r.get("role") == "assistant" and "feedback" in r])
|
| 844 |
st.metric("Feedbacks Given", feedbacks_given)
|
| 845 |
|
| 846 |
-
#
|
| 847 |
-
st.markdown("---")
|
| 848 |
st.markdown("""
|
| 849 |
-
<div style='text-align: center; padding: 0.5rem; font-size: 0.
|
| 850 |
© 2024 IIT Gandhinagar Sustainability Lab
|
| 851 |
</div>
|
| 852 |
-
""", unsafe_allow_html=True)
|
|
|
|
|
|
| 40 |
|
| 41 |
/* Reduce main container padding */
|
| 42 |
.main .block-container {
|
| 43 |
+
padding-top: 0.5rem;
|
| 44 |
+
padding-bottom: 3rem;
|
| 45 |
max-width: 100%;
|
| 46 |
}
|
| 47 |
|
| 48 |
+
/* Remove excessive spacing */
|
| 49 |
+
.element-container {
|
| 50 |
+
margin-bottom: 0.5rem !important;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
/* Fix sidebar spacing */
|
| 54 |
+
[data-testid="stSidebar"] .element-container {
|
| 55 |
+
margin-bottom: 0.25rem !important;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
/* Sidebar */
|
| 59 |
[data-testid="stSidebar"] {
|
| 60 |
background-color: #f8f9fa;
|
|
|
|
| 153 |
.processing-indicator {
|
| 154 |
background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
|
| 155 |
color: #333;
|
| 156 |
+
padding: 1rem 1.5rem;
|
| 157 |
+
border-radius: 12px;
|
| 158 |
+
margin: 1rem 0;
|
| 159 |
margin-left: 0;
|
| 160 |
margin-right: auto;
|
| 161 |
+
max-width: 70%;
|
|
|
|
| 162 |
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
| 163 |
animation: pulse 2s infinite;
|
| 164 |
}
|
|
|
|
| 524 |
label_visibility="collapsed"
|
| 525 |
)
|
| 526 |
|
| 527 |
+
st.markdown("<hr style='margin: 0.25rem 0; border: none; border-top: 1px solid #e2e8f0;'>", unsafe_allow_html=True)
|
| 528 |
|
| 529 |
|
| 530 |
# Load data with error handling
|
|
|
|
| 681 |
return {"is_image": False}
|
| 682 |
|
| 683 |
def show_processing_indicator(model_name, question):
|
| 684 |
+
"""Show processing indicator with gradient like mockup"""
|
| 685 |
st.markdown(f"""
|
| 686 |
+
<div style='display: flex; justify-content: flex-start; margin: 1rem 0;'>
|
| 687 |
+
<div class='processing-indicator'>
|
| 688 |
+
<div style='font-size: 0.875rem; color: #6b7280; margin-bottom: 5px;'>VayuChat • Processing with {model_name}</div>
|
| 689 |
+
<strong>Question:</strong> {question}<br>
|
| 690 |
+
<em>Generating response...</em>
|
| 691 |
+
</div>
|
| 692 |
</div>
|
| 693 |
""", unsafe_allow_html=True)
|
| 694 |
|
|
|
|
| 854 |
feedbacks_given = len([r for r in st.session_state.get("responses", []) if r.get("role") == "assistant" and "feedback" in r])
|
| 855 |
st.metric("Feedbacks Given", feedbacks_given)
|
| 856 |
|
| 857 |
+
# Footer at absolute bottom
|
|
|
|
| 858 |
st.markdown("""
|
| 859 |
+
<div style='position: fixed; bottom: 0; left: 0; right: 0; background: white; border-top: 1px solid #e2e8f0; text-align: center; padding: 0.5rem; font-size: 0.7rem; color: #6b7280; z-index: 1000;'>
|
| 860 |
© 2024 IIT Gandhinagar Sustainability Lab
|
| 861 |
</div>
|
| 862 |
+
""", unsafe_allow_html=True)
|
| 863 |
+
|