Spaces:
Running
Running
/* Global dark theme */ | |
.gradio-container { | |
background-color: #000000 ; | |
color: white ; | |
height: 100vh ; | |
max-height: 100vh ; | |
overflow: hidden ; | |
} | |
/* Remove borders from all components */ | |
.gr-box, .gr-form, .gr-panel { | |
border: none ; | |
background-color: #000000 ; | |
} | |
/* Simplified sidebar styling */ | |
.sidebar { | |
background: linear-gradient(145deg, #111111, #1a1a1a) ; | |
border: none ; | |
padding: 15px ; | |
margin: 0 ; | |
height: 100vh ; | |
position: fixed ; | |
left: 0 ; | |
top: 0 ; | |
width: 300px ; | |
box-sizing: border-box ; | |
overflow-y: auto ; | |
overflow-x: hidden ; | |
} | |
/* Target the actual Gradio column containing sidebar */ | |
div[data-testid="column"]:has(.sidebar) { | |
height: 100vh ; | |
overflow-y: auto ; | |
overflow-x: hidden ; | |
} | |
/* Individual sidebar elements */ | |
.sidebar-title { | |
margin-bottom: 10px ; | |
} | |
.sidebar-description { | |
margin-bottom: 15px ; | |
} | |
/* Summary button styling - distinct from model buttons */ | |
.summary-button { | |
background: linear-gradient(135deg, #4a4a4a, #3e3e3e) ; | |
color: white ; | |
border: 2px solid #555555 ; | |
margin: 0 0 15px 0 ; | |
border-radius: 5px ; | |
padding: 12px 10px ; | |
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) ; | |
position: relative ; | |
overflow: hidden ; | |
box-shadow: | |
0 4px 15px rgba(0, 0, 0, 0.3), | |
inset 0 1px 0 rgba(255, 255, 255, 0.2) ; | |
font-weight: 600 ; | |
font-size: 14px ; | |
text-transform: uppercase ; | |
letter-spacing: 0.3px ; | |
font-family: monospace ; | |
height: 60px ; | |
display: flex ; | |
flex-direction: column ; | |
justify-content: center ; | |
align-items: center ; | |
line-height: 1.2 ; | |
width: 100% ; | |
max-width: 100% ; | |
min-width: 0 ; | |
box-sizing: border-box ; | |
} | |
.model-header { | |
margin-bottom: 10px ; | |
} | |
.model-container { | |
height: 300px ; | |
overflow-y: auto ; | |
overflow-x: hidden ; | |
margin-bottom: 15px ; | |
scrollbar-width: none ; | |
-ms-overflow-style: none ; | |
border: 1px solid #333 ; | |
border-radius: 8px ; | |
padding: 5px ; | |
} | |
.sidebar-links { | |
margin-top: 15px ; | |
} | |
/* Hide scrollbar for model container */ | |
.model-container::-webkit-scrollbar { | |
display: none ; | |
} | |
/* Ensure all sidebar content fits within width */ | |
.sidebar * { | |
max-width: 100% ; | |
word-wrap: break-word ; | |
overflow-wrap: break-word ; | |
} | |
/* Specific control for markdown content */ | |
.sidebar .markdown, | |
.sidebar h1, | |
.sidebar h2, | |
.sidebar h3, | |
.sidebar p { | |
max-width: 100% ; | |
word-wrap: break-word ; | |
overflow: hidden ; | |
} | |
/* Sidebar scrollbar styling */ | |
.sidebar::-webkit-scrollbar { | |
width: 8px ; | |
background: #111111 ; | |
} | |
.sidebar::-webkit-scrollbar-track { | |
background: #111111 ; | |
} | |
.sidebar::-webkit-scrollbar-thumb { | |
background-color: #333333 ; | |
border-radius: 4px ; | |
} | |
.sidebar::-webkit-scrollbar-thumb:hover { | |
background-color: #555555 ; | |
} | |
/* Target Gradio column containing model-container */ | |
div[data-testid="column"]:has(.model-container) { | |
flex: 1 1 auto ; | |
overflow-y: auto ; | |
overflow-x: hidden ; | |
max-height: calc(100vh - 350px) ; | |
} | |
/* Force button containers to single column in model container */ | |
.model-container .gr-button, | |
.model-container button { | |
display: block ; | |
width: 100% ; | |
max-width: 100% ; | |
margin: 2px 0 ; | |
flex: none ; | |
} | |
/* Model button styling */ | |
.model-button { | |
background: linear-gradient(135deg, #2a2a2a, #1e1e1e) ; | |
color: white ; | |
margin: 3px 0 ; | |
padding: 8px 12px ; | |
font-weight: 600 ; | |
font-size: 14px ; | |
text-transform: uppercase ; | |
letter-spacing: 0.3px ; | |
font-family: monospace ; | |
width: 100% ; | |
max-width: 100% ; | |
white-space: nowrap ; | |
text-overflow: ellipsis ; | |
display: block ; | |
cursor: pointer ; | |
transition: all 0.3s ease ; | |
} | |
.model-button:hover { | |
background: linear-gradient(135deg, #3a3a3a, #2e2e2e) ; | |
border-color: #74b9ff ; | |
color: #74b9ff ; | |
transform: translateY(-1px) ; | |
box-shadow: 0 2px 8px rgba(116, 185, 255, 0.2) ; | |
} | |
/* | |
.model-button:active { | |
background: linear-gradient(135deg, #2a2a2a, #1e1e1e) !important; | |
color: #5a9bd4 !important; | |
} | |
*/ | |
/* Model stats badge */ | |
.model-stats { | |
display: flex ; | |
justify-content: space-between ; | |
align-items: center ; | |
margin-top: 8px ; | |
font-size: 12px ; | |
opacity: 0.8 ; | |
} | |
.stats-badge { | |
background: rgba(116, 185, 255, 0.2) ; | |
padding: 4px 8px ; | |
border-radius: 10px ; | |
font-weight: 500 ; | |
font-size: 11px ; | |
color: #74b9ff ; | |
} | |
.success-indicator { | |
width: 8px ; | |
height: 8px ; | |
border-radius: 50% ; | |
display: inline-block ; | |
margin-right: 6px ; | |
} | |
.success-high { background-color: #4CAF50 ; } | |
.success-medium { background-color: #FF9800 ; } | |
.success-low { background-color: #F44336 ; } | |
/* Refresh button styling */ | |
.refresh-button { | |
background: linear-gradient(135deg, #2d5aa0, #1e3f73) ; | |
color: white ; | |
border: 1px solid #3a6bc7 ; | |
margin: 0 0 10px 0 ; | |
border-radius: 5px ; | |
padding: 6px 8px ; | |
transition: all 0.3s ease ; | |
font-weight: 500 ; | |
font-size: 11px ; | |
text-transform: lowercase ; | |
letter-spacing: 0.1px ; | |
font-family: monospace ; | |
width: 100% ; | |
max-width: 100% ; | |
min-width: 0 ; | |
box-sizing: border-box ; | |
white-space: nowrap ; | |
overflow: hidden ; | |
text-overflow: ellipsis ; | |
} | |
.refresh-button:hover { | |
background: linear-gradient(135deg, #3a6bc7, #2d5aa0) ; | |
border-color: #4a7bd9 ; | |
} | |
/* Summary button styling - distinct from model buttons */ | |
.summary-button { | |
background: linear-gradient(135deg, #4a4a4a, #3e3e3e) ; | |
color: white ; | |
border: 2px solid #555555 ; | |
margin: 0 0 15px 0 ; | |
border-radius: 5px ; | |
padding: 12px 10px ; | |
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) ; | |
position: relative ; | |
overflow: hidden ; | |
box-shadow: | |
0 4px 15px rgba(0, 0, 0, 0.3), | |
inset 0 1px 0 rgba(255, 255, 255, 0.2) ; | |
font-weight: 600 ; | |
font-size: 14px ; | |
text-transform: uppercase ; | |
letter-spacing: 0.3px ; | |
font-family: monospace ; | |
height: 60px ; | |
display: flex ; | |
flex-direction: column ; | |
justify-content: center ; | |
align-items: center ; | |
line-height: 1.2 ; | |
width: 100% ; | |
max-width: 100% ; | |
min-width: 0 ; | |
box-sizing: border-box ; | |
} | |
/* Simplified Gradio layout control */ | |
.sidebar .gr-column, | |
.sidebar .gradio-column { | |
width: 100% ; | |
} | |
/* Simplified Gradio targeting */ | |
div[data-testid="column"]:has(.sidebar) { | |
width: 300px ; | |
min-width: 300px ; | |
} | |
/* Button container with fixed height - DISABLED */ | |
/* | |
.button-container { | |
height: 50vh !important; | |
max-height: 50vh !important; | |
overflow-y: auto !important; | |
overflow-x: hidden !important; | |
scrollbar-width: thin !important; | |
scrollbar-color: #333333 #111111 !important; | |
width: 100% !important; | |
max-width: 100% !important; | |
box-sizing: border-box !important; | |
padding: 5px 0 !important; | |
margin-top: 10px !important; | |
} | |
*/ | |
/* Removed simple scroll CSS - was hiding buttons */ | |
.summary-button:hover { | |
background: linear-gradient(135deg, #5a5a5a, #4e4e4e) ; | |
color: #74b9ff ; | |
border-color: #666666 ; | |
} | |
.summary-button:active { | |
background: linear-gradient(135deg, #4a4a4a, #3e3e3e) ; | |
color: #5a9bd4 ; | |
} | |
/* Regular button styling for non-model buttons */ | |
.gr-button:not(.model-button):not(.summary-button) { | |
background-color: #222222 ; | |
color: white ; | |
border: 1px solid #444444 ; | |
margin: 5px 0 ; | |
border-radius: 8px ; | |
transition: all 0.3s ease ; | |
} | |
.gr-button:not(.model-button):not(.summary-button):hover { | |
background-color: #333333 ; | |
border-color: #666666 ; | |
} | |
/* Plot container with smooth transitions and controlled scrolling */ | |
.plot-container { | |
background-color: #000000 ; | |
border: none ; | |
transition: opacity 0.6s ease-in-out ; | |
flex: 1 1 auto ; | |
min-height: 0 ; | |
overflow-y: auto ; | |
scrollbar-width: thin ; | |
scrollbar-color: #333333 #000000 ; | |
} | |
/* Custom scrollbar for plot container */ | |
.plot-container::-webkit-scrollbar { | |
width: 8px ; | |
background: #000000 ; | |
} | |
.plot-container::-webkit-scrollbar-track { | |
background: #000000 ; | |
} | |
.plot-container::-webkit-scrollbar-thumb { | |
background-color: #333333 ; | |
border-radius: 4px ; | |
} | |
.plot-container::-webkit-scrollbar-thumb:hover { | |
background-color: #555555 ; | |
} | |
/* Gradio plot component styling */ | |
.gr-plot { | |
background-color: #000000 ; | |
transition: opacity 0.6s ease-in-out ; | |
} | |
.gr-plot .gradio-plot { | |
background-color: #000000 ; | |
transition: opacity 0.6s ease-in-out ; | |
} | |
.gr-plot img { | |
transition: opacity 0.6s ease-in-out ; | |
} | |
/* Target the plot wrapper */ | |
div[data-testid="plot"] { | |
background-color: #000000 ; | |
} | |
/* Target all possible plot containers */ | |
.plot-container img, | |
.gr-plot img, | |
.gradio-plot img { | |
background-color: #000000 ; | |
} | |
/* Ensure plot area background */ | |
.gr-plot > div, | |
.plot-container > div { | |
background-color: #000000 ; | |
} | |
/* Prevent white flash during plot updates */ | |
.plot-container::before { | |
content: ""; | |
position: absolute; | |
top: 0; | |
left: 0; | |
right: 0; | |
bottom: 0; | |
background-color: #000000; | |
z-index: -1; | |
} | |
/* Force all plot elements to have black background */ | |
.plot-container *, | |
.gr-plot *, | |
div[data-testid="plot"] * { | |
background-color: #000000 ; | |
} | |
/* Override any white backgrounds in matplotlib */ | |
.plot-container canvas, | |
.gr-plot canvas { | |
background-color: #000000 ; | |
} | |
/* Text elements */ | |
h1, h2, h3, p, .markdown { | |
color: white ; | |
} | |
/* Sidebar header enhancement */ | |
.sidebar h1 { | |
background: linear-gradient(45deg, #74b9ff, #a29bfe) ; | |
-webkit-background-clip: text ; | |
-webkit-text-fill-color: transparent ; | |
background-clip: text ; | |
text-align: center ; | |
margin-bottom: 15px ; | |
font-size: 28px ; | |
font-weight: 700 ; | |
font-family: monospace ; | |
} | |
/* Sidebar description text */ | |
.sidebar p { | |
text-align: center ; | |
margin-bottom: 20px ; | |
line-height: 1.5 ; | |
font-size: 14px ; | |
font-family: monospace ; | |
} | |
/* CI Links styling */ | |
.sidebar a { | |
color: #74b9ff ; | |
text-decoration: none ; | |
font-weight: 500 ; | |
font-family: monospace ; | |
transition: color 0.3s ease ; | |
} | |
.sidebar a:hover { | |
color: #a29bfe ; | |
text-decoration: underline ; | |
} | |
.sidebar strong { | |
color: #74b9ff ; | |
font-weight: 600 ; | |
font-family: monospace ; | |
} | |
.sidebar em { | |
color: #a29bfe ; | |
font-style: normal ; | |
opacity: 0.9 ; | |
font-family: monospace ; | |
} | |
/* Remove all borders globally */ | |
* { | |
border-color: transparent ; | |
} | |
/* Main content area */ | |
.main-content { | |
background-color: #000000 ; | |
padding: 0px 20px 40px 20px ; | |
margin-left: 300px ; | |
height: 100vh ; | |
overflow-y: auto ; | |
box-sizing: border-box ; | |
display: flex ; | |
flex-direction: column ; | |
} | |
/* Custom scrollbar for main content */ | |
.main-content { | |
scrollbar-width: thin ; | |
scrollbar-color: #333333 #000000 ; | |
} | |
.main-content::-webkit-scrollbar { | |
width: 8px ; | |
background: #000000 ; | |
} | |
.main-content::-webkit-scrollbar-track { | |
background: #000000 ; | |
} | |
.main-content::-webkit-scrollbar-thumb { | |
background-color: #333333 ; | |
border-radius: 4px ; | |
} | |
.main-content::-webkit-scrollbar-thumb:hover { | |
background-color: #555555 ; | |
} | |
/* Failed tests display - seamless appearance with constrained height */ | |
.failed-tests textarea { | |
background-color: #000000 ; | |
color: #FFFFFF ; | |
font-family: monospace ; | |
font-size: 14px ; | |
border: none ; | |
padding: 10px ; | |
outline: none ; | |
line-height: 1.4 ; | |
height: 180px ; | |
max-height: 180px ; | |
min-height: 180px ; | |
overflow-y: auto ; | |
resize: none ; | |
scrollbar-width: thin ; | |
scrollbar-color: #333333 #000000 ; | |
scroll-behavior: auto | ;|
transition: opacity 0.5s ease-in-out ; | |
scroll-padding-top: 0 ; | |
} | |
/* WebKit scrollbar styling for failed tests */ | |
.failed-tests textarea::-webkit-scrollbar { | |
width: 8px ; | |
} | |
.failed-tests textarea::-webkit-scrollbar-track { | |
background: #000000 ; | |
} | |
.failed-tests textarea::-webkit-scrollbar-thumb { | |
background-color: #333333 ; | |
border-radius: 4px ; | |
} | |
.failed-tests textarea::-webkit-scrollbar-thumb:hover { | |
background-color: #555555 ; | |
} | |
/* Prevent white flash in text boxes during updates */ | |
.failed-tests::before { | |
content: ""; | |
position: absolute; | |
top: 0; | |
left: 0; | |
right: 0; | |
bottom: 0; | |
background-color: #000000; | |
z-index: -1; | |
} | |
.failed-tests { | |
background-color: #000000 ; | |
height: 200px ; | |
max-height: 200px ; | |
min-height: 200px ; | |
position: relative; | |
transition: opacity 0.5s ease-in-out ; | |
flex-shrink: 0 ; | |
} | |
.failed-tests .gr-textbox { | |
background-color: #000000 ; | |
border: none ; | |
height: 180px ; | |
max-height: 180px ; | |
min-height: 180px ; | |
transition: opacity 0.5s ease-in-out ; | |
} | |
/* Force all textbox elements to have black background */ | |
.failed-tests *, | |
.failed-tests .gr-textbox *, | |
.failed-tests textarea * { | |
background-color: #000000 ; | |
} | |
/* Summary display styling */ | |
.summary-display textarea { | |
background-color: #000000 ; | |
color: #FFFFFF ; | |
font-family: monospace ; | |
font-size: 24px ; | |
border: none ; | |
padding: 20px ; | |
outline: none ; | |
line-height: 2 ; | |
text-align: right ; | |
resize: none ; | |
} | |
.summary-display { | |
background-color: #000000 ; | |
} | |
/* Detail view layout */ | |
.detail-view { | |
display: flex ; | |
flex-direction: column ; | |
height: 100% ; | |
min-height: 0 ; | |
} | |
/* JavaScript to reset scroll position */ | |
.scroll-reset { | |
animation: resetScroll 0.1s ease; | |
} | |
@keyframes resetScroll { | |
0% { scroll-behavior: auto; } | |
100% { scroll-behavior: auto; } | |
} | |