petter2025's picture
Update ui/styles.py
9f90b04 verified
raw
history blame
6.28 kB
"""
UI Styles for ARF Demo - LIGHT THEME FOR READABILITY
"""
import logging
logger = logging.getLogger(__name__)
def get_styles() -> str:
"""
Return CSS styles for the ARF demo - LIGHT THEME FOR READABILITY
"""
css = """
/* ARF Demo Styles - Clean Light Theme */
/* Fix for all text to be readable */
body, .gr-box, .gr-form, .gr-panel, .gr-tab, .gr-container {
background-color: #f8fafc !important;
color: #1e293b !important;
}
/* Make all text black/dark */
h1, h2, h3, h4, h5, h6, p, span, div, label, .markdown, .gr-markdown {
color: #1e293b !important;
}
/* Header gradient - keep but ensure text is white */
.header-gradient {
background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%) !important;
border-radius: 16px;
padding: 30px 40px !important;
color: white !important;
}
.header-gradient h1,
.header-gradient h2,
.header-gradient h3,
.header-gradient p {
color: white !important;
}
/* Status bar */
.status-bar {
background: #f1f5f9 !important;
border: 1px solid #e2e8f0 !important;
border-radius: 12px;
padding: 15px !important;
}
/* Cards - white background with readable text */
.arf-card, .gr-box, .gr-panel {
background: white !important;
border: 1px solid #e2e8f0 !important;
border-radius: 14px !important;
color: #1e293b !important;
}
/* Tab navigation */
.tab-nav {
background: white !important;
border-bottom: 2px solid #e2e8f0 !important;
}
.tab-nav .tab {
color: #64748b !important;
padding: 12px 24px !important;
}
.tab-nav .tab.selected {
color: #3b82f6 !important;
background: #f8fafc !important;
border: 2px solid #e2e8f0 !important;
border-bottom-color: white !important;
}
/* Buttons */
button {
border-radius: 10px !important;
font-weight: 600 !important;
}
button.primary {
background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%) !important;
color: white !important;
border: none !important;
}
button.secondary {
background: white !important;
border: 2px solid #e2e8f0 !important;
color: #1e293b !important;
}
/* Form elements */
.gr-dropdown, .gr-slider, .gr-textbox, .gr-checkbox, .gr-radio {
background: white !important;
border: 1px solid #e2e8f0 !important;
color: #1e293b !important;
}
.gr-dropdown label, .gr-slider label, .gr-textbox label {
color: #1e293b !important;
font-weight: 600 !important;
}
/* Plots - ensure they have white background */
.gr-plot, .plotly.js-plotly-plot {
background: white !important;
border-radius: 12px;
border: 1px solid #e2e8f0;
}
/* JSON display */
.gr-json {
background: white !important;
border: 1px solid #e2e8f0 !important;
border-radius: 8px;
color: #1e293b !important;
}
/* Dataframes */
.gr-dataframe {
background: white !important;
border: 1px solid #e2e8f0 !important;
border-radius: 8px;
}
/* Agent cards */
.agent-card {
background: white !important;
border: 2px solid #e2e8f0 !important;
border-radius: 14px;
color: #1e293b !important;
}
.agent-card.active {
border-color: #10b981 !important;
background: #f0fdf4 !important;
}
/* Metric cards */
.metric-card {
background: white !important;
border: 1px solid #e2e8f0 !important;
border-left: 4px solid #3b82f6 !important;
border-radius: 12px;
color: #1e293b !important;
}
/* Footer */
footer {
background: #f1f5f9 !important;
color: #64748b !important;
border-top: 2px solid #e2e8f0 !important;
}
footer a {
color: #3b82f6 !important;
}
/* Badges */
.badge {
color: white !important;
font-weight: bold !important;
}
/* Ensure all HTML content has proper colors */
.gr-html div, .gr-html span, .gr-html p, .gr-html h1, .gr-html h2, .gr-html h3, .gr-html h4 {
color: #1e293b !important;
}
/* Fix for scenario card */
.scenario-card {
background: white !important;
border: 1px solid #e2e8f0 !important;
color: #1e293b !important;
}
/* Make sure all text in the workflow section is readable */
#tab1 .gr-markdown,
#tab1 .gr-html,
#tab1 h1, #tab1 h2, #tab1 h3,
#tab1 p, #tab1 span, #tab1 div {
color: #1e293b !important;
}
/* Plot titles */
.gr-plot h3, .gr-plot .plot-title {
color: #1e293b !important;
}
/* Section headers */
.section-header {
color: #1e293b !important;
border-bottom: 2px solid #e2e8f0 !important;
}
/* Fix for approval display */
.approval-display {
background: white !important;
border: 2px solid #e2e8f0 !important;
color: #1e293b !important;
}
/* OSS vs Enterprise sections */
.oss-section, .enterprise-section {
background: white !important;
border: 2px solid #e2e8f0 !important;
color: #1e293b !important;
}
.oss-section {
border-color: #0ea5e9 !important;
}
.enterprise-section {
border-color: #10b981 !important;
}
"""
return css
def get_installation_badges() -> str:
"""Get installation badge HTML - SIMPLIFIED VERSION"""
return """
<div style="display: flex; justify-content: center; gap: 10px; margin-top: 10px; flex-wrap: wrap;">
<span style="padding: 4px 12px; background: #f59e0b;
color: white; border-radius: 20px; font-size: 12px; font-weight: bold;
display: flex; align-items: center; gap: 6px;">
⚠️ Checking ARF Installation...
</span>
</div>
"""
__all__ = ["get_styles", "get_installation_badges"]