diff --git a/frontend/css/contribute.css b/frontend/css/contribute.css index e16d277..1336139 100644 --- a/frontend/css/contribute.css +++ b/frontend/css/contribute.css @@ -18,11 +18,20 @@ body { --light-parchment: #fff8e7; --charcoal-dark: #2c2c2c; --text-secondary: #5a5a5a; - + --code-bg: #f8f9fa; + --code-border: #e0e0e0; + --code-text: #2c2c2c; + --code-comment: #6a737d; --shadow-main: 0 8px 32px rgba(0, 0, 0, 0.12); --shadow-hover: 0 20px 40px rgba(0, 0, 0, 0.18); } +body.dark-mode { + --code-bg: #1e1e1e; /* Soft dark gray background */ + --code-border: #333333; /* Subtle border */ + --code-text: #e6e6e6; /* Light readable text */ + --code-comment: #9ca3af; /* Muted gray for comments */ +} body { font-family: "Crimson Text", Georgia, serif; @@ -34,9 +43,6 @@ body { color: var(--charcoal-dark); } - - - main { margin-top: 0; padding-top: 0; @@ -640,22 +646,8 @@ body.dark-mode li { color: #cccccc; } -/* Code blocks remain readable */ -body.dark-mode .code-block, -body.dark-mode pre { - background-color: #ffffff; - color: #333333; - border-color: #e0e0e0; -} - -body.dark-mode code { - background-color: #ffffff; - color: #333333; -} - -/* Best Practices Section Proper Styling */ - -.practices-section { +/* Best practices section stays light */ +body.dark-mode .practices-container { background-color: #ffffff; } diff --git a/frontend/css/contributors.css b/frontend/css/contributors.css index ca01f5c..d8101ab 100644 --- a/frontend/css/contributors.css +++ b/frontend/css/contributors.css @@ -118,24 +118,6 @@ body.dark-mode .contributors-section p { flex: 0 0 auto; } -.contributor-github { - width: 42px; - height: 42px; - border-radius: 999px; - display: inline-flex; - align-items: center; - justify-content: center; - text-decoration: none; - color: var(--deep-navy); - background: rgb(255 255 255 / 90%); - border: 1px solid rgb(212 175 55 / 24%); - transition: transform 0.2s ease, background 0.2s ease; -} - -.contributor-github:hover { - transform: scale(1.06); - background: rgb(255 248 231 / 95%); -} .contributor-card { background: linear-gradient( 180deg, @@ -149,8 +131,10 @@ body.dark-mode .contributors-section p { inset 0 1px 0 rgb(255 255 255 / 60%); display: flex; align-items: center; + justify-content: space-between; gap: 1.5rem; max-width: 360px; + min-height: 140px; margin: 0 auto; position: relative; @@ -180,9 +164,10 @@ body.dark-mode .contributors-section p { .contributor-main { flex: 1; + max-width: 100px; display: flex; flex-direction: column; - gap: 0.5rem; + gap: 0.6rem; } .contributor-name { @@ -240,29 +225,10 @@ body.dark-mode .contributors-section p { } .contributor-actions { - flex-shrink: 0; -} - -.contributor-github { - width: 48px; - height: 48px; - border-radius: 50%; - display: inline-flex; + display: flex; align-items: center; justify-content: center; - color: #1a2433; - background: #f9f9f9; - border: 1.5px solid #d4af37; - box-shadow: 0 2px 6px rgb(0 0 0 / 0.07); - transition: all 0.25s ease; - cursor: pointer; -} - -.contributor-github:hover { - background: #fff8dc; - transform: scale(1.12); - box-shadow: 0 4px 10px rgb(212 175 55 / 0.5); } /* Skeleton loading */ @@ -764,20 +730,6 @@ body.dark-mode .contributors-section p { } } -/* Card refinement */ -.contributor-card { - padding: 1.5rem 1.55rem 1.35rem; - border-radius: 20px; - background: linear-gradient( - 180deg, - #dfc981fb, - rgb(255 255 255 / 88%) - ); - box-shadow: - 0 12px 30px rgb(0 0 0 / 8%), - inset 0 1px 0 rgb(255 255 255 / 60%); -} - /* Hover feels lighter */ .contributor-card:hover { transform: translateY(-5px); @@ -862,21 +814,6 @@ body.dark-mode .contributors-section p { color: var(--text-secondary); } -/* GitHub action button */ -.contributor-github { - width: 44px; - height: 44px; - background: linear-gradient( - 180deg, - rgb(255 255 255 / 95%), - rgb(248 248 248 / 90%) - ); -} - -.contributor-github:hover { - background: rgb(255 250 235); -} - /* Mobile tuning */ @media (max-width: 720px) { .contributors-grid { @@ -916,13 +853,6 @@ body.dark-mode .contributors-section p { text-overflow: ellipsis; } -.contributor-actions { - flex-shrink: 0; - margin-left: 1rem; - display: flex; - align-items: center; -} - /* Animation trigger */ .contributor-card.is-visible { opacity: 1; @@ -1006,16 +936,29 @@ body.dark-mode .contributors-section p { } .contributor-github { - font-size: 1.5rem; - color: #1b263b; - transition: color 0.2s; - display: flex; - align-items: center; - justify-content: center; + width: 46px; + height: 46px; + border-radius: 50%; + + display: flex; + align-items: center; + justify-content: center; + + font-size: 1.3rem; + text-decoration: none; + + background: #ffffff; + border: 2px solid #d4af37; + color: #1b263b; + + transition: all 0.25s ease; + flex-shrink: 0; } .contributor-github:hover { - color: #d4af37; /* Gold */ + transform: scale(1.1); + background: #fff8dc; + box-shadow: 0 0 15px rgba(212, 175, 55, 0.4); } /* ========================================= @@ -1092,11 +1035,13 @@ body.dark-mode .contributor-chip.is-bot { } body.dark-mode .contributor-github { - color: #e0e0e0 !important; /* White/Light Grey Icon */ + background: #1f2937; + border-color: #d4af37; + color: #f9fafb; } body.dark-mode .contributor-github:hover { - color: #d4af37 !important; /* Gold on Hover */ + background: #2a2f3a; } /* Skeleton Dark Mode */ diff --git a/frontend/css/feedback.css b/frontend/css/feedback.css index 2676aae..5c21a3b 100644 --- a/frontend/css/feedback.css +++ b/frontend/css/feedback.css @@ -1,63 +1,196 @@ +:root { + --primary-gold: #d4af37; + --deep-navy: #0a192f; + --text-main: #333; + --bg-cream: #fdfbf7; +} + +body.dark-mode { + --bg-cream: #0f172a; + --text-main: #e5e7eb; + --deep-navy: #f1f5f9; + --card-bg: #1e293b; + --input-bg: #0f172a; + --input-border: #334155; + --text-secondary-dark: #94a3b8; +} + +body { + font-family: 'Inter', sans-serif; + background-color: var(--bg-cream); + color: var(--text-main); +} + +/* --- Header Styling (Matches Resources.html) --- */ .feedback-header { text-align: center; - padding: 80px 20px 40px; + padding: 4rem 2rem 2rem 2rem; + display: flex; + flex-direction: column; + align-items: center; } .feedback-header h1 { - font-size: 2.5rem; + font-family: 'Playfair Display', serif; + font-size: 3rem; color: var(--deep-navy); + margin-bottom: 1rem; + position: relative; + display: inline-block; } -.feedback-header p { - color: var(--text-secondary); - margin-top: 10px; +/* The Gold Underline Effect */ +.feedback-header h1::after { + content: ''; + display: block; + width: 60px; + height: 4px; + background: var(--primary-gold); + margin: 0.5rem auto 0; + border-radius: 2px; } -.feedback-container { +.feedback-header p { + font-family: 'Inter', sans-serif; + color: var(--text-secondary-dark, #666); + font-size: 1.1rem; max-width: 600px; - margin: auto; - padding: 30px; + margin: 0 auto; + line-height: 1.6; } -form { +/* --- Form Container (Card Style) --- */ +.feedback-container { display: flex; - flex-direction: column; - gap: 15px; + justify-content: center; + padding-bottom: 4rem; +} + +#feedbackForm { + background: var(--card-bg, white); + padding: 3rem; + border-radius: 12px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); /* Soft shadow like the cards */ + width: 100%; + max-width: 600px; + border-top: 4px solid var(--primary-gold); /* Gold accent on top */ } +/* --- Input Styles --- */ label { font-weight: 600; + color: var(--deep-navy); + margin-bottom: 0.5rem; + display: block; + margin-top: 1.5rem; + font-size: 0.95rem; +} + +label:first-child { + margin-top: 0; } input, select, textarea { - padding: 10px; - border-radius: 6px; - border: 1px solid #ccc; + width: 100%; + padding: 0.8rem 1rem; + border: 1px solid #e0e0e0; + border-radius: 8px; + font-family: 'Inter', sans-serif; font-size: 1rem; + transition: all 0.3s ease; + background-color: var(--input-bg, #fafafa); + border: 1px solid var(--input-border, #e0e0e0); + color: var(--text-main); +} + +input:focus, select:focus, textarea:focus { + outline: none; + border-color: var(--primary-gold); + background-color: white; + box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.1); } textarea { - min-height: 120px; + min-height: 150px; resize: vertical; } -button { - background-color: var(--primary-gold); - color: #000; - padding: 12px; - border: none; - border-radius: 6px; +/* --- Button Styling (Matches Quiz Buttons) --- */ +button[type="submit"] { + background-color: var(--deep-navy); + color: white; /* Changed to white for better contrast on navy */ + font-family: 'Inter', sans-serif; font-weight: 600; + font-size: 1rem; + padding: 1rem 2rem; + border: none; + border-radius: 50px; cursor: pointer; + margin-top: 2rem; + width: 100%; + transition: transform 0.2s, box-shadow 0.2s; + box-shadow: 0 4px 10px rgba(10, 25, 47, 0.2); +} + +button[type="submit"]:hover { + transform: translateY(-2px); + background-color: #1a2f4b; /* Slightly lighter navy on hover */ + box-shadow: 0 6px 15px rgba(10, 25, 47, 0.3); +} + +body.dark-mode button[type="submit"] { + background-color: var(--primary-gold) !important; + color: #000 !important; + box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3); } -button:hover { - opacity: 0.9; +body.dark-mode button[type="submit"]:hover { + background-color: #c49b2f !important; + transform: translateY(-2px); } +/* --- Success Message --- */ #successMessage { - display: none; - color: green; - margin-top: 10px; + margin-top: 1.5rem; + text-align: center; + color: #27ae60; font-weight: 600; + display: none; /* Controlled by JS */ + background: #e8f5e9; + padding: 1rem; + border-radius: 8px; +} + +body.dark-mode #successMessage { + background: #052e16; + color: #4ade80; +} + +body.dark-mode select { + background-color: #0f1b2d !important; + color: #ffffff !important; + border: 1px solid #334155 !important; +} + +body.dark-mode select:focus { + border-color: var(--primary-gold) !important; + box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.2); } + +/* Dropdown options */ +body.dark-mode select option { + background-color: #0f1b2d; + color: #ffffff; +} + +body.dark-mode textarea, +body.dark-mode input { + background-color: #0f1b2d !important; + color: #ffffff !important; + border: 1px solid #334155 !important; +} + +body.dark-mode textarea::placeholder, +body.dark-mode input::placeholder { + color: #94a3b8 !important; +} \ No newline at end of file diff --git a/frontend/css/program.css b/frontend/css/program.css index d7ce9d6..aa0d218 100644 --- a/frontend/css/program.css +++ b/frontend/css/program.css @@ -313,4 +313,189 @@ body.dark-mode .programs-heading { ); -webkit-background-clip: text; -webkit-text-fill-color: transparent; + +.filter-bar { + display: flex; + justify-content: center; + flex-wrap: wrap; + gap: 20px; + margin: 40px 0 60px; +} + +/* Wrapper REQUIRED for custom arrow */ +.filter-wrapper { + position: relative; + display: inline-block; +} + +/* Select Styling */ +.filter-wrapper select { + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + background-image: none; + + padding: 12px 45px 12px 20px; + border-radius: 30px; + border: 1px solid rgba(181, 157, 92, 0.35); + + font-family: 'Inter', sans-serif; + font-weight: 600; + font-size: 0.95rem; + + background: linear-gradient(145deg, #ffffff, #f9f6f0); + color: #2c3e50; + + box-shadow: 0 6px 15px rgba(0,0,0,0.05); + cursor: pointer; + + transition: all 0.3s ease; +} + +/* Hover */ +.filter-wrapper select:hover { + border-color: var(--primary-gold); + box-shadow: 0 8px 25px rgba(181, 157, 92, 0.25); +} + +/* Focus */ +.filter-wrapper select:focus { + outline: none; + border-color: var(--primary-gold); + box-shadow: 0 0 0 3px rgba(181, 157, 92, 0.2); +} + +/* Custom Gold Arrow */ +.filter-wrapper::after { + content: "▾"; + position: absolute; + right: 18px; + top: 50%; + transform: translateY(-50%); + font-size: 14px; + font-weight: bold; + color: var(--primary-gold); + pointer-events: none; +} + +/* ========================= + DARK MODE FIX +=========================*/ +body.dark-mode .filter-wrapper select { + background: linear-gradient(145deg, #1f2937, #111827) !important; + color: #f9fafb !important; + border: 1px solid #374151 !important; + box-shadow: 0 6px 18px rgba(0,0,0,0.6) !important; +} + +body.dark-mode .filter-wrapper select:hover { + border-color: var(--primary-gold) !important; + box-shadow: + 0 10px 30px rgba(0, 0, 0, 0.8), + 0 0 15px rgba(212, 175, 55, 0.2) !important; +} + +/* Dark mode dropdown options */ +body.dark-mode .filter-wrapper select option { + background: #111827; + color: #f9fafb; +} + +/* ========================================= + PREMIUM LABEL BADGES +=========================*/ +.badge-group { + display: flex; + flex-wrap: wrap; + gap: 8px; + justify-content: center; + margin-bottom: 18px; +} + +.label { + padding: 5px 12px; + font-size: 0.72rem; + border-radius: 20px; + font-weight: 600; + letter-spacing: 0.3px; + transition: all 0.3s ease; + border: 1px solid transparent; +} + +/* LIGHT MODE COLORS */ +.label.paid { + background: rgba(22, 163, 74, 0.1); + color: #15803d; + border-color: rgba(22, 163, 74, 0.3); +} + +.label.unpaid { + background: rgba(107, 114, 128, 0.1); + color: #4b5563; + border-color: rgba(107, 114, 128, 0.3); +} + +.label.global { + background: rgba(37, 99, 235, 0.1); + color: #1d4ed8; + border-color: rgba(37, 99, 235, 0.3); +} + +.label.india { + background: rgba(249, 115, 22, 0.1); + color: #ea580c; + border-color: rgba(249, 115, 22, 0.3); +} + +.label.beginner { + background: rgba(251, 191, 36, 0.15); + color: #b45309; + border-color: rgba(251, 191, 36, 0.4); +} + +.label.intermediate { + background: rgba(147, 51, 234, 0.1); + color: #7e22ce; + border-color: rgba(147, 51, 234, 0.3); +} + +.label.advanced { + background: rgba(220, 38, 38, 0.1); + color: #b91c1c; + border-color: rgba(220, 38, 38, 0.3); +} + +/* Hover polish */ +.label:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); +} + +body.dark-mode .label { + backdrop-filter: blur(6px); +} + +body.dark-mode .label.paid { + background: rgba(22, 163, 74, 0.2); + color: #4ade80; +} + +body.dark-mode .label.global { + background: rgba(37, 99, 235, 0.2); + color: #60a5fa; +} + +body.dark-mode .label.beginner { + background: rgba(251, 191, 36, 0.2); + color: #facc15; +} + +body.dark-mode .label.intermediate { + background: rgba(147, 51, 234, 0.2); + color: #c084fc; +} + +body.dark-mode .label.advanced { + background: rgba(220, 38, 38, 0.2); + color: #f87171; } \ No newline at end of file diff --git a/frontend/pages/Contribute.html b/frontend/pages/Contribute.html index 10203af..30e4ddb 100644 --- a/frontend/pages/Contribute.html +++ b/frontend/pages/Contribute.html @@ -22,6 +22,110 @@ + diff --git a/frontend/pages/contributors.html b/frontend/pages/contributors.html index 12519e5..2f86f11 100644 --- a/frontend/pages/contributors.html +++ b/frontend/pages/contributors.html @@ -21,115 +21,6 @@ - - diff --git a/frontend/pages/feedback.html b/frontend/pages/feedback.html index 32b695f..a46d69c 100644 --- a/frontend/pages/feedback.html +++ b/frontend/pages/feedback.html @@ -1,450 +1,72 @@ - - - - Feedback | OpenSource Compass + + + + Feedback | OpenSource Compass - + - + - - + + - - - - - - -
-
-

We’d Love Your Feedback

-

- Your feedback helps improve OpenSource Compass for everyone. Let us - know how we can make your journey better. -

-
- -
-
- - - - - - - - - - - + - -

- Thank you! Your feedback has - been submitted. -

-
-
-
- + + + + + - - - - + diff --git a/frontend/pages/programs.html b/frontend/pages/programs.html index 51369b8..a8a1de5 100644 --- a/frontend/pages/programs.html +++ b/frontend/pages/programs.html @@ -34,48 +34,157 @@

Open Source Programs

gain real-world experience through contributions.

+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
-
+ -
+

GSSoC

+ +
+ Unpaid + India + Beginner-Friendly +
+

GirlScript Summer of Code is a three-month-long Open Source program by GirlScript Foundation.

View Details
-
+

Hacktoberfest

+ +
+ Unpaid + Global + Beginner-Friendly +
+

A month-long celebration of open-source software run by DigitalOcean.

View Details
-
+ -
+ -
+

Social Summer of Code

+ +
+ Unpaid + India + Beginner-Friendly +
+

A program to promote open source and encourage student developers to build for social good.

View Details
+ + + + + + +
@@ -94,6 +203,40 @@

Social Summer of Code

+ \ No newline at end of file