From 8090375a592f5fc03d410476e7049001f9a3f5cb Mon Sep 17 00:00:00 2001 From: Saurabh Kumar Bajpai Date: Mon, 22 Jun 2026 12:12:32 +0530 Subject: [PATCH 1/2] fix: batch - password toggle, page title, scroll to top, forgot password, login button #158 #155 #153 #151 #144 --- Styles/auth.css | 32 +++++++++ Styles/main.css | 34 ++++++++++ admin.html | 18 ++++- ai.html | 17 ++++- career.html | 17 ++++- forgot-password.html | 158 +++++++++++++++++++++++++++++++++++++++++++ index.html | 19 +++++- login.html | 39 ++++++++++- profile.html | 17 ++++- quiz.html | 17 ++++- register.html | 46 ++++++++++++- webdev.html | 17 ++++- 12 files changed, 419 insertions(+), 12 deletions(-) create mode 100644 forgot-password.html diff --git a/Styles/auth.css b/Styles/auth.css index 2900de3..ffc69e8 100644 --- a/Styles/auth.css +++ b/Styles/auth.css @@ -115,6 +115,38 @@ margin-top: 0.25rem; } +/* Password Visibility Toggle */ +.password-wrapper { + position: relative; + display: flex; + align-items: center; +} + +.password-wrapper input { + width: 100%; + padding-right: 2.5rem; +} + +.password-toggle { + position: absolute; + right: 0.5rem; + background: none; + border: none; + cursor: pointer; + color: var(--text); + padding: 0.25rem; + font-size: 1.1rem; + display: flex; + align-items: center; + justify-content: center; + opacity: 0.6; + transition: opacity 0.2s; +} + +.password-toggle:hover { + opacity: 1; +} + /* Responsive Design */ @media (max-width: 480px) { .auth-card { diff --git a/Styles/main.css b/Styles/main.css index 83dd353..9ab1144 100644 --- a/Styles/main.css +++ b/Styles/main.css @@ -1138,6 +1138,40 @@ ul li i.fa-check { color: var(--light-text); } +/* Scroll to Top Button */ +#scrollToTop { + position: fixed; + bottom: 2rem; + right: 2rem; + width: 44px; + height: 44px; + background: var(--secondary-color); + color: white; + border: none; + border-radius: 50%; + cursor: pointer; + font-size: 1.25rem; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 2px 10px rgba(0,0,0,0.2); + opacity: 0; + visibility: hidden; + transform: translateY(10px); + transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background 0.3s ease; + z-index: 999; +} + +#scrollToTop.visible { + opacity: 1; + visibility: visible; + transform: translateY(0); +} + +#scrollToTop:hover { + background: var(--primary-color); +} + /* Responsive Modal */ @media (max-width: 768px) { .modal-content { diff --git a/admin.html b/admin.html index aa0c2b7..1067321 100644 --- a/admin.html +++ b/admin.html @@ -3,7 +3,7 @@ - EduBridge Admin Dashboard + EduBridge | Admin @@ -317,8 +317,24 @@

Follow Us

+ + + diff --git a/ai.html b/ai.html index b185ae7..6b9ccbd 100644 --- a/ai.html +++ b/ai.html @@ -3,7 +3,7 @@ - AI & Machine Learning - EduBridge + EduBridge | AI Assistant @@ -474,6 +474,21 @@

Follow Us

closeVideo(); } } + + // Scroll to Top + const scrollBtn = document.getElementById('scrollToTop'); + window.addEventListener('scroll', () => { + if (window.scrollY > 300) { + scrollBtn.classList.add('visible'); + } else { + scrollBtn.classList.remove('visible'); + } + }); + scrollBtn.addEventListener('click', () => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }); + + \ No newline at end of file diff --git a/career.html b/career.html index 0a840e8..f798815 100644 --- a/career.html +++ b/career.html @@ -3,7 +3,7 @@ - Career Guidance - EduBridge + EduBridge | Career Guidance @@ -516,6 +516,21 @@

Follow Us

closeVideo(); } } + + // Scroll to Top + const scrollBtn = document.getElementById('scrollToTop'); + window.addEventListener('scroll', () => { + if (window.scrollY > 300) { + scrollBtn.classList.add('visible'); + } else { + scrollBtn.classList.remove('visible'); + } + }); + scrollBtn.addEventListener('click', () => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }); + + \ No newline at end of file diff --git a/forgot-password.html b/forgot-password.html new file mode 100644 index 0000000..d67cd18 --- /dev/null +++ b/forgot-password.html @@ -0,0 +1,158 @@ + + + + + + EduBridge | Forgot Password + + + + + +
+ +
+ +
+
+

Forgot Password

+

Enter your registered email address and we'll send you a link to reset your password.

+
+
+ + +
+ +
+ +
+
+ + + + + + + + diff --git a/index.html b/index.html index edf7b35..d8f91c9 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - EduBridge - Learn Tech Skills + EduBridge | Home @@ -243,7 +243,24 @@

Follow Us

// Load chatbot when the page is ready document.addEventListener('DOMContentLoaded', loadChatbot); + + // Scroll to Top + const scrollBtn = document.getElementById('scrollToTop'); + if (scrollBtn) { + window.addEventListener('scroll', () => { + if (window.scrollY > 300) { + scrollBtn.classList.add('visible'); + } else { + scrollBtn.classList.remove('visible'); + } + }); + scrollBtn.addEventListener('click', () => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }); + } + + diff --git a/login.html b/login.html index 6b8d607..ad1aeb7 100644 --- a/login.html +++ b/login.html @@ -3,7 +3,7 @@ - Login - EduBridge + EduBridge | Login @@ -51,7 +51,12 @@

Login to EduBridge

- +
+ + +
@@ -133,6 +138,36 @@

Follow Us

} }); } + + // Password Visibility Toggle + document.querySelectorAll('.password-toggle').forEach(btn => { + btn.addEventListener('click', () => { + const input = btn.closest('.password-wrapper').querySelector('input'); + const icon = btn.querySelector('i'); + if (input.type === 'password') { + input.type = 'text'; + icon.classList.replace('fa-eye', 'fa-eye-slash'); + } else { + input.type = 'password'; + icon.classList.replace('fa-eye-slash', 'fa-eye'); + } + }); + }); + + // Scroll to Top + const scrollBtn = document.getElementById('scrollToTop'); + window.addEventListener('scroll', () => { + if (window.scrollY > 300) { + scrollBtn.classList.add('visible'); + } else { + scrollBtn.classList.remove('visible'); + } + }); + scrollBtn.addEventListener('click', () => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }); + + \ No newline at end of file diff --git a/profile.html b/profile.html index cc0143b..d6636b4 100644 --- a/profile.html +++ b/profile.html @@ -3,7 +3,7 @@ - My Profile - EduBridge + EduBridge | Profile @@ -296,6 +296,21 @@

${course.name}

messageDiv.remove(); }, 3000); } + + // Scroll to Top + const scrollBtn = document.getElementById('scrollToTop'); + window.addEventListener('scroll', () => { + if (window.scrollY > 300) { + scrollBtn.classList.add('visible'); + } else { + scrollBtn.classList.remove('visible'); + } + }); + scrollBtn.addEventListener('click', () => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }); + + \ No newline at end of file diff --git a/quiz.html b/quiz.html index beb7c9d..8b94cde 100644 --- a/quiz.html +++ b/quiz.html @@ -3,7 +3,7 @@ - EduBridge - Course Quizzes + EduBridge | Quiz @@ -227,6 +227,21 @@

Follow Us

authButtons.style.display = 'block'; } }); + + // Scroll to Top + const scrollBtn = document.getElementById('scrollToTop'); + window.addEventListener('scroll', () => { + if (window.scrollY > 300) { + scrollBtn.classList.add('visible'); + } else { + scrollBtn.classList.remove('visible'); + } + }); + scrollBtn.addEventListener('click', () => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }); + + \ No newline at end of file diff --git a/register.html b/register.html index 4947545..9858d25 100644 --- a/register.html +++ b/register.html @@ -3,7 +3,7 @@ - Register - EduBridge + EduBridge | Register @@ -55,11 +55,21 @@

Create an Account

- +
+ + +
- +
+ + +
@@ -148,6 +158,36 @@

Follow Us

} }); } + + // Password Visibility Toggle + document.querySelectorAll('.password-toggle').forEach(btn => { + btn.addEventListener('click', () => { + const input = btn.closest('.password-wrapper').querySelector('input'); + const icon = btn.querySelector('i'); + if (input.type === 'password') { + input.type = 'text'; + icon.classList.replace('fa-eye', 'fa-eye-slash'); + } else { + input.type = 'password'; + icon.classList.replace('fa-eye-slash', 'fa-eye'); + } + }); + }); + + // Scroll to Top + const scrollBtn = document.getElementById('scrollToTop'); + window.addEventListener('scroll', () => { + if (window.scrollY > 300) { + scrollBtn.classList.add('visible'); + } else { + scrollBtn.classList.remove('visible'); + } + }); + scrollBtn.addEventListener('click', () => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }); + + \ No newline at end of file diff --git a/webdev.html b/webdev.html index 701d3a5..71bbdcb 100644 --- a/webdev.html +++ b/webdev.html @@ -3,7 +3,7 @@ - Web Development - EduBridge + EduBridge | Web Development @@ -414,6 +414,21 @@

Follow Us

closeVideo(); } } + + // Scroll to Top + const scrollBtn = document.getElementById('scrollToTop'); + window.addEventListener('scroll', () => { + if (window.scrollY > 300) { + scrollBtn.classList.add('visible'); + } else { + scrollBtn.classList.remove('visible'); + } + }); + scrollBtn.addEventListener('click', () => { + window.scrollTo({ top: 0, behavior: 'smooth' }); + }); + + \ No newline at end of file From 4ae1064f8a2624ee7511c38431ddda426a7704ac Mon Sep 17 00:00:00 2001 From: Saurabh Kumar Bajpai Date: Sat, 11 Jul 2026 13:07:20 +0530 Subject: [PATCH 2/2] fix: add explicit input colors to fix invisible form fields Fixes #173 --- Styles/auth.css | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Styles/auth.css b/Styles/auth.css index ffc69e8..71aaa00 100644 --- a/Styles/auth.css +++ b/Styles/auth.css @@ -156,4 +156,12 @@ .auth-container { padding: 1rem; } -} \ No newline at end of file +} +/* Fix invisible form fields on dark backgrounds */ +.auth-form input, +.auth-form select, +.auth-form textarea { + background-color: #ffffff; + color: #1a1a2e; + border: 1px solid #ccc; +}