SkillSync / assets /styles.css
yekkala's picture
Update assets/styles.css
05b8695 verified
/* Coursera-Inspired Design System */
/* Root Variables */
:root {
--primary: #0056D2;
--primary-dark: #0044A8;
--primary-light: #E8F0FE;
--secondary: #1F1F1F;
--accent: #E53935;
--success: #2E7D32;
--warning: #F9A825;
--gray-50: #FAFAFA;
--gray-100: #F5F5F5;
--gray-200: #EEEEEE;
--gray-300: #E0E0E0;
--gray-400: #BDBDBD;
--gray-500: #9E9E9E;
--gray-600: #757575;
--gray-700: #616161;
--gray-800: #424242;
--gray-900: #1F1F1F;
--white: #FFFFFF;
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
--shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
--radius: 8px;
--radius-lg: 12px;
--radius-xl: 16px;
}
/* Global Styles */
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background-color: var(--gray-50);
color: var(--gray-900);
line-height: 1.6;
}
/* Main Container */
.gradio-container {
max-width: 1400px !important;
margin: 0 auto;
padding: 0 !important;
background: var(--gray-50) !important;
}
/* Hero Section */
.hero-section {
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
color: var(--white);
padding: 48px 32px;
margin-bottom: 32px;
border-radius: 0;
}
.hero-title {
font-size: 2.5rem;
font-weight: 700;
margin-bottom: 16px;
line-height: 1.2;
}
.hero-subtitle {
font-size: 1.25rem;
opacity: 0.95;
margin-bottom: 24px;
max-width: 700px;
}
/* Stats Cards */
.stats-container {
display: flex;
gap: 16px;
flex-wrap: wrap;
margin-top: 32px;
}
.stat-card {
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(10px);
border-radius: var(--radius-lg);
padding: 20px 24px;
text-align: center;
min-width: 120px;
border: 1px solid rgba(255, 255, 255, 0.2);
}
.stat-number {
font-size: 2rem;
font-weight: 700;
margin-bottom: 4px;
}
.stat-label {
font-size: 0.875rem;
opacity: 0.9;
}
/* Course Card */
.course-card {
background: var(--white);
border-radius: var(--radius-lg);
box-shadow: var(--shadow);
overflow: hidden;
transition: all 0.3s ease;
border: 1px solid var(--gray-200);
}
.course-card:hover {
box-shadow: var(--shadow-lg);
transform: translateY(-4px);
}
.course-card-header {
padding: 24px;
border-bottom: 1px solid var(--gray-200);
}
.course-card-body {
padding: 24px;
}
.course-card-footer {
padding: 16px 24px;
background: var(--gray-50);
border-top: 1px solid var(--gray-200);
}
/* Module Card */
.module-card {
background: var(--white);
border-radius: var(--radius-lg);
box-shadow: var(--shadow);
margin-bottom: 16px;
overflow: hidden;
border: 1px solid var(--gray-200);
transition: all 0.3s ease;
}
.module-card:hover {
box-shadow: var(--shadow-md);
border-color: var(--primary);
}
.module-header {
padding: 20px 24px;
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
background: var(--white);
}
.module-header:hover {
background: var(--gray-50);
}
.module-number {
width: 40px;
height: 40px;
background: var(--primary);
color: var(--white);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 1.125rem;
flex-shrink: 0;
}
.module-info {
flex: 1;
margin-left: 16px;
}
.module-title {
font-size: 1.125rem;
font-weight: 600;
color: var(--gray-900);
margin-bottom: 4px;
}
.module-meta {
font-size: 0.875rem;
color: var(--gray-600);
}
.module-progress {
display: flex;
align-items: center;
gap: 12px;
}
.progress-circle {
width: 48px;
height: 48px;
position: relative;
}
.progress-bar-container {
width: 100px;
height: 6px;
background: var(--gray-200);
border-radius: 3px;
overflow: hidden;
}
.progress-bar-fill {
height: 100%;
background: linear-gradient(90deg, var(--primary) 0%, var(--primary-dark) 100%);
border-radius: 3px;
transition: width 0.5s ease;
}
/* Lesson Item */
.lesson-item {
padding: 16px 24px;
border-bottom: 1px solid var(--gray-100);
display: flex;
align-items: center;
justify-content: space-between;
transition: background 0.2s ease;
}
.lesson-item:hover {
background: var(--gray-50);
}
.lesson-item:last-child {
border-bottom: none;
}
.lesson-info {
display: flex;
align-items: center;
gap: 12px;
flex: 1;
}
.lesson-icon {
width: 36px;
height: 36px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 1rem;
}
.lesson-icon.video {
background: #E3F2FD;
color: #1565C0;
}
.lesson-icon.reading {
background: #E8F5E9;
color: #2E7D32;
}
.lesson-icon.quiz {
background: #FFF3E0;
color: #EF6C00;
}
.lesson-icon.assignment {
background: #FCE4EC;
color: #C2185B;
}
.lesson-status {
display: flex;
align-items: center;
gap: 8px;
}
.status-badge {
padding: 4px 12px;
border-radius: 16px;
font-size: 0.75rem;
font-weight: 600;
}
.status-badge.completed {
background: #E8F5E9;
color: #2E7D32;
}
.status-badge.in-progress {
background: #FFF3E0;
color: #EF6C00;
}
.status-badge.not-started {
background: var(--gray-100);
color: var(--gray-600);
}
/* Quiz Styles */
.quiz-container {
background: var(--white);
border-radius: var(--radius-lg);
box-shadow: var(--shadow);
padding: 32px;
margin: 24px 0;
}
.quiz-question {
font-size: 1.125rem;
font-weight: 600;
color: var(--gray-900);
margin-bottom: 24px;
padding-bottom: 16px;
border-bottom: 2px solid var(--gray-200);
}
.quiz-option {
display: flex;
align-items: center;
padding: 16px 20px;
border: 2px solid var(--gray-200);
border-radius: var(--radius);
margin-bottom: 12px;
cursor: pointer;
transition: all 0.2s ease;
}
.quiz-option:hover {
border-color: var(--primary);
background: var(--primary-light);
}
.quiz-option.selected {
border-color: var(--primary);
background: var(--primary-light);
}
.quiz-option.correct {
border-color: var(--success);
background: #E8F5E9;
}
.quiz-option.incorrect {
border-color: var(--accent);
background: #FFEBEE;
}
/* Buttons */
.btn-primary {
background: var(--primary) !important;
color: var(--white) !important;
border: none !important;
padding: 12px 24px !important;
border-radius: var(--radius) !important;
font-weight: 600 !important;
font-size: 1rem !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
}
.btn-primary:hover {
background: var(--primary-dark) !important;
transform: translateY(-2px) !important;
box-shadow: var(--shadow-md) !important;
}
.btn-secondary {
background: var(--white) !important;
color: var(--primary) !important;
border: 2px solid var(--primary) !important;
padding: 10px 22px !important;
border-radius: var(--radius) !important;
font-weight: 600 !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
}
.btn-secondary:hover {
background: var(--primary-light) !important;
}
/* Progress Ring */
.progress-ring {
width: 120px;
height: 120px;
position: relative;
}
.progress-ring-circle {
transform: rotate(-90deg);
}
.progress-ring-bg {
fill: none;
stroke: var(--gray-200);
stroke-width: 8;
}
.progress-ring-fill {
fill: none;
stroke: var(--primary);
stroke-width: 8;
stroke-linecap: round;
transition: stroke-dashoffset 0.5s ease;
}
.progress-ring-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
.progress-ring-number {
font-size: 2rem;
font-weight: 700;
color: var(--gray-900);
}
.progress-ring-label {
font-size: 0.75rem;
color: var(--gray-600);
}
/* Sidebar */
.sidebar {
background: var(--white);
border-radius: var(--radius-lg);
box-shadow: var(--shadow);
padding: 24px;
position: sticky;
top: 24px;
}
.sidebar-section {
margin-bottom: 24px;
padding-bottom: 24px;
border-bottom: 1px solid var(--gray-200);
}
.sidebar-section:last-child {
margin-bottom: 0;
padding-bottom: 0;
border-bottom: none;
}
.sidebar-title {
font-size: 0.875rem;
font-weight: 600;
color: var(--gray-600);
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: 16px;
}
/* Instructor Card */
.instructor-card {
display: flex;
align-items: center;
gap: 16px;
padding: 16px;
background: var(--gray-50);
border-radius: var(--radius);
margin-bottom: 12px;
}
.instructor-avatar {
width: 56px;
height: 56px;
border-radius: 50%;
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
display: flex;
align-items: center;
justify-content: center;
color: var(--white);
font-weight: 700;
font-size: 1.25rem;
}
.instructor-name {
font-weight: 600;
color: var(--gray-900);
margin-bottom: 4px;
}
.instructor-role {
font-size: 0.875rem;
color: var(--gray-600);
}
/* Tags */
.tag {
display: inline-block;
padding: 4px 12px;
border-radius: 16px;
font-size: 0.75rem;
font-weight: 600;
margin-right: 8px;
margin-bottom: 8px;
}
.tag-beginner {
background: #E8F5E9;
color: #2E7D32;
}
.tag-intermediate {
background: #FFF3E0;
color: #EF6C00;
}
.tag-advanced {
background: #FCE4EC;
color: #C2185B;
}
/* Accordion */
.accordion {
border: 1px solid var(--gray-200);
border-radius: var(--radius-lg);
overflow: hidden;
margin-bottom: 16px;
}
.accordion-header {
padding: 16px 20px;
background: var(--white);
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
font-weight: 600;
transition: background 0.2s ease;
}
.accordion-header:hover {
background: var(--gray-50);
}
.accordion-content {
padding: 0 20px 20px;
background: var(--white);
}
/* Rating Stars */
.rating {
display: flex;
align-items: center;
gap: 4px;
}
.rating-star {
color: #FFC107;
font-size: 1rem;
}
.rating-star.empty {
color: var(--gray-300);
}
.rating-number {
font-weight: 600;
margin-left: 8px;
color: var(--gray-900);
}
.rating-count {
color: var(--gray-600);
font-size: 0.875rem;
margin-left: 4px;
}
/* Video Player Placeholder */
.video-placeholder {
background: linear-gradient(135deg, var(--gray-800) 0%, var(--gray-900) 100%);
border-radius: var(--radius-lg);
aspect-ratio: 16 / 9;
display: flex;
align-items: center;
justify-content: center;
color: var(--white);
position: relative;
overflow: hidden;
}
.video-play-button {
width: 80px;
height: 80px;
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(10px);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 2rem;
cursor: pointer;
transition: all 0.3s ease;
}
.video-play-button:hover {
background: rgba(255, 255, 255, 0.3);
transform: scale(1.1);
}
/* Certificate Preview */
.certificate-preview {
background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
border-radius: var(--radius-lg);
padding: 32px;
text-align: center;
color: var(--gray-900);
}
.certificate-title {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 8px;
}
.certificate-subtitle {
font-size: 1rem;
opacity: 0.9;
}
/* Responsive */
@media (max-width: 768px