atlus/frontend/index.html
roberts f9743bb29a Initial commit — Atlus web desktop environment for SBCs
Full-stack implementation: FastAPI backend with PAM auth, WebSocket
stats/terminal, and vanilla JS frontend with tiling desktop shell.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 16:53:46 -05:00

163 lines
4.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title>Atlus</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Inter:wght@400;500&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/css/variables.css">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: var(--font-ui);
background: var(--bg-dock);
color: var(--text-primary);
height: 100dvh;
display: flex;
align-items: center;
justify-content: center;
-webkit-font-smoothing: antialiased;
}
.login-container {
width: 100%;
max-width: 360px;
padding: 24px;
}
.login-logo {
text-align: center;
margin-bottom: 48px;
}
.login-logo .logo-mark {
font-family: var(--font-mono);
font-size: 56px;
font-weight: 500;
color: var(--accent);
line-height: 1;
margin-bottom: 12px;
}
.login-logo .logo-name {
font-family: var(--font-mono);
font-size: 14px;
font-weight: 400;
color: var(--text-muted);
letter-spacing: 6px;
text-transform: uppercase;
}
.login-form {
display: flex;
flex-direction: column;
gap: 12px;
}
.login-input {
width: 100%;
height: 48px;
padding: 0 16px;
background: var(--bg-stage);
border: 1px solid var(--border-structural);
border-radius: 8px;
color: var(--text-primary);
font-family: var(--font-mono);
font-size: 14px;
outline: none;
transition: border-color 0.15s;
}
.login-input::placeholder {
color: var(--text-muted);
}
.login-input:focus {
border-color: var(--accent);
}
.login-button {
width: 100%;
height: 48px;
margin-top: 8px;
background: var(--accent);
border: none;
border-radius: 8px;
color: #fff;
font-family: var(--font-ui);
font-size: 15px;
font-weight: 500;
cursor: pointer;
transition: opacity 0.15s;
}
.login-button:hover {
opacity: 0.9;
}
.login-button:active {
opacity: 0.8;
}
.login-button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.login-error {
text-align: center;
color: var(--status-red);
font-size: 13px;
min-height: 20px;
margin-top: 4px;
}
.login-footer {
text-align: center;
margin-top: 48px;
color: var(--text-ghost);
font-size: 12px;
font-family: var(--font-mono);
}
</style>
</head>
<body>
<div class="login-container">
<div class="login-logo">
<div class="logo-mark">A</div>
<div class="logo-name">Atlus</div>
</div>
<form class="login-form" id="loginForm">
<input
type="text"
class="login-input"
id="username"
placeholder="Username"
autocomplete="username"
autocapitalize="none"
autocorrect="off"
spellcheck="false"
required
>
<input
type="password"
class="login-input"
id="password"
placeholder="Password"
autocomplete="current-password"
required
>
<button type="submit" class="login-button" id="loginBtn">Sign In</button>
<div class="login-error" id="loginError"></div>
</form>
<div class="login-footer">v0.1.0</div>
</div>
<script src="/js/auth.js"></script>
</body>
</html>