From f75f70811fc703b7f46adf568a0d680f2bd20fc1 Mon Sep 17 00:00:00 2001
From: Eshita Badhe
Date: Wed, 18 Feb 2026 19:57:24 +0530
Subject: [PATCH 1/3] feat(programs): enhance programs page with filters,
labels, and dark mode improvements
- Added new open source programs
- Introduced label badges (Paid, Global, Beginner-Friendly, etc.)
- Implemented filter functionality (Level, Type, Region, Status)
- Upgraded filter UI with premium styling
- Fixed dropdown arrow visibility
- Fixed dark mode select background
- Improved heading contrast in dark mode
- Improved overall scalability and UX
---
frontend/css/program.css | 192 +++++++++++++++++++++++++++++++++++
frontend/pages/programs.html | 158 ++++++++++++++++++++++++++--
2 files changed, 344 insertions(+), 6 deletions(-)
diff --git a/frontend/css/program.css b/frontend/css/program.css
index d7ce9d6..638fdaa 100644
--- a/frontend/css/program.css
+++ b/frontend/css/program.css
@@ -313,4 +313,196 @@ body.dark-mode .programs-heading {
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
+}
+
+/* =========================================
+ PREMIUM FILTER BAR STYLING
+========================================= */
+
+.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/programs.html b/frontend/pages/programs.html
index 51369b8..7fa2f15 100644
--- a/frontend/pages/programs.html
+++ b/frontend/pages/programs.html
@@ -34,48 +34,160 @@ Open Source Programs
gain real-world experience through contributions.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
Google Summer of Code
+
+
+ Paid
+ Global
+ Beginner-Friendly
+
+
A global program focused on bringing new contributors into open source software development.
View Details
-
+
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
-
+
-
+
Outreachy
+
+
+ Paid
+ Global
+ Beginner-Friendly
+
+
Provides internships to people subject to systemic bias and underrepresented in tech.
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
+
+
+
+
+
+
+
+
Google Season of Docs
+
+ Paid
+ Global
+ Advanced
+
+
Supports open source documentation projects.
+
View Details
+
+
@@ -94,6 +206,40 @@
Social Summer of Code
+