EduMentorAI / src /static /css /slide_generate.css
ziadtarek12's picture
Application Code
8472119
Raw
History Blame Contribute Delete
15.5 kB
.slide-generator-container {
max-width: 800px;
margin: 0 auto;
padding: 2rem;
}
.upload-area {
border: 3px dashed #28a745;
border-radius: 15px;
padding: 3rem 2rem;
text-align: center;
background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
transition: all 0.3s ease;
cursor: pointer;
position: relative;
overflow: hidden;
}
.upload-area:hover {
border-color: #218838;
background: linear-gradient(135deg, #e9ecef 0%, #dee2e6 100%);
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(40, 167, 69, 0.2);
}
.upload-area.dragover {
border-color: #007bff;
background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
}
.upload-icon {
font-size: 4rem;
color: #28a745;
margin-bottom: 1rem;
transition: all 0.3s ease;
}
.upload-area:hover .upload-icon {
color: #218838;
transform: scale(1.1);
}
.file-input {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
cursor: pointer;
}
.slide-options {
background: white;
border-radius: 15px;
padding: 2rem;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
margin-top: 2rem;
}
.option-group {
margin-bottom: 1.5rem;
}
.option-group label {
font-weight: 600;
color: #333;
margin-bottom: 0.5rem;
display: block;
}
.form-control, .form-select {
border-radius: 10px;
border: 2px solid #e9ecef;
padding: 0.75rem 1rem;
transition: all 0.3s ease;
}
.form-control:focus, .form-select:focus {
border-color: #28a745;
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}
.generate-btn {
background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
border: none;
border-radius: 50px;
padding: 1rem 2.5rem;
font-size: 1.1rem;
font-weight: 600;
color: white;
transition: all 0.3s ease;
box-shadow: 0 4px 15px rgba(40, 167, 69, 0.3);
}
.generate-btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(40, 167, 69, 0.4);
background: linear-gradient(135deg, #218838 0%, #1dd1a1 100%);
}
.generate-btn:disabled {
background: #6c757d;
transform: none;
box-shadow: none;
cursor: not-allowed;
}
.file-preview {
background: white;
border-radius: 15px;
padding: 1.5rem;
margin-top: 1rem;
border: 2px solid #e9ecef;
display: none;
}
.file-preview.show {
display: block;
animation: fadeInUp 0.5s ease;
}
.file-item {
display: flex;
align-items: center;
padding: 1rem;
background: #f8f9fa;
border-radius: 10px;
margin-bottom: 0.5rem;
}
.file-icon {
font-size: 1.5rem;
margin-right: 1rem;
color: #28a745;
}
.file-info {
flex: 1;
}
.file-name {
font-weight: 600;
margin-bottom: 0.25rem;
}
.file-size {
font-size: 0.875rem;
color: #6c757d;
}
.remove-file {
background: #dc3545;
border: none;
border-radius: 50%;
width: 30px;
height: 30px;
color: white;
cursor: pointer;
transition: all 0.3s ease;
}
.remove-file:hover {
background: #c82333;
transform: scale(1.1);
}
.progress-container {
display: none;
margin-top: 2rem;
}
.progress-container.show {
display: block;
animation: fadeInUp 0.5s ease;
}
.progress {
height: 20px;
border-radius: 10px;
overflow: hidden;
background: #e9ecef;
}
.progress-bar {
background: linear-gradient(90deg, #28a745, #20c997);
transition: width 0.3s ease;
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.supported-formats {
margin-top: 1rem;
text-align: center;
}
.format-badge {
display: inline-block;
background: #e9ecef;
color: #6c757d;
padding: 0.25rem 0.75rem;
border-radius: 15px;
font-size: 0.875rem;
margin: 0.25rem;
}
/* Content Source Selection */
.content-source-selection {
background: white;
border-radius: 15px;
padding: 2rem;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
margin-bottom: 2rem;
}
.content-option {
position: relative;
}
.content-option input[type="radio"] {
position: absolute;
opacity: 0;
}
.content-option-label {
display: block;
background: #f8f9fa;
border: 2px solid #e9ecef;
border-radius: 12px;
padding: 1.5rem;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
height: 100%;
min-height: 140px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.content-option-label:hover {
border-color: #007bff;
background: #f0f8ff;
transform: translateY(-2px);
box-shadow: 0 4px 15px rgba(0, 123, 255, 0.15);
}
.content-option input[type="radio"]:checked + .content-option-label {
border-color: #28a745;
background: #f0fff4;
box-shadow: 0 4px 15px rgba(40, 167, 69, 0.2);
}
.content-option-icon {
font-size: 2.5rem;
color: #6c757d;
margin-bottom: 0.75rem;
transition: all 0.3s ease;
}
.content-option input[type="radio"]:checked + .content-option-label .content-option-icon {
color: #28a745;
}
.content-option-label h6 {
margin-bottom: 0.5rem;
font-weight: 600;
color: #333;
}
.content-option-label small {
color: #6c757d;
font-size: 0.875rem;
}
/* Document Selection */
.document-selection, .subject-selection {
background: white;
border-radius: 15px;
padding: 2rem;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
margin-bottom: 2rem;
}
.document-list, .subject-list {
max-height: 400px;
overflow-y: auto;
border: 1px solid #e9ecef;
border-radius: 10px;
padding: 1rem;
}
.document-item, .subject-item {
margin-bottom: 1rem;
}
.document-item:last-child, .subject-item:last-child {
margin-bottom: 0;
}
.document-item-label, .subject-item-label {
display: flex;
align-items: center;
justify-content: space-between;
background: #f8f9fa;
border: 2px solid #e9ecef;
border-radius: 10px;
padding: 1rem;
cursor: pointer;
transition: all 0.3s ease;
}
.document-item-label:hover, .subject-item-label:hover {
border-color: #007bff;
background: #f0f8ff;
}
.document-item input[type="checkbox"]:checked + .document-item-label,
.subject-item input[type="radio"]:checked + .subject-item-label {
border-color: #28a745;
background: #f0fff4;
}
.document-item input[type="checkbox"],
.subject-item input[type="radio"] {
position: absolute;
opacity: 0;
}
.document-info, .subject-info {
flex: 1;
}
.document-title, .subject-title {
font-weight: 600;
color: #333;
margin-bottom: 0.25rem;
}
.subject-code {
font-size: 0.875rem;
color: #007bff;
font-weight: 500;
margin-bottom: 0.25rem;
}
.document-meta, .subject-meta {
display: flex;
gap: 0.5rem;
flex-wrap: wrap;
align-items: center;
}
.subject-badge, .file-type, .page-count, .document-count {
background: #e9ecef;
color: #6c757d;
padding: 0.25rem 0.5rem;
border-radius: 12px;
font-size: 0.75rem;
font-weight: 500;
}
.subject-badge {
background: #d1ecf1;
color: #0c5460;
}
.file-type {
background: #f8d7da;
color: #721c24;
}
.document-count {
background: #d4edda;
color: #155724;
}
.subject-description {
color: #6c757d;
font-size: 0.875rem;
margin-top: 0.25rem;
display: block;
}
.document-icon, .subject-icon {
font-size: 1.5rem;
color: #6c757d;
margin-left: 1rem;
}
.subject-icon {
color: #007bff;
}
/* =============================================
DARK MODE STYLES
============================================= */
[data-theme="dark"] .slide-generator-container {
color: var(--text-primary);
}
/* Upload Area Dark Mode */
[data-theme="dark"] .upload-area {
border-color: var(--success-color);
background: linear-gradient(135deg, var(--background-dark) 0%, var(--chat-bg) 100%);
color: var(--text-primary);
}
[data-theme="dark"] .upload-area:hover {
border-color: var(--primary-dark);
background: linear-gradient(135deg, var(--chat-bg) 0%, var(--background-light) 100%);
box-shadow: 0 8px 25px rgba(52, 211, 153, 0.3);
}
[data-theme="dark"] .upload-area.dragover {
border-color: var(--info-color);
background: linear-gradient(135deg, rgba(56, 189, 248, 0.1) 0%, rgba(56, 189, 248, 0.2) 100%);
}
[data-theme="dark"] .upload-icon {
color: var(--success-color);
}
[data-theme="dark"] .upload-area:hover .upload-icon {
color: var(--primary-dark);
}
/* Slide Options Dark Mode */
[data-theme="dark"] .slide-options,
[data-theme="dark"] .content-source-selection,
[data-theme="dark"] .document-selection,
[data-theme="dark"] .subject-selection {
background: var(--card-bg);
border: 1px solid var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .option-group label {
color: var(--text-primary);
}
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
background: var(--input-bg);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
border-color: var(--success-color);
background: var(--input-bg);
color: var(--text-primary);
box-shadow: 0 0 0 0.2rem rgba(52, 211, 153, 0.25);
}
[data-theme="dark"] .form-control::placeholder {
color: var(--text-muted);
}
/* Content Options Dark Mode */
[data-theme="dark"] .content-option-label {
background: var(--background-dark);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .content-option-label:hover {
border-color: var(--info-color);
background: var(--chat-bg);
}
[data-theme="dark"] .content-option input[type="radio"]:checked + .content-option-label {
border-color: var(--success-color);
background: var(--card-bg);
box-shadow: 0 4px 15px rgba(52, 211, 153, 0.2);
}
[data-theme="dark"] .content-option-icon {
color: var(--text-muted);
}
[data-theme="dark"] .content-option input[type="radio"]:checked + .content-option-label .content-option-icon {
color: var(--success-color);
}
[data-theme="dark"] .content-option-label h6 {
color: var(--text-primary);
}
[data-theme="dark"] .content-option-label small {
color: var(--text-muted);
}
/* Document and Subject Lists Dark Mode */
[data-theme="dark"] .document-list,
[data-theme="dark"] .subject-list {
border-color: var(--border-color);
background: var(--background-dark);
}
[data-theme="dark"] .document-item-label,
[data-theme="dark"] .subject-item-label {
background: var(--background-dark);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .document-item-label:hover,
[data-theme="dark"] .subject-item-label:hover {
border-color: var(--info-color);
background: var(--chat-bg);
}
[data-theme="dark"] .document-item input[type="checkbox"]:checked + .document-item-label,
[data-theme="dark"] .subject-item input[type="radio"]:checked + .subject-item-label {
border-color: var(--success-color);
background: var(--card-bg);
}
[data-theme="dark"] .document-title,
[data-theme="dark"] .subject-title {
color: var(--text-primary);
}
[data-theme="dark"] .subject-code {
color: var(--info-color);
}
[data-theme="dark"] .subject-description {
color: var(--text-muted);
}
[data-theme="dark"] .subject-badge {
background: rgba(56, 189, 248, 0.2);
color: var(--info-color);
}
[data-theme="dark"] .file-type {
background: rgba(248, 113, 113, 0.2);
color: var(--danger-color);
}
[data-theme="dark"] .document-count {
background: rgba(52, 211, 153, 0.2);
color: var(--success-color);
}
[data-theme="dark"] .page-count {
background: var(--border-color);
color: var(--text-muted);
}
[data-theme="dark"] .document-icon,
[data-theme="dark"] .subject-icon {
color: var(--text-muted);
}
[data-theme="dark"] .subject-icon {
color: var(--info-color);
}
/* File Preview Dark Mode */
[data-theme="dark"] .file-preview {
background: var(--card-bg);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .file-item {
background: var(--background-dark);
color: var(--text-primary);
}
[data-theme="dark"] .file-icon {
color: var(--success-color);
}
[data-theme="dark"] .file-name {
color: var(--text-primary);
}
[data-theme="dark"] .file-size {
color: var(--text-muted);
}
[data-theme="dark"] .remove-file {
background: var(--danger-color);
}
[data-theme="dark"] .remove-file:hover {
background: #dc2626;
}
/* Generate Button Dark Mode */
[data-theme="dark"] .generate-btn {
background: linear-gradient(135deg, var(--success-color) 0%, var(--primary-dark) 100%);
box-shadow: 0 4px 15px rgba(52, 211, 153, 0.3);
}
[data-theme="dark"] .generate-btn:hover {
background: linear-gradient(135deg, var(--primary-dark) 0%, #059669 100%);
box-shadow: 0 6px 20px rgba(52, 211, 153, 0.4);
}
[data-theme="dark"] .generate-btn:disabled,
[data-theme="dark"] .btn-secondary {
background: var(--border-color);
color: var(--text-muted);
border-color: var(--border-color);
}
/* Progress Container Dark Mode */
[data-theme="dark"] .progress-container {
background: var(--card-bg);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .progress {
background-color: var(--border-color);
}
[data-theme="dark"] .progress-bar {
background: linear-gradient(90deg, var(--success-color), var(--primary-dark));
}
/* Supported Formats Dark Mode */
[data-theme="dark"] .supported-formats {
color: var(--text-muted);
}
[data-theme="dark"] .format-badge {
background: var(--border-color);
color: var(--text-muted);
}
/* Alert Messages Dark Mode */
[data-theme="dark"] .alert-success {
background: rgba(52, 211, 153, 0.1);
border-color: rgba(52, 211, 153, 0.3);
color: var(--success-color);
}
[data-theme="dark"] .alert-warning {
background: rgba(251, 191, 36, 0.1);
border-color: rgba(251, 191, 36, 0.3);
color: var(--warning-color);
}
[data-theme="dark"] .alert-danger {
background: rgba(248, 113, 113, 0.1);
border-color: rgba(248, 113, 113, 0.3);
color: var(--danger-color);
}
/* Additional Bootstrap overrides for dark mode */
[data-theme="dark"] .text-primary {
color: var(--primary-color) !important;
}
[data-theme="dark"] .text-muted {
color: var(--text-muted) !important;
}
[data-theme="dark"] .lead {
color: var(--text-secondary);
}
[data-theme="dark"] .display-5 {
color: var(--text-primary);
}
/* Button group and button outline styles */
[data-theme="dark"] .btn-outline-success {
color: var(--success-color);
border-color: var(--success-color);
}
[data-theme="dark"] .btn-outline-success:hover {
background-color: var(--success-color);
border-color: var(--success-color);
color: var(--background-dark);
}
/* Custom slide count input */
[data-theme="dark"] #customSlideCount {
background: var(--card-bg);
border-color: var(--border-color);
}
/* Background image preview */
[data-theme="dark"] #bgPreview {
border-color: var(--border-color);
}
/* Small text elements */
[data-theme="dark"] small.text-muted {
color: var(--text-muted) !important;
}