Compare commits

..

3 Commits

Author SHA1 Message Date
KS Jannette
2e96982d3a m
Some checks are pending
check / check (push) Waiting to run
2026-03-05 02:17:11 -05:00
KS Jannette
e48de2d6b6 style tweaks 2026-03-05 02:14:55 -05:00
KS Jannette
9414af8108 adjust css 2026-03-05 02:07:51 -05:00
3 changed files with 43 additions and 12 deletions

Binary file not shown.

View File

@@ -1,19 +1,38 @@
.login-page { .login-page {
min-height: 100vh; position: relative;
background-image: url(/ping.png); width: 100vw;
background-size: 67%; height: 100vh;
background-position: center; overflow: hidden;
background-repeat: no-repeat; background-color: #000000;
}
.login-bg-video {
position: absolute;
top: 50%;
left: 50%;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
transform: translate(-50%, -50%);
object-fit: cover;
z-index: 0;
filter: grayscale(85%);
-webkit-filter: grayscale(85%);
opacity: 0.05;
} }
.login-card { .login-card {
position: relative;
z-index: 1;
max-width: 400px; max-width: 400px;
margin: 20px auto; margin: 0 auto;
padding: 2rem; padding: 2rem;
padding-top: 8rem; padding-top: 8rem;
border: 1px solid var(--color-border-light); border: 1px solid var(--color-border-light);
border-radius: var(--radius-xl); border-radius: var(--radius-xl);
background-color: rgba(0, 0, 0, 0.75); background-color: rgba(0, 0, 0, 0.75);
top: 20px;
} }
.login-heading { .login-heading {
@@ -32,7 +51,6 @@
padding: 0.75rem; padding: 0.75rem;
font-size: 1.2rem; font-size: 1.2rem;
margin-top: 16px; margin-top: 16px;
;
} }
.login-footer { .login-footer {
@@ -55,10 +73,14 @@
} }
} }
.login-form-hidden { .login-card-fadein {
opacity: 0; opacity: 0;
animation: fadeIn 2s ease-in-out forwards;
animation-delay: 3s;
} }
.login-form-visible { .login-interactive-fadein {
opacity: 0;
animation: fadeIn 2s ease-in-out forwards; animation: fadeIn 2s ease-in-out forwards;
animation-delay: 6s;
} }

View File

@@ -5,7 +5,6 @@ import Input from "../../components/Input";
import "./Login.css"; import "./Login.css";
export default function Login() { export default function Login() {
const [isVisible, setIsVisible] = useState(false);
const [email, setEmail] = useState(""); const [email, setEmail] = useState("");
const [password, setPassword] = useState(""); const [password, setPassword] = useState("");
const [error, setError] = useState(""); const [error, setError] = useState("");
@@ -36,12 +35,22 @@ export default function Login() {
return ( return (
<div className="login-page"> <div className="login-page">
<div className="login-card" onMouseEnter={() => setIsVisible(true)}> <video
autoPlay
loop
muted
playsInline
className="login-bg-video"
>
<source src="/koin_spin.mp4" type="video/mp4" />
</video>
<div className="login-card login-card-fadein">
<h1 className="login-heading"> <h1 className="login-heading">
<span className="login-brand">Koin Ping</span> - Login <span className="login-brand">Koin Ping</span> - Login
</h1> </h1>
<div className={isVisible ? "login-form-visible" : "login-form-hidden"}> <div className="login-interactive-fadein">
{error && <div className="alert alert--error">{error}</div>} {error && <div className="alert alert--error">{error}</div>}
<form onSubmit={handleSubmit}> <form onSubmit={handleSubmit}>