Social_Cooking/css/login_signup.css

248 lines
4.6 KiB
CSS

/* ===========================================
LOGIN_SIGNUP.CSS — Styles for login & signup
Global styles (reset, variables, body, nav,
typography) are in stylesheet_global.css
=========================================== */
.container-login {
background-color: var(--butter-light);
border: 1.5px solid var(--olive-light);
border-radius: var(--radius-lg);
padding: var(--space-40) var(--space-80) var(--space-80) var(--space-80);
}
.container-registration {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--space-64);
background-color: var(--butter-light);
border: 1.5px solid var(--olive-light);
border-radius: var(--radius-lg);
overflow: hidden;
}
.text-section {
padding: var(--space-40) var(--space-80) var(--space-80) var(--space-80);
}
/* --- Image section --- */
.image-section {
height: 100%;
display: flex;
}
.image-section img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.form-group.has-error {
margin-bottom: 0;
}
input[type="text"],
input[type="email"],
input[type="password"] {
font-size: 1.125rem;
font-family: var(--font-main);
width: 100%;
padding: var(--space-8) var(--space-16);
border: 1.5px solid var(--olive-light);
border-radius: var(--radius-md);
background: transparent;
transition: border-color 0.3s ease;
}
input:focus {
outline: none;
border: 2px solid var(--olive);
}
/* --- Info box --- */
.info-box {
background-color: var(--olive-light);
padding: var(--space-16);
margin-bottom: var(--space-40);
border-radius: var(--radius-md);
font-size: 1rem;
color: var(--black);
line-height: 1.4;
}
/* --- Hints & errors --- */
.error-message--field-callout {
display: none;
margin-top: 0.65rem;
margin-left: auto;
}
.form-group.has-error input {
border-color: var(--error);
box-shadow: var(--shadow-error);
}
.form-group.has-error .error-message--field-callout {
display: block;
}
*/
/* --- Modal / Popup --- */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.4);
animation: fadeIn 0.3s ease;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.modal.show {
display: flex;
justify-content: center;
align-items: center;
}
@keyframes slideIn {
from { transform: translateY(-50px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
.close-btn {
position: absolute;
right: 0;
top: 0;
font-size: 28px;
color: var(--black);
background: none;
border: none;
cursor: pointer;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
}
.btn-primary {
padding: var(--space-2) var(--space-32);
background-color: var(--olive);
color: var(--white);
border: none;
border-radius: var(--radius-pill);
font-size: 1rem;
font-weight: 700;
font-family: var(--font-main);
cursor: pointer;
transition: background-color 0.3s ease;
}
.btn-primary:hover {
background-color: var(--olive-dark);
}
/* --- Footer --- */
.footer {
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
padding: var(--space-16) var(--space-32);
border: none;
margin-top: 40px;
}
.footer_link {
color: var(--black);
text-decoration: underline;
font-size: 0.8rem;
font-weight: 400;
}
/* Left aligned */
.footer-left {
justify-self: start;
}
/* Center aligned */
.footer-center {
justify-self: center;
}
/* Right aligned */
.footer-right {
justify-self: end;
display: flex;
gap: var(--space-24);
}
/* --- Responsive --- */
@media (max-width: 768px) {
.container {
flex-direction: column;
}
.image-section {
min-height: 300px;
}
.error-message--field-callout {
margin-top: var(--space-1);
max-width: 100%;
white-space: normal;
}
.error-message--field-callout::after {
display: none;
}
}
/* --- Snackbar --- */
.snackbar {
position: fixed;
bottom: 30px;
left: 50%;
transform: translateX(-50%) translateY(100px);
background: var(--olive);
color: var(--white);
padding: var(--space-16) var(--space-40);
border-radius: var(--radius-pill);
font-size: 1rem;
font-weight: 600;
font-family: var(--font-main);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
opacity: 0;
transition: transform 0.4s ease, opacity 0.4s ease;
z-index: 9999;
pointer-events: none;
}
.snackbar--visible {
transform: translateX(-50%) translateY(0);
opacity: 1;
}