Skip to content

Commit

Permalink
[Feature Request]: Add a forgot password page (Anjaliavv51#398)
Browse files Browse the repository at this point in the history
<!-- ISSUE & PR TITLE SHOULD BE SAME-->
## Description
Added a forgot password page


## Related Issues

<!--Cite any related issue(s) this pull request addresses. If none,
simply state “None”-->
- Closes Anjaliavv51#375 

## Type of PR
<!-- Mention PR Type according to the issue in brackets below and check
the below box -->
- [ ] ()

## Screenshots / videos (if applicable)
![Screenshot 2024-10-09
153508](https://github.com/user-attachments/assets/9ac6d00a-51ee-4cf8-99c7-94c0ebd6e2e9)



## Checklist
<!-- [X] - put a cross/X inside [] to check the box -->
- [x] I have gone through the [contributing
guide](https://github.com/Anjaliavv51/Retro)
- [x] I have updated my branch and synced it with project `main` branch
before making this PR
- [x] I have performed a self-review of my code
- [x] I have tested the changes thoroughly before submitting this pull
request.
- [x] I have provided relevant issue numbers, screenshots, and videos
after making the changes.
- [x] I have commented my code, particularly in hard-to-understand
areas.


## Additional context:
<!--Include any additional information or context that might be helpful
for reviewers.-->
  • Loading branch information
Anjaliavv51 authored Oct 13, 2024
2 parents dec5a7c + 4b1e5ef commit 3142b43
Show file tree
Hide file tree
Showing 3 changed files with 288 additions and 2 deletions.
145 changes: 145 additions & 0 deletions Css-files/forgotpass1.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Philosopher:ital,wght@0,400;0,700;1,400;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Philosopher:ital,wght@0,400;0,700;1,400;1,700&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

body {
margin: 0;
font-family: 'Noto Sans', sans-serif;
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 1600 800'%3E%3Cg %3E%3Cpath fill='%23ffb9b0' d='M486 705.8c-109.3-21.8-223.4-32.2-335.3-19.4C99.5 692.1 49 703 0 719.8V800h843.8c-115.9-33.2-230.8-68.1-347.6-92.2C492.8 707.1 489.4 706.5 486 705.8z'/%3E%3Cpath fill='%23ffc1b7' d='M1600 0H0v719.8c49-16.8 99.5-27.8 150.7-33.5c111.9-12.7 226-2.4 335.3 19.4c3.4 0.7 6.8 1.4 10.2 2c116.8 24 231.7 59 347.6 92.2H1600V0z'/%3E%3Cpath fill='%23ffc8bf' d='M478.4 581c3.2 0.8 6.4 1.7 9.5 2.5c196.2 52.5 388.7 133.5 593.5 176.6c174.2 36.6 349.5 29.2 518.6-10.2V0H0v574.9c52.3-17.6 106.5-27.7 161.1-30.9C268.4 537.4 375.7 554.2 478.4 581z'/%3E%3Cpath fill='%23ffcfc6' d='M0 0v429.4c55.6-18.4 113.5-27.3 171.4-27.7c102.8-0.8 203.2 22.7 299.3 54.5c3 1 5.9 2 8.9 3c183.6 62 365.7 146.1 562.4 192.1c198.8 51.8 403.4 40.8 597.3-14.8V0H0z'/%3E%3Cpath fill='%23FFD6CE' d='M181.8 259.4c98.2 6 191.9 35.2 281.3 72.1c2.8 1.1 5.5 2.3 8.3 3.4c171 71.6 342.7 158.5 531.3 207.7c198.8 51.8 403.4 40.8 597.3-14.8V0H0v283.2C59 263.6 120.6 255.7 181.8 259.4z'/%3E%3Cpath fill='%23ffdcd4' d='M1600 0H0v136.3c62.3-20.9 127.7-27.5 192.2-19.2c93.6 12.1 180.5 47.7 263.3 89.6c2.6 1.3 5.1 2.6 7.7 3.9c158.4 81.1 319.7 170.9 500.3 223.2c210.5 61 430.8 49 636.6-16.6V0z'/%3E%3Cpath fill='%23ffe1d9' d='M454.9 86.3C600.7 177 751.6 269.3 924.1 325c208.6 67.4 431.3 60.8 637.9-5.3c12.8-4.1 25.4-8.4 38.1-12.9V0H288.1c56 21.3 108.7 50.6 159.7 82C450.2 83.4 452.5 84.9 454.9 86.3z'/%3E%3Cpath fill='%23ffe6df' d='M1600 0H498c118.1 85.8 243.5 164.5 386.8 216.2c191.8 69.2 400 74.7 595 21.1c40.8-11.2 81.1-25.2 120.3-41.7V0z'/%3E%3Cpath fill='%23ffebe4' d='M1397.5 154.8c47.2-10.6 93.6-25.3 138.6-43.8c21.7-8.9 43-18.8 63.9-29.5V0H643.4c62.9 41.7 129.7 78.2 202.1 107.4C1020.4 178.1 1214.2 196.1 1397.5 154.8z'/%3E%3Cpath fill='%23FFF0EA' d='M1315.3 72.4c75.3-12.6 148.9-37.1 216.8-72.4h-723C966.8 71 1144.7 101 1315.3 72.4z'/%3E%3C/g%3E%3C/svg%3E");
background-size: cover;
}
.circle {
z-index: 998;
width: 20px;
height: 20px;
border-radius: 50%;
pointer-events: none;
animation: colors 5s infinite;
position: fixed;
transform: translate(-50%, -50%);
}
.card-forgot {
width: 60%;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
padding: 30px 35px;
border-radius: 20px;
box-shadow: 0px 10px 40px rgba(0, 0, 0, 0.15);
background: rgba(236, 236, 236, 0.8);
backdrop-filter: blur(10px); /* Soft background blur effect */
animation: fadeIn 2s ease-in-out;
}

@keyframes fadeIn {
0% {
opacity: 0;
transform: translateY(30px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
.card-forgot h1 {
color: hsl(203, 30%,26%);
font-family: "Philosopher", sans-serif;
text-transform: uppercase;
text-align: center;
}

.home-btn {
position: absolute;
top: 32px;
font-family: "Philosopher", sans-serif;
left: 30px;
}

.home-btn a {
font-size: 30px;
text-decoration: none;
color: rgb(134, 78, 112);
position: relative;
transition: color 0.3s ease; /* Smooth color transition */
}

.home-btn a:hover {
color: rgb(141, 108, 108); /* Darken color on hover */
}

.home-btn a::after {
content: '';
position: absolute;
width: 100%;
height: 1.5px;
bottom: -5px;
left: 0;
background-color: transparent;
transition: background-color 0.3s ease; /* Smooth transition */
}

.home-btn a:hover::after {
background-color: rgb(141, 108, 108);
}
.textfield {
width: 100%;
margin-bottom: 15px;
}

.textfield > input {
width: 100%;
height: 45px;
border-radius: 15px;
border: 1px solid #b38484;
padding-left: 10px;
outline: none;
transition: border 0.3s ease; /* Smooth border transition */
}

.textfield > input:focus {
border: 2px solid #a76666; /* Highlight border on focus */
}
.btn-reset {
width: 100%;
padding: 10px 0;
border: none;
background-color: #e55d5d;
color: #fff;
font-size: 18px;
font-weight: bold;
border-radius: 10px;
cursor: pointer;
transition: background-color 0.3s ease;
}

.btn-reset:hover {
background-color: #ff4a4a;
}

.error-message {
color: red;
font-family: "Poppins", sans-serif;
margin-top: 10px;
}
.switch-link {
text-align: center;
margin-top: 20px;
font-family: "Poppins", sans-serif;
}

.switch-link a {
color: hsl(0, 100%, 50%);
text-decoration: none;
font-weight: bold;
transition: color 0.3s ease;
}

.switch-link a:hover {
color: hsl(203, 30%, 26%);
}
131 changes: 131 additions & 0 deletions Html-files/forgot-pass.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" type="image/x-icon" href="../Favicon image/favicon-32x32.png">
<link rel="stylesheet" href="../Css-files/forgotpass1.css">
<title>Retro - Forgot Password</title>
</head>
<body>
<div class="circle-container">
<div class="circle" style="background-color: rgb(255, 181, 107) !important; left: 504px; top: 59px; scale: 1;"></div>
<div class="circle" style="background-color: rgb(253, 175, 105) !important; left: 504px; top: 59px; scale: 0.95;"></div>
<div class="circle" style="background-color: rgb(248, 157, 99) !important; left: 504px; top: 59px; scale: 0.9;"></div>
<div class="circle" style="background-color: rgb(245, 151, 97) !important; left: 504px; top: 59px; scale: 0.85;"></div>
<div class="circle" style="background-color: rgb(239, 134, 94) !important; left: 504px; top: 59px; scale: 0.8;"></div>
<div class="circle" style="background-color: rgb(236, 128, 93) !important; left: 504px; top: 59px; scale: 0.75;"></div>
<div class="circle" style="background-color: rgb(227, 110, 92) !important; left: 504px; top: 59px; scale: 0.7;"></div>
<div class="circle" style="background-color: rgb(223, 104, 92) !important; left: 504px; top: 59px; scale: 0.65;"></div>
<div class="circle" style="background-color: rgb(213, 88, 92) !important; left: 504px; top: 59px; scale: 0.6;"></div>
<div class="circle" style="background-color: rgb(209, 82, 92) !important; left: 504px; top: 59px; scale: 0.55;"></div>
<div class="circle" style="background-color: rgb(197, 65, 93) !important; left: 504px; top: 59px; scale: 0.5;"></div>
<div class="circle" style="background-color: rgb(192, 59, 93) !important; left: 504px; top: 59px; scale: 0.45;"></div>
<div class="circle" style="background-color: rgb(178, 44, 94) !important; left: 504px; top: 59px; scale: 0.4;"></div>
<div class="circle" style="background-color: rgb(172, 38, 94) !important; left: 504px; top: 59px; scale: 0.35;"></div>
<div class="circle" style="background-color: rgb(156, 21, 95) !important; left: 504px; top: 59px; scale: 0.3;"></div>
<div class="circle" style="background-color: rgb(149, 15, 95) !important; left: 504px; top: 59px; scale: 0.25;"></div>
<div class="circle" style="background-color: rgb(131, 0, 96) !important; left: 504px; top: 59px; scale: 0.2;"></div>
<div class="circle" style="background-color: rgb(124, 0, 96) !important; left: 504px; top: 59px; scale: 0.15;"></div>
<div class="circle" style="background-color: rgb(104, 0, 96) !important; left: 504px; top: 59px; scale: 0.1;"></div>
<div class="circle" style="background-color: rgb(96, 0, 95) !important; left: 504px; top: 59px; scale: 0.05;"></div>
</div>
<div class="home-btn"><a href="../index.html" style="font-family: var(--ff-philosopher);"><b>Retro</b></a></div>
<div class="container">
<div class="card-forgot">
<h1>Forgot Password</h1>
<form id="forgotPassForm">
<div class="textfield">
<label for="email" style="color: black;">Email</label>
<input type="email" id="email" name="email" placeholder="Enter your email" required>
</div>
<button type="submit" class="btn-reset">Reset Password</button>
<p id="error-message" class="error-message"></p>
</form>
<p class="switch-link">Remembered your password? <a href="login.html">Login</a></p>
</div>
</div>

<script>
const coords = { x: 0, y: 0 };
const circles = document.querySelectorAll(".circle");

const colors = [
"#ffb56b",
"#fdaf69",
"#f89d63",
"#f59761",
"#ef865e",
"#ec805d",
"#e36e5c",
"#df685c",
"#d5585c",
"#d1525c",
"#c5415d",
"#c03b5d",
"#b22c5e",
"#ac265e",
"#9c155f",
"#950f5f",
"#830060",
"#7c0060",
"#680060",
"#60005f",
"#48005f",
"#3d005e"
];

circles.forEach(function (circle, index) {
circle.x = 0;
circle.y = 0;
circle.style.backgroundColor = colors[index % colors.length];
});

window.addEventListener("mousemove", function (e) {
coords.x = e.clientX;
coords.y = e.clientY;

});

function animateCircles() {

let x = coords.x;
let y = coords.y;

circles.forEach(function (circle, index) {
circle.style.left = x - 12 + "px";
circle.style.top = y - 12 + "px";

circle.style.scale = (circles.length - index) / circles.length;

circle.x = x;
circle.y = y;

const nextCircle = circles[index + 1] || circles[0];
x += (nextCircle.x - x) * 0.3;
y += (nextCircle.y - y) * 0.3;
});

requestAnimationFrame(animateCircles);
}

animateCircles();
// Form submission event listener for password reset
document.getElementById('forgotPassForm').addEventListener('submit', function(event) {
event.preventDefault();

const emailInput = document.getElementById('email').value;
const emailPattern = /^[^\\s@]+@[^\s@]+\\.[^\\s@]+$/;

document.getElementById('error-message').textContent = '';

if (!emailPattern.test(emailInput)) {
document.getElementById('error-message').textContent = 'Invalid email format.';
} else {
window.location.assign('reset-confirmation.html');
}
});
</script>
</body>
</html>
14 changes: 12 additions & 2 deletions Html-files/login.html
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,15 @@
.switch-link a:hover {
color: hsl(203, 30%, 26%);
}
.forgot-link{
text-decoration: none;
color: #3a3a3a;
margin-bottom: 10px;
}
.forgot-link:hover{
text-decoration: underline;
color: #000;
}
</style>
</head>
<body>
Expand Down Expand Up @@ -160,9 +169,10 @@ <h1 style="color: hsl(203, 30%,26%);font-family: var(--ff-philosopher);">LOGIN</
<input required type="password" id="password" name="password" placeholder="Enter Password" style="font-family:var(--ff-poppins);">
</div>
<button type="submit" class="btn-login" style="color: black;font-family:var(--ff-poppins);">Login</button>
<span>or</span>
<button id="google-login" style="color: black;font-family:var(--ff-poppins);">Login with google</button>
<p id="error-message" style="color: red; font-family: var(--ff-poppins);"></p>

<a href="forgot-pass.html" class="forgot-link">Forgot Password ?</a>
<p class="switch-link">Don’t have an account? <a href="signup.html">Sign Up</a></p>
</div>
</div>
Expand Down Expand Up @@ -270,4 +280,4 @@ <h1 style="color: hsl(203, 30%,26%);font-family: var(--ff-philosopher);">LOGIN</

</script>
</body>
</html>
</html>

0 comments on commit 3142b43

Please sign in to comment.