Spaces:
Runtime error
Runtime error
/* Custom styles for AI Lecture Generator */ | |
:root { | |
--primary-color: #2c3e50; | |
--secondary-color: #3498db; | |
--success-color: #27ae60; | |
--warning-color: #f39c12; | |
--error-color: #e74c3c; | |
--background-color: #f8f9fa; | |
--text-color: #2c3e50; | |
--border-color: #ddd; | |
} | |
/* Global styles */ | |
body { | |
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; | |
background-color: var(--background-color); | |
color: var(--text-color); | |
line-height: 1.6; | |
} | |
/* Header styles */ | |
.gradio-container h1 { | |
color: var(--primary-color); | |
text-align: center; | |
margin-bottom: 2rem; | |
font-size: 2.5rem; | |
font-weight: bold; | |
} | |
/* Status boxes */ | |
.status-box { | |
padding: 15px; | |
border-radius: 8px; | |
margin: 15px 0; | |
font-weight: 500; | |
border-left: 4px solid; | |
} | |
.status-box.success { | |
background-color: #d4edda; | |
border-left-color: var(--success-color); | |
color: #155724; | |
} | |
.status-box.error { | |
background-color: #f8d7da; | |
border-left-color: var(--error-color); | |
color: #721c24; | |
} | |
.status-box.processing { | |
background-color: #d1ecf1; | |
border-left-color: var(--secondary-color); | |
color: #0c5460; | |
} | |
.status-box.warning { | |
background-color: #fff3cd; | |
border-left-color: var(--warning-color); | |
color: #856404; | |
} | |
/* Button styles */ | |
.gradio-button { | |
background: linear-gradient(135deg, var(--secondary-color), #2980b9); | |
color: white; | |
border: none; | |
padding: 12px 24px; | |
border-radius: 6px; | |
font-weight: 500; | |
transition: all 0.3s ease; | |
cursor: pointer; | |
} | |
.gradio-button:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 4px 12px rgba(52, 152, 219, 0.3); | |
} | |
.gradio-button.primary { | |
background: linear-gradient(135deg, var(--success-color), #229954); | |
} | |
.gradio-button.secondary { | |
background: linear-gradient(135deg, #95a5a6, #7f8c8d); | |
} | |
/* File upload area */ | |
.file-upload { | |
border: 2px dashed var(--border-color); | |
border-radius: 8px; | |
padding: 2rem; | |
text-align: center; | |
transition: all 0.3s ease; | |
} | |
.file-upload:hover { | |
border-color: var(--secondary-color); | |
background-color: #f0f8ff; | |
} | |
/* Input fields */ | |
.gradio-textbox, | |
.gradio-dropdown { | |
border: 1px solid var(--border-color); | |
border-radius: 6px; | |
padding: 10px; | |
font-size: 14px; | |
transition: border-color 0.3s ease; | |
} | |
.gradio-textbox:focus, | |
.gradio-dropdown:focus { | |
border-color: var(--secondary-color); | |
outline: none; | |
box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1); | |
} | |
/* Chat interface */ | |
.chatbot { | |
border: 1px solid var(--border-color); | |
border-radius: 8px; | |
background: white; | |
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); | |
} | |
.chat-message { | |
padding: 12px; | |
margin: 8px; | |
border-radius: 8px; | |
max-width: 80%; | |
} | |
.chat-message.user { | |
background: var(--secondary-color); | |
color: white; | |
margin-left: auto; | |
} | |
.chat-message.assistant { | |
background: #f1f3f4; | |
color: var(--text-color); | |
margin-right: auto; | |
} | |
/* Tab styles */ | |
.gradio-tab { | |
border-bottom: 3px solid transparent; | |
padding: 12px 24px; | |
font-weight: 500; | |
transition: all 0.3s ease; | |
} | |
.gradio-tab.selected { | |
border-bottom-color: var(--secondary-color); | |
color: var(--secondary-color); | |
} | |
/* Card-like containers */ | |
.gradio-column { | |
background: white; | |
border-radius: 8px; | |
padding: 20px; | |
margin: 10px; | |
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); | |
} | |
/* JSON display */ | |
.gradio-json { | |
background: #f8f9fa; | |
border: 1px solid var(--border-color); | |
border-radius: 6px; | |
padding: 15px; | |
font-family: 'Courier New', monospace; | |
font-size: 13px; | |
} | |
/* Loading animation */ | |
.loading { | |
display: inline-block; | |
width: 20px; | |
height: 20px; | |
border: 3px solid #f3f3f3; | |
border-top: 3px solid var(--secondary-color); | |
border-radius: 50%; | |
animation: spin 1s linear infinite; | |
} | |
@keyframes spin { | |
0% { transform: rotate(0deg); } | |
100% { transform: rotate(360deg); } | |
} | |
/* Progress bar */ | |
.progress-bar { | |
width: 100%; | |
height: 8px; | |
background-color: #f0f0f0; | |
border-radius: 4px; | |
overflow: hidden; | |
} | |
.progress-bar-fill { | |
height: 100%; | |
background: linear-gradient(90deg, var(--secondary-color), var(--success-color)); | |
transition: width 0.3s ease; | |
} | |
/* Responsive design */ | |
@media (max-width: 768px) { | |
.gradio-container { | |
padding: 10px; | |
} | |
.gradio-container h1 { | |
font-size: 2rem; | |
} | |
.gradio-column { | |
margin: 5px; | |
padding: 15px; | |
} | |
.chat-message { | |
max-width: 95%; | |
} | |
} | |
/* Accessibility improvements */ | |
.gradio-button:focus, | |
.gradio-textbox:focus, | |
.gradio-dropdown:focus { | |
outline: 2px solid var(--secondary-color); | |
outline-offset: 2px; | |
} | |
/* Dark mode support */ | |
@media (prefers-color-scheme: dark) { | |
:root { | |
--background-color: #1a1a1a; | |
--text-color: #ffffff; | |
--border-color: #404040; | |
} | |
.gradio-column { | |
background: #2d2d2d; | |
color: var(--text-color); | |
} | |
.gradio-json { | |
background: #2d2d2d; | |
color: var(--text-color); | |
} | |
.chatbot { | |
background: #2d2d2d; | |
} | |
.chat-message.assistant { | |
background: #404040; | |
color: var(--text-color); | |
} | |
} | |