frontend_projekt/css/login.css

161 lines
4.2 KiB
CSS

/*
File contains the styles for the login page
--> defines the layout of the login screen
*/
.login-page {
min-height: 100vh;
display: flex; /* enables flexbox layout for centering */
justify-content: center; /* horizontally centers the card */
align-items: center; /* vertically centers the card */
padding: 24px; /* space inside the page edges */
/* Layered background: two soft radial gradients for color accents, then the main background color */
background:
radial-gradient(circle at top left, rgba(59, 130, 246, 0.12), transparent 35%),
radial-gradient(circle at bottom right, rgba(236, 72, 153, 0.10), transparent 30%),
var(--bg);
}
/* Main login card container */
.login-card {
width: 100%;
max-width: 430px; /* prevents the card from getting too wide on large screens */
background: var(--card); /* uses card color from variables.css */
border-radius: 24px; /* rounded corners */
box-shadow: var(--shadow); /* soft shadow for card elevation */
padding: 40px 32px; /* inner spacing for content */
}
/* Logo area above the form */
.login-logo-wrapper {
display: flex; /* centers logo horizontally */
justify-content: center;
margin-bottom: 20px;
width: 100%;
overflow: hidden; /* hides any part of the logo that overflows the container */
}
/* Full logo styling */
.login-logo {
width: 100%;
max-width: 220px; /* logo never exceeds this width */
height: auto;
display: block;
object-fit: contain; /* keeps logo aspect ratio, prevents stretching */
}
.login-title {
font-size: 2rem;
font-weight: 700;
text-align: center;
margin-bottom: 8px;
}
.login-subtitle {
text-align: center;
color: var(--text-muted);
margin-bottom: 28px;
}
/* Form layout */
.login-form {
display: flex;
flex-direction: column; /* stack form fields vertically */
gap: 18px; /* vertical space between form groups */
}
.form-group {
display: flex;
flex-direction: column; /* label above input */
gap: 8px; /* space between label and input */
}
.form-group label {
font-weight: 600;
font-size: 0.95rem;
}
.form-group input {
width: 100%;
padding: 14px 16px; /* vertical and horizontal padding for input */
border: 1px solid #dbe2ea; /* subtle border */
border-radius: 14px; /* rounded input corners */
background: #ffffff;
font-size: 1rem;
color: var(--text);
}
/* Highlight input when focused */
.form-group input:focus {
outline: none; /* removes default browser outline */
border-color: #7c3aed; /* purple border on focus */
box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.10); /* soft glow for focus state */
}
/* Password field with button inside the same row */
.password-wrapper {
display: flex; /* input and button in one row */
align-items: center; /* vertically center input and button */
gap: 10px; /* space between input and show/hide button */
}
.password-wrapper input {
flex: 1; /* input takes all available space, button stays compact */
}
.toggle-password {
border: none;
background: transparent; /* no background for button */
color: #64748b;
font-weight: 600;
cursor: pointer; /* pointer cursor for better UX */
}
/* Main login action button */
.login-button {
margin-top: 4px;
border: none;
border-radius: 14px;
padding: 14px 18px;
background: var(--gradient); /* uses a gradient background from variables */
color: white;
font-size: 1rem;
font-weight: 700;
cursor: pointer;
box-shadow: 0 8px 20px rgba(99, 102, 241, 0.22); /* blue shadow for button depth */
}
.login-button:hover {
opacity: 0.95; /* slight fade on hover for feedback */
}
.signup-text {
margin-top: 24px;
text-align: center;
color: var(--text-muted);
/* used for the 'Don't have an account?' and link below the form */
}
.signup-text a {
color: #2563eb;
text-decoration: none;
font-weight: 600;
/* blue link for sign up/login */
}
/* Smaller spacing and sizing for narrow screens */
@media (max-width: 480px) {
/* Responsive adjustments for small screens (mobile) */
.login-card {
padding: 28px 20px; /* less padding on mobile */
border-radius: 20px; /* slightly less rounded */
}
.login-title {
font-size: 1.7rem; /* smaller title on mobile */
}
.login-logo {
max-width: 170px; /* smaller logo on mobile */
}
}