384 lines
11 KiB
HTML
384 lines
11 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Windows Vista Login</title>
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
|
height: 100vh;
|
|
overflow: hidden;
|
|
background: linear-gradient(135deg, #0066cc 0%, #4d94ff 50%, #80b3ff 100%);
|
|
position: relative;
|
|
}
|
|
|
|
.background-effects {
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.wave {
|
|
position: absolute;
|
|
width: 200%;
|
|
height: 200%;
|
|
background: radial-gradient(ellipse at center, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 30%, transparent 70%);
|
|
border-radius: 50%;
|
|
animation: wave-animation 20s linear infinite;
|
|
}
|
|
|
|
.wave:nth-child(1) {
|
|
top: -50%;
|
|
left: -50%;
|
|
animation-delay: 0s;
|
|
}
|
|
|
|
.wave:nth-child(2) {
|
|
top: -30%;
|
|
right: -60%;
|
|
animation-delay: -7s;
|
|
animation-duration: 15s;
|
|
}
|
|
|
|
.wave:nth-child(3) {
|
|
bottom: -40%;
|
|
left: -40%;
|
|
animation-delay: -14s;
|
|
animation-duration: 25s;
|
|
}
|
|
|
|
@keyframes wave-animation {
|
|
0% { transform: rotate(0deg) scale(1); opacity: 0.3; }
|
|
50% { transform: rotate(180deg) scale(1.2); opacity: 0.6; }
|
|
100% { transform: rotate(360deg) scale(1); opacity: 0.3; }
|
|
}
|
|
|
|
.flow-line {
|
|
position: absolute;
|
|
width: 2px;
|
|
height: 100px;
|
|
background: linear-gradient(to bottom, transparent, rgba(255,255,255,0.4), transparent);
|
|
animation: flow 8s linear infinite;
|
|
}
|
|
|
|
.flow-line:nth-child(4) {
|
|
top: 10%;
|
|
left: 20%;
|
|
animation-delay: 0s;
|
|
}
|
|
|
|
.flow-line:nth-child(5) {
|
|
top: 30%;
|
|
right: 15%;
|
|
animation-delay: -2s;
|
|
}
|
|
|
|
.flow-line:nth-child(6) {
|
|
bottom: 20%;
|
|
left: 60%;
|
|
animation-delay: -4s;
|
|
}
|
|
|
|
@keyframes flow {
|
|
0% { transform: translateY(-100px) rotate(45deg); opacity: 0; }
|
|
50% { opacity: 1; }
|
|
100% { transform: translateY(100vh) rotate(45deg); opacity: 0; }
|
|
}
|
|
|
|
.login-container {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
width: 400px;
|
|
padding: 40px;
|
|
text-align: center;
|
|
}
|
|
|
|
.user-avatar {
|
|
width: 128px;
|
|
height: 128px;
|
|
margin: 0 auto 30px;
|
|
background: linear-gradient(145deg, #e6f3ff, #b3d9ff);
|
|
border: 3px solid rgba(255,255,255,0.8);
|
|
border-radius: 12px;
|
|
box-shadow:
|
|
0 0 0 1px rgba(255,255,255,0.3),
|
|
0 8px 32px rgba(0,0,0,0.3),
|
|
inset 0 1px 0 rgba(255,255,255,0.8),
|
|
inset 0 -1px 0 rgba(0,0,0,0.1);
|
|
backdrop-filter: blur(10px);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.user-avatar::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 10px;
|
|
left: 10px;
|
|
right: 10px;
|
|
bottom: 10px;
|
|
background: linear-gradient(135deg, rgba(255,255,255,0.2), transparent);
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.input-group {
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.input-field {
|
|
width: 100%;
|
|
padding: 12px 16px;
|
|
border: 2px solid rgba(255,255,255,0.3);
|
|
border-radius: 6px;
|
|
background: rgba(255,255,255,0.9);
|
|
backdrop-filter: blur(5px);
|
|
font-size: 14px;
|
|
color: #333;
|
|
box-shadow:
|
|
inset 0 1px 3px rgba(0,0,0,0.1),
|
|
0 1px 0 rgba(255,255,255,0.8);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.input-field:focus {
|
|
outline: none;
|
|
border-color: #4d94ff;
|
|
background: rgba(255,255,255,0.95);
|
|
box-shadow:
|
|
inset 0 1px 3px rgba(0,0,0,0.1),
|
|
0 1px 0 rgba(255,255,255,0.8),
|
|
0 0 0 2px rgba(77,148,255,0.3);
|
|
}
|
|
|
|
.input-field::placeholder {
|
|
color: #666;
|
|
}
|
|
|
|
.login-button {
|
|
width: 60px;
|
|
height: 40px;
|
|
background: linear-gradient(145deg, #4d94ff, #0066cc);
|
|
border: 1px solid rgba(255,255,255,0.3);
|
|
border-radius: 6px;
|
|
box-shadow:
|
|
0 2px 8px rgba(0,0,0,0.2),
|
|
inset 0 1px 0 rgba(255,255,255,0.3);
|
|
cursor: pointer;
|
|
margin-left: 10px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.login-button::before {
|
|
content: '→';
|
|
color: white;
|
|
font-size: 18px;
|
|
font-weight: bold;
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
|
|
.login-button:hover {
|
|
background: linear-gradient(145deg, #66a3ff, #1a75ff);
|
|
transform: translateY(-1px);
|
|
box-shadow:
|
|
0 4px 12px rgba(0,0,0,0.3),
|
|
inset 0 1px 0 rgba(255,255,255,0.4);
|
|
}
|
|
|
|
.login-button:active {
|
|
transform: translateY(0);
|
|
box-shadow:
|
|
0 2px 4px rgba(0,0,0,0.2),
|
|
inset 0 1px 0 rgba(255,255,255,0.3);
|
|
}
|
|
|
|
.password-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.password-row .input-field {
|
|
margin-right: 10px;
|
|
flex: 1;
|
|
}
|
|
|
|
.domain-text {
|
|
color: rgba(255,255,255,0.9);
|
|
font-size: 14px;
|
|
margin-top: 20px;
|
|
text-shadow: 0 1px 2px rgba(0,0,0,0.3);
|
|
}
|
|
|
|
.domain-link {
|
|
color: rgba(255,255,255,0.8);
|
|
text-decoration: underline;
|
|
cursor: pointer;
|
|
transition: color 0.3s ease;
|
|
}
|
|
|
|
.domain-link:hover {
|
|
color: white;
|
|
}
|
|
|
|
.switch-user {
|
|
position: absolute;
|
|
bottom: 40px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
padding: 12px 24px;
|
|
background: rgba(255,255,255,0.1);
|
|
border: 1px solid rgba(255,255,255,0.3);
|
|
border-radius: 6px;
|
|
color: white;
|
|
font-size: 14px;
|
|
cursor: pointer;
|
|
backdrop-filter: blur(5px);
|
|
box-shadow:
|
|
0 2px 8px rgba(0,0,0,0.2),
|
|
inset 0 1px 0 rgba(255,255,255,0.2);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.switch-user:hover {
|
|
background: rgba(255,255,255,0.2);
|
|
transform: translateX(-50%) translateY(-2px);
|
|
box-shadow:
|
|
0 4px 12px rgba(0,0,0,0.3),
|
|
inset 0 1px 0 rgba(255,255,255,0.3);
|
|
}
|
|
|
|
.vista-orb {
|
|
position: absolute;
|
|
width: 40px;
|
|
height: 40px;
|
|
background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.4), rgba(255,255,255,0.1));
|
|
border-radius: 50%;
|
|
animation: float 6s ease-in-out infinite;
|
|
}
|
|
|
|
.vista-orb:nth-of-type(1) {
|
|
top: 15%;
|
|
right: 15%;
|
|
animation-delay: 0s;
|
|
}
|
|
|
|
.vista-orb:nth-of-type(2) {
|
|
bottom: 25%;
|
|
left: 10%;
|
|
animation-delay: -3s;
|
|
}
|
|
|
|
@keyframes float {
|
|
0%, 100% { transform: translateY(0px); }
|
|
50% { transform: translateY(-20px); }
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.login-container {
|
|
width: 90%;
|
|
padding: 30px 20px;
|
|
}
|
|
|
|
.user-avatar {
|
|
width: 100px;
|
|
height: 100px;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="background-effects">
|
|
<div class="wave"></div>
|
|
<div class="wave"></div>
|
|
<div class="wave"></div>
|
|
<div class="flow-line"></div>
|
|
<div class="flow-line"></div>
|
|
<div class="flow-line"></div>
|
|
</div>
|
|
|
|
<div class="vista-orb"></div>
|
|
<div class="vista-orb"></div>
|
|
|
|
<div class="login-container">
|
|
<div class="user-avatar"></div>
|
|
|
|
<div class="input-group">
|
|
<input type="text" class="input-field" placeholder="User name" id="username">
|
|
</div>
|
|
|
|
<div class="input-group">
|
|
<div class="password-row">
|
|
<input type="password" class="input-field" placeholder="Password" id="password">
|
|
<button class="login-button" onclick="handleLogin()"></button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="domain-text">
|
|
Log on to: TGP<br>
|
|
<a href="#" class="domain-link" onclick="showDomainDialog()">Need help?</a>
|
|
</div>
|
|
</div>
|
|
|
|
<button class="switch-user" onclick="showSwitchUser()">Switch User</button>
|
|
|
|
<script>
|
|
function handleLogin() {
|
|
const username = document.getElementById('username').value;
|
|
const password = document.getElementById('password').value;
|
|
|
|
if (username && password) {
|
|
const button = document.querySelector('.login-button');
|
|
button.style.background = 'linear-gradient(145deg, #4CAF50, #45a049)';
|
|
button.innerHTML = '✓';
|
|
|
|
setTimeout(() => {
|
|
alert('Login successful! (Change this later)');
|
|
button.style.background = 'linear-gradient(145deg, #4d94ff, #0066cc)';
|
|
button.innerHTML = '';
|
|
}, 1000);
|
|
} else {
|
|
alert('Please enter both username and password');
|
|
}
|
|
}
|
|
|
|
function showDomainDialog() {
|
|
alert('Help dialog would show up here');
|
|
}
|
|
|
|
function showSwitchUser() {
|
|
alert('Idk if you want to do something with this or not.');
|
|
}
|
|
|
|
document.addEventListener('keydown', function(e) {
|
|
if (e.key === 'Enter') {
|
|
handleLogin();
|
|
}
|
|
});
|
|
|
|
document.querySelectorAll('.input-field').forEach(field => {
|
|
field.addEventListener('focus', function() {
|
|
this.style.transform = 'translateY(-1px)';
|
|
});
|
|
|
|
field.addEventListener('blur', function() {
|
|
this.style.transform = 'translateY(0)';
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |