Files
gravl/frontend/src/pages/LoginPage.css
T
clawd 1f2a892391 feat(frontend): Kinetic Precision design system — new lime theme, glassmorphism, redesigned pages
- New design system: Stitch (kinetic-precision.css) with lime (#cafd00) accent
- New Google Fonts: Lexend, Plus Jakarta Sans, Space Grotesk
- New page: BenchmarksPage with strength/endurance/body tracking
- Redesigned: Dashboard, ProgressPage, WorkoutPage, LoginPage + LoginPage.css
- Add shared glassmorphism nav, kinetic buttons, intensity indicators
- Build: 265KB JS / 88KB CSS / 2.54s (clean)
2026-04-27 08:49:23 +02:00

270 lines
5.0 KiB
CSS

.login-page {
min-height: 100dvh;
display: flex;
align-items: center;
justify-content: center;
background: #0e0e0e;
padding: 1.5rem 1.1rem;
position: relative;
overflow: hidden;
}
/* Lime radial glow behind logo */
.login-glow {
position: absolute;
top: -10%;
left: 50%;
transform: translateX(-50%);
width: 500px;
height: 380px;
background: radial-gradient(ellipse at center, rgba(202, 253, 0, 0.07) 0%, transparent 65%);
pointer-events: none;
}
.login-container {
width: 100%;
max-width: 390px;
display: flex;
flex-direction: column;
gap: 0;
position: relative;
z-index: 1;
}
/* ---- Logo block ---- */
.login-logo-block {
text-align: center;
margin-bottom: 3rem;
}
.login-wordmark {
font-family: 'Lexend', sans-serif;
font-weight: 800;
font-size: 3rem;
letter-spacing: -0.02em;
color: #cafd00;
line-height: 1;
text-shadow: 0 0 40px rgba(202, 253, 0, 0.35);
}
.login-tagline {
font-family: 'Space Grotesk', monospace;
font-size: 0.75rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #767575;
margin-top: 0.5rem;
}
/* ---- Error ---- */
.login-error {
background: rgba(255, 115, 81, 0.1);
color: #ff7351;
padding: 0.75rem 1rem;
border-radius: 4px;
font-size: 0.875rem;
font-family: 'Plus Jakarta Sans', sans-serif;
margin-bottom: 1.5rem;
border-left: 3px solid #ff7351;
}
/* ---- Form ---- */
.login-form {
display: flex;
flex-direction: column;
gap: 1.25rem;
margin-bottom: 1rem;
}
.login-field {
display: flex;
flex-direction: column;
gap: 0.4rem;
}
.login-field-label {
font-family: 'Space Grotesk', monospace;
font-size: 0.7rem;
letter-spacing: 0.1em;
color: #767575;
}
.login-input-wrap {
position: relative;
}
.login-input {
width: 100%;
padding: 0.9rem 1rem;
background: #1a1a1a;
border: none;
border-bottom: 2px solid #262626;
border-radius: 4px 4px 0 0;
color: #ffffff;
font-family: 'Plus Jakarta Sans', sans-serif;
font-size: 16px;
transition: border-color 150ms ease;
outline: none;
}
.login-input:focus {
border-bottom-color: #cafd00;
background: #20201f;
}
.login-input::placeholder {
color: #484847;
}
.login-input-wrap .login-input {
padding-right: 3rem;
}
.login-toggle-pw {
position: absolute;
right: 0.75rem;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
color: #767575;
cursor: pointer;
padding: 0.25rem;
display: flex;
align-items: center;
transition: color 150ms ease;
}
.login-toggle-pw:hover {
color: #adaaaa;
}
/* ---- Primary CTA ---- */
.login-btn-primary {
margin-top: 0.5rem;
width: 100%;
padding: 1rem;
background: linear-gradient(135deg, #cafd00 0%, #beee00 100%);
color: #516700;
font-family: 'Lexend', sans-serif;
font-weight: 700;
font-size: 0.875rem;
letter-spacing: 0.1em;
text-transform: uppercase;
border: none;
border-radius: 6px;
cursor: pointer;
transition: all 150ms ease;
box-shadow: 0 4px 20px rgba(202, 253, 0, 0.25);
display: flex;
align-items: center;
justify-content: center;
min-height: 52px;
}
.login-btn-primary:hover:not(:disabled) {
transform: translateY(-1px);
box-shadow: 0 6px 28px rgba(202, 253, 0, 0.35);
}
.login-btn-primary:active:not(:disabled) {
transform: translateY(0);
}
.login-btn-primary:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.login-spinner {
width: 18px;
height: 18px;
border: 2px solid rgba(81, 103, 0, 0.3);
border-top-color: #516700;
border-radius: 50%;
animation: spin 0.7s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* ---- Forgot / register link ---- */
.login-forgot {
display: block;
text-align: center;
color: #ff7440;
font-family: 'Plus Jakarta Sans', sans-serif;
font-size: 0.875rem;
text-decoration: none;
padding: 0.75rem 0;
transition: color 150ms ease;
}
.login-forgot:hover {
color: #ff8c5a;
}
/* ---- Divider ---- */
.login-divider {
display: flex;
align-items: center;
gap: 1rem;
margin: 0.5rem 0;
}
.login-divider::before,
.login-divider::after {
content: '';
flex: 1;
height: 1px;
background: #1f1f1f;
}
.login-divider span {
font-family: 'Space Grotesk', monospace;
font-size: 0.7rem;
letter-spacing: 0.1em;
color: #484847;
text-transform: uppercase;
}
/* ---- Ghost button ---- */
.login-btn-ghost {
display: block;
width: 100%;
padding: 0.9rem;
background: transparent;
border: 1px solid #262626;
border-radius: 6px;
color: #adaaaa;
font-family: 'Lexend', sans-serif;
font-weight: 600;
font-size: 0.875rem;
letter-spacing: 0.1em;
text-transform: uppercase;
text-align: center;
text-decoration: none;
cursor: pointer;
transition: all 150ms ease;
margin-top: 0.5rem;
}
.login-btn-ghost:hover {
border-color: #484847;
color: #ffffff;
}
/* ---- Footer ---- */
.login-footer {
display: flex;
align-items: center;
justify-content: center;
gap: 0.4rem;
margin-top: 2.5rem;
color: #484847;
font-family: 'Space Grotesk', monospace;
font-size: 0.7rem;
letter-spacing: 0.05em;
}