diff --git a/src/components/background/background.jsx b/src/components/background/background.jsx
index 0a5838b..b77ce82 100644
--- a/src/components/background/background.jsx
+++ b/src/components/background/background.jsx
@@ -1,15 +1,55 @@
-import styles from "./background.module.css";
+import styles from "./background.module.css";
+import { useEffect, useRef } from "react";
+
const Background = ({ children, className }) => {
+ const circlesRef = useRef([]);
+
+ const getRandomTranslation = () => {
+ const randomX = Math.floor(Math.random() * 100) - 30;
+ const randomY = Math.floor(Math.random() * 100) - 30;
+ return { x: randomX, y: randomY };
+ };
+
+ useEffect(() => {
+ circlesRef.current.forEach((circle) => {
+ if (circle) {
+ const { x, y } = getRandomTranslation();
+ circle.style.setProperty('--random-x', `${x}px`);
+ circle.style.setProperty('--random-y', `${y}px`);
+ }
+ });
+ }, []);
+
return (
-
-
-
-
-
+
(circlesRef.current[0] = el)}
+ className={`${styles["circle"]} ${styles["circle-1"]}`}
+ style={{ "--random-x": "0px", "--random-y": "0px" }}
+ >
+
(circlesRef.current[1] = el)}
+ className={`${styles["circle"]} ${styles["circle-2"]}`}
+ style={{ "--random-x": "0px", "--random-y": "0px" }}
+ >
+
(circlesRef.current[2] = el)}
+ className={`${styles["circle"]} ${styles["circle-3"]}`}
+ style={{ "--random-x": "0px", "--random-y": "0px" }}
+ >
+
(circlesRef.current[3] = el)}
+ className={`${styles["circle"]} ${styles["circle-4"]}`}
+ style={{ "--random-x": "0px", "--random-y": "0px" }}
+ >
+
(circlesRef.current[4] = el)}
+ className={`${styles["circle"]} ${styles["circle-5"]}`}
+ style={{ "--random-x": "0px", "--random-y": "0px" }}
+ >
{children}
);
};
-export default Background;
\ No newline at end of file
+export default Background;
diff --git a/src/components/background/background.module.css b/src/components/background/background.module.css
index 50f0f83..e5cca18 100644
--- a/src/components/background/background.module.css
+++ b/src/components/background/background.module.css
@@ -40,7 +40,7 @@
width: 280px;
height: 280px;
background-color: #91FCFF;
- top: 17%;
+ top: 28%;
right: 9%;
}
@@ -58,4 +58,65 @@
background-color: #015AFF;
top: 2%;
right: 2%;
+}
+
+.circle-1,.circle-2, .circle-3, .circle-4, .circle-5 {
+ animation: float 6s ease-in-out infinite;
+}
+.circle {
+ animation: float 6s ease-in-out infinite;
+}
+
+@keyframes float {
+ 0%, 100% {
+ transform: translate(0, 0);
+ }
+ 50% {
+ transform: translate(var(--random-x), var(--random-y));
+ }
+}
+
+@media (max-width:600px) {
+
+
+ .circle-1 {
+ width: 300px;
+ height: 300px;
+ background-color: #019AFF;
+ top: -5%;
+ left: -5%;
+}
+
+.circle-2 {
+ width: 175px;
+ height: 175px;
+ background-color: #91FCFF;
+ top: 58%;
+ left: 10%;
+}
+
+.circle-3 {
+ width: 140px;
+ height: 140px;
+ background-color: #91FCFF;
+ top: 29%;
+ right: 9%;
+}
+
+.circle-4 {
+ width: 250px;
+ height: 250px;
+ background-color: #019AFF;
+ bottom: 0;
+ right: 0;
+}
+
+.circle-5 {
+ width: 240px;
+ height: 240px;
+ background-color: #015AFF;
+ top: 2%;
+ right: 10%;
+}
+
}
\ No newline at end of file
diff --git a/src/components/form/form.jsx b/src/components/form/form.jsx
index 26728d2..fc46bcd 100644
--- a/src/components/form/form.jsx
+++ b/src/components/form/form.jsx
@@ -1,4 +1,4 @@
-import { useState } from "react";
+/*import { useState } from "react";
import login from "../../utils/login.js";
import getUser from "../../utils/getUser.js";
import styles from "./form.module.css";
@@ -17,7 +17,7 @@ function LoginForm({ className }) {
- setPassword(e.target.value)} required/>
+ setPassword(e.target.value)} required/>
@@ -26,5 +26,78 @@ function LoginForm({ className }) {
);
}
+export default LoginForm;*/
+
+import { useState } from "react";
+import login from "../../utils/login.js";
+import getUser from "../../utils/getUser.js";
+import styles from "./form.module.css";
+
+function LoginForm({ className }) {
+ const [email, setEmail] = useState('');
+ const [password, setPassword] = useState('');
+ const [showPassword, setShowPassword] = useState(false);
+
+ async function handleSubmit(e) {
+ e.preventDefault();
+ await login(email, password);
+ getUser();
+ }
+
+ const toggleShowPassword = () => {
+ setShowPassword(!showPassword);
+ };
+
+ return (
+
+
+ setEmail(e.target.value)}
+ required
+ />
+
+
+
+ setPassword(e.target.value)}
+ required
+ style={{ width: '100%', paddingRight: '40px' }}
+ />
+
+
+
+
+
+
+
+ );
+}
+
export default LoginForm;
diff --git a/src/components/form/form.module.css b/src/components/form/form.module.css
index a58ec84..6b5626e 100644
--- a/src/components/form/form.module.css
+++ b/src/components/form/form.module.css
@@ -1,3 +1,6 @@
+:global(.glassCard) {
+ --glass-bg: #ffffff9f;
+}
input {
width: 100%;
@@ -5,9 +8,10 @@ input {
padding: 0px 10px;
border: none;
border-radius: 10px;
- font-size: 16px;
+ font-size: 19px;
color: #111;
- box-shadow: 0 2px 6px rgba(0,0,0,0.06) inset;
+ background: var(--glass-bg);
+ box-shadow: 0 2px 6px rgba(91, 90, 90, 0.06) inset;
}
input::placeholder{
@@ -27,21 +31,22 @@ input::placeholder{
/* style scoped (module) */
.loginButton {
display: inline-block;
- padding: 0.55rem 1rem;
- height: 55px;
- border-radius: 6px;
- background-color: #2b6cb0;
- color: #fff;
+ height: 50px;
+ width:90%;
+ border-radius: 16px;
+ margin-bottom:3%;
+ margin-top:3%;
+ background-color: rgba(255, 255, 255, 0.335);
+ color: #000000;
font-weight: 600;
border: none;
- box-shadow: 0 2px 6px rgba(43,108,176,0.15);
cursor: pointer;
transition: background-color 160ms ease, transform 120ms ease, box-shadow 160ms ease;
font-size: 15px;
}
.loginButton:hover {
- background-color: #235a9a;
+ background-color: #54585e;
transform: translateY(-2px);
box-shadow: 0 6px 14px rgba(43,108,176,0.18);
}
@@ -51,18 +56,6 @@ input::placeholder{
box-shadow: 0 3px 8px rgba(43,108,176,0.12);
}
-.loginButton:focus {
- outline: 2px solid rgba(43,108,176,0.24);
- outline-offset: 2px;
-}
-.loginButton:active {
- transform: translateY(0);
- box-shadow: 0 3px 8px rgba(43,108,176,0.12);
-}
-.loginButton:focus {
- outline: 2px solid rgba(43,108,176,0.24);
- outline-offset: 2px;
-}
diff --git a/src/pages/Login/LoginPage.jsx b/src/pages/Login/LoginPage.jsx
index dcf460b..95a194a 100644
--- a/src/pages/Login/LoginPage.jsx
+++ b/src/pages/Login/LoginPage.jsx
@@ -1,14 +1,11 @@
import styles from "./LoginPage.module.css";
import LoginForm from "../../components/form/form.jsx";
-import Background from "../../components/background/background.jsx";
function LoginPage() {
return (
-
-
);
}
diff --git a/src/pages/Login/LoginPage.module.css b/src/pages/Login/LoginPage.module.css
index b913811..fc62d28 100644
--- a/src/pages/Login/LoginPage.module.css
+++ b/src/pages/Login/LoginPage.module.css
@@ -2,7 +2,7 @@
position: relative;
z-index: 2;
display: flex;
- width: 30%;
+ width: 600px;
overflow: hidden;
max-height: 80%;
justify-content: center;