Shuya Feng
feat: Implement DP-SGD Explorer web application with Flask backend, interactive frontend, and easy deployment script
6640531
/* Learning Hub Container */ | |
.learning-container { | |
display: flex; | |
gap: 2rem; | |
padding: 2rem; | |
max-width: 1400px; | |
margin: 0 auto; | |
} | |
/* Sidebar Styles */ | |
.learning-sidebar { | |
flex: 0 0 300px; | |
background: #f8f9fa; | |
border-radius: 8px; | |
padding: 1.5rem; | |
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); | |
height: fit-content; | |
position: sticky; | |
top: 2rem; | |
} | |
.learning-steps { | |
list-style: none; | |
padding: 0; | |
margin: 1rem 0; | |
} | |
.learning-step { | |
padding: 0.75rem 1rem; | |
margin: 0.5rem 0; | |
border-radius: 6px; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
font-size: 0.95rem; | |
color: #495057; | |
} | |
.learning-step:hover { | |
background: #e9ecef; | |
color: #212529; | |
} | |
.learning-step.active { | |
background: #007bff; | |
color: white; | |
font-weight: 500; | |
} | |
/* Content Area Styles */ | |
.learning-content { | |
flex: 1; | |
min-width: 0; | |
} | |
.step-content { | |
display: none; | |
animation: fadeIn 0.3s ease; | |
} | |
.step-content.active { | |
display: block; | |
} | |
/* Typography */ | |
.section-title { | |
font-size: 2.5rem; | |
color: #212529; | |
margin-bottom: 2rem; | |
text-align: center; | |
} | |
.panel-title { | |
font-size: 1.25rem; | |
color: #343a40; | |
margin-bottom: 1rem; | |
} | |
.step-content h2 { | |
font-size: 2rem; | |
color: #212529; | |
margin-bottom: 1.5rem; | |
} | |
.step-content h3 { | |
font-size: 1.5rem; | |
color: #343a40; | |
margin: 2rem 0 1rem; | |
} | |
.step-content p { | |
font-size: 1rem; | |
line-height: 1.6; | |
color: #495057; | |
margin-bottom: 1rem; | |
} | |
/* Concept Box Styles */ | |
.concept-box { | |
display: flex; | |
gap: 1.5rem; | |
margin: 2rem 0; | |
} | |
.box1, .box2 { | |
flex: 1; | |
background: #f8f9fa; | |
padding: 1.5rem; | |
border-radius: 8px; | |
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); | |
} | |
.concept-highlight { | |
background: #e9ecef; | |
padding: 1.5rem; | |
border-radius: 8px; | |
margin: 1.5rem 0; | |
border-left: 4px solid #007bff; | |
} | |
/* Formula Styles */ | |
.formula { | |
background: #f8f9fa; | |
padding: 1.5rem; | |
border-radius: 8px; | |
margin: 1rem 0; | |
text-align: center; | |
font-family: 'Times New Roman', serif; | |
font-size: 1.2rem; | |
} | |
/* List Styles */ | |
.step-content ul, .step-content ol { | |
padding-left: 1.5rem; | |
margin: 1rem 0; | |
} | |
.step-content li { | |
margin-bottom: 0.5rem; | |
color: #495057; | |
line-height: 1.5; | |
} | |
/* Animation */ | |
@keyframes fadeIn { | |
from { | |
opacity: 0; | |
transform: translateY(10px); | |
} | |
to { | |
opacity: 1; | |
transform: translateY(0); | |
} | |
} | |
/* Responsive Design */ | |
@media (max-width: 1024px) { | |
.learning-container { | |
flex-direction: column; | |
} | |
.learning-sidebar { | |
flex: none; | |
position: static; | |
width: 100%; | |
} | |
.concept-box { | |
flex-direction: column; | |
} | |
} | |
/* Code and Math Styles */ | |
code { | |
background: #f8f9fa; | |
padding: 0.2rem 0.4rem; | |
border-radius: 4px; | |
font-family: 'Courier New', monospace; | |
font-size: 0.9rem; | |
} | |
sub { | |
font-size: 0.75em; | |
vertical-align: sub; | |
} | |
/* Links */ | |
.step-content a { | |
color: #007bff; | |
text-decoration: none; | |
transition: color 0.2s ease; | |
} | |
.step-content a:hover { | |
color: #0056b3; | |
text-decoration: underline; | |
} | |
/* Strong Text */ | |
strong { | |
color: #212529; | |
font-weight: 600; | |
} |