Spaces:
Sleeping
Sleeping
| :root { | |
| --primary-color: #007bff; | |
| --secondary-color: #6c757d; | |
| --success-color: #28a745; | |
| --info-color: #17a2b8; | |
| --warning-color: #ffc107; | |
| --danger-color: #dc3545; | |
| --light-color: #f8f9fa; | |
| --dark-color: #343a40; | |
| --beginner-color: #28a745; | |
| --intermediate-color: #ffc107; | |
| --advanced-color: #dc3545; | |
| --border-radius: 8px; | |
| --box-shadow: 0 2px 10px rgba(0,0,0,0.1); | |
| --transition: all 0.3s ease; | |
| } | |
| /* Global Styles */ | |
| body { | |
| font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; | |
| line-height: 1.6; | |
| color: #333; | |
| background-color: #f8f9fa; | |
| } | |
| .main-content { | |
| margin-top: 76px; /* Account for fixed navbar */ | |
| min-height: calc(100vh - 76px); | |
| } | |
| /* Typography */ | |
| .section-title { | |
| font-size: 2rem; | |
| font-weight: 600; | |
| color: var(--dark-color); | |
| margin-bottom: 0.5rem; | |
| } | |
| .section-subtitle { | |
| color: var(--secondary-color); | |
| font-size: 1.1rem; | |
| margin-bottom: 2rem; | |
| } | |
| .page-title { | |
| font-size: 2.5rem; | |
| font-weight: 700; | |
| color: var(--primary-color); | |
| margin-bottom: 0.5rem; | |
| } | |
| .page-subtitle { | |
| color: var(--secondary-color); | |
| font-size: 1.2rem; | |
| margin-bottom: 2rem; | |
| } | |
| /* Hero Section */ | |
| .hero-section { | |
| background: linear-gradient(135deg, var(--primary-color), #0056b3); | |
| color: white; | |
| padding: 4rem 2rem; | |
| border-radius: var(--border-radius); | |
| margin-bottom: 3rem; | |
| } | |
| .hero-stats { | |
| margin-top: 2rem; | |
| } | |
| .stat-item { | |
| padding: 1rem; | |
| } | |
| .stat-number { | |
| font-size: 2.5rem; | |
| font-weight: 700; | |
| margin: 0; | |
| color: white; | |
| } | |
| .stat-label { | |
| margin: 0; | |
| opacity: 0.9; | |
| font-size: 0.9rem; | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| } | |
| /* Learning Path */ | |
| .learning-path { | |
| position: relative; | |
| } | |
| .path-item { | |
| display: flex; | |
| align-items: flex-start; | |
| margin-bottom: 2rem; | |
| position: relative; | |
| } | |
| .path-item::before { | |
| content: ''; | |
| position: absolute; | |
| left: 20px; | |
| top: 60px; | |
| bottom: -20px; | |
| width: 2px; | |
| background: #e9ecef; | |
| z-index: 1; | |
| } | |
| .path-item:last-child::before { | |
| display: none; | |
| } | |
| .path-number { | |
| width: 40px; | |
| height: 40px; | |
| background: var(--primary-color); | |
| color: white; | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-weight: 600; | |
| margin-right: 1.5rem; | |
| position: relative; | |
| z-index: 2; | |
| flex-shrink: 0; | |
| } | |
| .path-content { | |
| flex: 1; | |
| } | |
| /* Cards */ | |
| .tutorial-card, .project-card { | |
| border: none; | |
| box-shadow: var(--box-shadow); | |
| transition: var(--transition); | |
| border-radius: var(--border-radius); | |
| } | |
| .tutorial-card:hover, .project-card:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 4px 20px rgba(0,0,0,0.15); | |
| } | |
| .tutorial-progress { | |
| position: relative; | |
| } | |
| .progress-circle { | |
| width: 40px; | |
| height: 40px; | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 12px; | |
| font-weight: 600; | |
| } | |
| .progress-circle.completed { | |
| background: var(--success-color); | |
| color: white; | |
| } | |
| .progress-circle.in-progress { | |
| background: var(--warning-color); | |
| color: white; | |
| } | |
| .progress-circle.not-started { | |
| background: var(--light-color); | |
| color: var(--secondary-color); | |
| border: 2px solid #dee2e6; | |
| } | |
| /* Difficulty Badges */ | |
| .bg-beginner { background-color: var(--beginner-color) ; } | |
| .bg-intermediate { background-color: var(--warning-color) ; } | |
| .bg-advanced { background-color: var(--danger-color) ; } | |
| /* Project Cards */ | |
| .project-icon { | |
| width: 60px; | |
| height: 60px; | |
| background: var(--primary-color); | |
| border-radius: var(--border-radius); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: white; | |
| } | |
| .project-icon i { | |
| width: 30px; | |
| height: 30px; | |
| } | |
| .project-meta { | |
| display: flex; | |
| align-items: center; | |
| flex-wrap: wrap; | |
| gap: 0.5rem; | |
| } | |
| /* Features Section */ | |
| .features-section { | |
| background: white; | |
| padding: 3rem 2rem; | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--box-shadow); | |
| margin-top: 3rem; | |
| } | |
| .feature-item { | |
| padding: 2rem 1rem; | |
| } | |
| .feature-icon { | |
| width: 80px; | |
| height: 80px; | |
| background: linear-gradient(135deg, var(--primary-color), #0056b3); | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin: 0 auto 1.5rem; | |
| color: white; | |
| } | |
| .feature-icon i { | |
| width: 32px; | |
| height: 32px; | |
| } | |
| /* Tutorial Page Styles */ | |
| .tutorial-sidebar { | |
| background: white; | |
| padding: 1.5rem; | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--box-shadow); | |
| top: 100px; | |
| } | |
| .tutorial-nav .nav-link { | |
| border-radius: var(--border-radius); | |
| color: var(--dark-color); | |
| padding: 0.75rem 1rem; | |
| margin-bottom: 0.25rem; | |
| display: flex; | |
| align-items: center; | |
| transition: var(--transition); | |
| } | |
| .tutorial-nav .nav-link:hover { | |
| background-color: var(--light-color); | |
| } | |
| .tutorial-nav .nav-link.active { | |
| background-color: var(--primary-color); | |
| color: white; | |
| } | |
| .step-number { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 24px; | |
| height: 24px; | |
| background: var(--light-color); | |
| border-radius: 50%; | |
| font-size: 12px; | |
| font-weight: 600; | |
| margin-right: 0.75rem; | |
| color: var(--secondary-color); | |
| } | |
| .tutorial-nav .nav-link.active .step-number { | |
| background: rgba(255,255,255,0.2); | |
| color: white; | |
| } | |
| /* Tutorial Content */ | |
| .tutorial-header { | |
| background: white; | |
| padding: 2rem; | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--box-shadow); | |
| } | |
| .tutorial-title { | |
| font-size: 2.5rem; | |
| font-weight: 700; | |
| color: var(--dark-color); | |
| margin-bottom: 1rem; | |
| } | |
| .tutorial-meta { | |
| display: flex; | |
| align-items: center; | |
| flex-wrap: wrap; | |
| gap: 1rem; | |
| margin-bottom: 1rem; | |
| } | |
| .tutorial-step { | |
| background: white; | |
| padding: 2rem; | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--box-shadow); | |
| margin-bottom: 2rem; | |
| display: none; | |
| } | |
| .tutorial-step.active { | |
| display: block; | |
| } | |
| .step-header { | |
| display: flex; | |
| justify-content: between; | |
| align-items: center; | |
| margin-bottom: 1.5rem; | |
| } | |
| .step-title { | |
| font-size: 1.8rem; | |
| font-weight: 600; | |
| color: var(--dark-color); | |
| display: flex; | |
| align-items: center; | |
| flex: 1; | |
| } | |
| .step-number-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 32px; | |
| height: 32px; | |
| background: var(--primary-color); | |
| color: white; | |
| border-radius: 50%; | |
| font-size: 14px; | |
| font-weight: 600; | |
| margin-right: 1rem; | |
| } | |
| .step-time { | |
| color: var(--secondary-color); | |
| font-size: 0.9rem; | |
| } | |
| .step-content { | |
| font-size: 1.1rem; | |
| line-height: 1.8; | |
| } | |
| .step-content h3 { | |
| color: var(--dark-color); | |
| margin-top: 2rem; | |
| margin-bottom: 1rem; | |
| } | |
| .step-content h4 { | |
| color: var(--dark-color); | |
| margin-top: 1.5rem; | |
| margin-bottom: 0.75rem; | |
| } | |
| .code-example { | |
| background: #f8f9fa; | |
| border: 1px solid #e9ecef; | |
| border-radius: var(--border-radius); | |
| padding: 1.5rem; | |
| } | |
| .code-example pre { | |
| margin: 0; | |
| font-size: 0.9rem; | |
| } | |
| .interactive-demo { | |
| border: 2px dashed #dee2e6; | |
| border-radius: var(--border-radius); | |
| padding: 1.5rem; | |
| background: #f8f9fa; | |
| } | |
| .demo-container { | |
| background: white; | |
| padding: 1rem; | |
| border-radius: var(--border-radius); | |
| border: 1px solid #dee2e6; | |
| min-height: 200px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: var(--secondary-color); | |
| } | |
| /* Project Page Styles */ | |
| .project-info-card { | |
| top: 100px; | |
| } | |
| .project-info-card .large-icon { | |
| width: 48px; | |
| height: 48px; | |
| } | |
| .detail-item { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 0.5rem 0; | |
| border-bottom: 1px solid #f1f3f4; | |
| } | |
| .detail-item:last-child { | |
| border-bottom: none; | |
| } | |
| .project-content { | |
| background: white; | |
| padding: 2rem; | |
| border-radius: var(--border-radius); | |
| box-shadow: var(--box-shadow); | |
| } | |
| .project-section { | |
| margin-bottom: 3rem; | |
| } | |
| .project-section h2 { | |
| color: var(--dark-color); | |
| font-weight: 600; | |
| margin-bottom: 1.5rem; | |
| padding-bottom: 0.5rem; | |
| border-bottom: 2px solid var(--primary-color); | |
| } | |
| .project-steps { | |
| margin-top: 2rem; | |
| } | |
| .project-step { | |
| background: #f8f9fa; | |
| border-radius: var(--border-radius); | |
| padding: 1.5rem; | |
| margin-bottom: 1.5rem; | |
| border-left: 4px solid var(--primary-color); | |
| } | |
| .project-step .step-header h4 { | |
| color: var(--dark-color); | |
| margin-bottom: 1rem; | |
| display: flex; | |
| align-items: center; | |
| } | |
| .project-step .step-number { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 28px; | |
| height: 28px; | |
| background: var(--primary-color); | |
| color: white; | |
| border-radius: 50%; | |
| font-size: 12px; | |
| font-weight: 600; | |
| margin-right: 1rem; | |
| } | |
| .code-block { | |
| background: #2d3748; | |
| color: #e2e8f0; | |
| border-radius: var(--border-radius); | |
| padding: 1.5rem; | |
| overflow-x: auto; | |
| } | |
| .code-block pre { | |
| margin: 0; | |
| font-family: 'Monaco', 'Menlo', monospace; | |
| font-size: 0.9rem; | |
| } | |
| /* Progress Page Styles */ | |
| .stats-card { | |
| border: none; | |
| box-shadow: var(--box-shadow); | |
| transition: var(--transition); | |
| border-radius: var(--border-radius); | |
| } | |
| .stats-card:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 4px 20px rgba(0,0,0,0.15); | |
| } | |
| .stats-icon { | |
| width: 60px; | |
| height: 60px; | |
| background: var(--primary-color); | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin: 0 auto 1rem; | |
| color: white; | |
| } | |
| .stats-number { | |
| font-size: 2rem; | |
| font-weight: 700; | |
| color: var(--primary-color); | |
| margin: 0; | |
| } | |
| .stats-label { | |
| color: var(--secondary-color); | |
| font-size: 0.9rem; | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| margin: 0; | |
| } | |
| .progress-timeline { | |
| position: relative; | |
| } | |
| .progress-item { | |
| display: flex; | |
| align-items: flex-start; | |
| margin-bottom: 2rem; | |
| position: relative; | |
| } | |
| .progress-item::before { | |
| content: ''; | |
| position: absolute; | |
| left: 20px; | |
| top: 60px; | |
| bottom: -20px; | |
| width: 2px; | |
| background: #e9ecef; | |
| z-index: 1; | |
| } | |
| .progress-item:last-child::before { | |
| display: none; | |
| } | |
| .progress-marker { | |
| margin-right: 1.5rem; | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .marker { | |
| width: 40px; | |
| height: 40px; | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 12px; | |
| font-weight: 600; | |
| } | |
| .marker.completed { | |
| background: var(--success-color); | |
| color: white; | |
| } | |
| .marker.in-progress { | |
| background: var(--warning-color); | |
| color: white; | |
| } | |
| .marker.not-started { | |
| background: var(--light-color); | |
| color: var(--secondary-color); | |
| border: 2px solid #dee2e6; | |
| } | |
| .progress-content { | |
| flex: 1; | |
| } | |
| .progress-actions { | |
| display: flex; | |
| gap: 0.5rem; | |
| } | |
| .tutorial-progress { | |
| margin-top: 1rem; | |
| } | |
| .tutorial-progress .progress { | |
| height: 6px; | |
| margin-bottom: 0.5rem; | |
| } | |
| /* Responsive Design */ | |
| @media (max-width: 768px) { | |
| .main-content { | |
| margin-top: 60px; | |
| } | |
| .hero-section { | |
| padding: 2rem 1rem; | |
| } | |
| .stat-number { | |
| font-size: 2rem; | |
| } | |
| .section-title { | |
| font-size: 1.75rem; | |
| } | |
| .page-title { | |
| font-size: 2rem; | |
| } | |
| .tutorial-sidebar { | |
| position: static ; | |
| margin-bottom: 2rem; | |
| } | |
| .path-item { | |
| flex-direction: column; | |
| align-items: center; | |
| text-align: center; | |
| } | |
| .path-item::before { | |
| display: none; | |
| } | |
| .path-number { | |
| margin-bottom: 1rem; | |
| } | |
| .tutorial-meta, .project-meta { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: 0.5rem; | |
| } | |
| } | |
| /* Animation Classes */ | |
| .fade-in { | |
| animation: fadeIn 0.5s ease-in; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; transform: translateY(20px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .slide-in-left { | |
| animation: slideInLeft 0.5s ease-out; | |
| } | |
| @keyframes slideInLeft { | |
| from { opacity: 0; transform: translateX(-30px); } | |
| to { opacity: 1; transform: translateX(0); } | |
| } | |
| /* Utility Classes */ | |
| .text-gradient { | |
| background: linear-gradient(135deg, var(--primary-color), #0056b3); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .border-gradient { | |
| border: 2px solid; | |
| border-image: linear-gradient(135deg, var(--primary-color), #0056b3) 1; | |
| } | |
| /* Dark mode support */ | |
| @media (prefers-color-scheme: dark) { | |
| :root { | |
| --light-color: #343a40; | |
| --dark-color: #f8f9fa; | |
| } | |
| body { | |
| background-color: #1a1a1a; | |
| color: #f8f9fa; | |
| } | |
| .tutorial-sidebar, | |
| .tutorial-header, | |
| .tutorial-step, | |
| .project-content, | |
| .features-section { | |
| background: #2d3748; | |
| color: #f8f9fa; | |
| } | |
| .card { | |
| background: #2d3748; | |
| color: #f8f9fa; | |
| border-color: #4a5568; | |
| } | |
| } | |